/* * 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 com.juick.util.MessageUtils; 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() { 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() { 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() { 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() { 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 tagsStringShouldBeEmptyIfNoTags() { Message message = new Message(); assertThat(MessageUtils.getTagsString(message), isEmptyString()); message.FriendsOnly = true; assertThat(MessageUtils.getTagsString(message), isEmptyString()); message.Hidden = true; message.ReadOnly = true; assertThat(MessageUtils.getTagsString(message), isEmptyString()); message.setTags(MessageUtils.parseTags(" ")); assertThat(MessageUtils.getTagsString(message), isEmptyString()); } @Test public void tagsStringShouldHasNoTagDuplicates() { Message message = new Message(); message.setTags(MessageUtils.parseTags("test")); assertThat(StringUtils.countMatches(MessageUtils.getTagsString(message), "*test"), equalTo(1)); message.setTags(MessageUtils.parseTags("test test")); assertThat(StringUtils.countMatches(MessageUtils.getTagsString(message), "*test"), equalTo(1)); message.setTags(MessageUtils.parseTags("test test ab test")); assertThat(StringUtils.countMatches(MessageUtils.getTagsString(message), "*test"), equalTo(1)); assertThat(StringUtils.countMatches(MessageUtils.getTagsString(message), "*ab"), equalTo(1)); } }