/* * Copyright (C) 2008-2017, Juick * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ package com.juick; import org.apache.commons.lang3.RandomUtils; import org.apache.commons.lang3.StringUtils; import org.junit.Test; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.*; /** * Created by aalexeev on 12/7/16. */ public class MessageTest { @Test public void equalsShouldBeReturnCorrectResult() throws Exception { Message message1 = new Message(); Message message2 = new Message(); message2.setMid(RandomUtils.nextInt()); Message message3 = message1; assertThat(message1, equalTo(message3)); assertThat(message3, equalTo(message1)); assertThat(message1, not(equalTo(message2))); assertThat(message2, not(equalTo(message1))); int id = RandomUtils.nextInt(); message1.setMid(id); message2.setMid(id); id = RandomUtils.nextInt(); message1.setRid(id); message2.setRid(id); assertThat(message1, equalTo(message2)); assertThat(message2, equalTo(message1)); message1.setMid(RandomUtils.nextInt()); message1.setRid(RandomUtils.nextInt()); message2.setMid(RandomUtils.nextInt()); message2.setRid(RandomUtils.nextInt()); assertThat(message1, not(equalTo(message2))); assertThat(message2, not(equalTo(message1))); } @Test public void compareShouldBeReturnCorrectResult() throws Exception { Message message1 = new Message(); message1.setMid(RandomUtils.nextInt()); message1.setRid(RandomUtils.nextInt()); Message message2 = message1; assertThat(message1.compareTo(message2), equalTo(0)); assertThat(message2.compareTo(message1), equalTo(0)); Message message3 = new Message(); message3.setMid(message1.getMid()); message3.setRid(message1.getRid()); assertThat(message1.compareTo(message3), equalTo(0)); assertThat(message3.compareTo(message1), equalTo(0)); } @Test public void messageWithGreaterMidShouldBeLessThenMesageWithLessMid() throws Exception { Message message1 = new Message(); message1.setMid(RandomUtils.nextInt()); message1.setRid(RandomUtils.nextInt()); Message message2 = new Message(); message2.setMid(message1.getMid() + RandomUtils.nextInt(1, 10000)); message2.setRid(RandomUtils.nextInt()); assertThat(message1.compareTo(message2), equalTo(1)); assertThat(message2.compareTo(message1), equalTo(-1)); } @Test public void messageWithGreaterRidAndEqualsMidShouldBeGreaterThenMessageWithLessRid() throws Exception { Message message1 = new Message(); message1.setMid(RandomUtils.nextInt()); message1.setRid(RandomUtils.nextInt()); Message message2 = new Message(); message2.setMid(message1.getMid()); message2.setRid(message1.getRid() + + RandomUtils.nextInt(1, 10000)); assertThat(message1.compareTo(message2), equalTo(-1)); assertThat(message2.compareTo(message1), equalTo(1)); } @Test public void attachmentURLShouldBeReturnCorrectResult() throws Exception { Message message1 = new Message(); assertThat(message1.getAttachmentURL(), nullValue()); message1.setAttachmentType("jpeg"); assertThat(message1.getAttachmentURL(), equalTo("http://i.juick.com/photos-1024/0.jpeg")); message1.setRid(1); assertThat(message1.getAttachmentURL(), equalTo("http://i.juick.com/photos-1024/0-1.jpeg")); Message message2 = new Message(); message2.setAttachmentType("mp4"); assertThat(message2.getAttachmentURL(), equalTo("http://i.juick.com/video/0.mp4")); message2.setRid(1); assertThat(message2.getAttachmentURL(), equalTo("http://i.juick.com/video/0-1.mp4")); } @Test public void tagsStringShouldBeEmptyIfNoTags() throws Exception { Message message = new Message(); assertThat(message.getTagsString(), isEmptyString()); message.FriendsOnly = true; assertThat(message.getTagsString(), isEmptyString()); message.Hidden = true; message.ReadOnly = true; assertThat(message.getTagsString(), isEmptyString()); message.parseTags(" "); assertThat(message.getTagsString(), isEmptyString()); } @Test public void tagsStringShouldHasNoTagDuplicates() throws Exception { Message message = new Message(); message.parseTags("test"); assertThat(StringUtils.countMatches(message.getTagsString(), "*test"), equalTo(1)); message.parseTags("test test"); assertThat(StringUtils.countMatches(message.getTagsString(), "*test"), equalTo(1)); message.parseTags("test test ab test"); assertThat(StringUtils.countMatches(message.getTagsString(), "*test"), equalTo(1)); assertThat(StringUtils.countMatches(message.getTagsString(), "*ab"), equalTo(1)); } }