package com.github.triceo.splitlog;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import org.assertj.core.api.Assertions;
import org.junit.Test;
import com.github.triceo.splitlog.api.Message;
import com.github.triceo.splitlog.api.MessageSeverity;
import com.github.triceo.splitlog.api.MessageType;
public class MessageTest extends AbstractSplitlogTest {
private Message buildMessage(final Collection<String> raw) {
final List<String> lines = new LinkedList<>(raw);
return new MessageBuilder(lines.get(0)).add(lines.subList(1, lines.size())).buildFinal();
}
@Test
public void testEqualsMessage() {
final String[] lines = new String[] { "Test", "Test2", "Test3" };
final Collection<String> raw1 = Arrays.asList(lines);
final Collection<String> raw2 = Arrays.asList(lines);
final Collection<String> raw3 = Arrays.asList(lines).subList(1, 3);
final Message message0 = this.buildMessage(raw1);
Assertions.assertThat(message0).isEqualTo(message0);
final Message message1 = this.buildMessage(raw2);
Assertions.assertThat(message1).isNotEqualTo(message0);
Assertions.assertThat(this.buildMessage(raw2)).isNotEqualTo(message1);
Assertions.assertThat(this.buildMessage(raw3)).isNotEqualTo(message1);
}
@Test
public void testEqualsTag() {
final String line = "Test";
final Message msg1 = new MessageBuilder(line).buildTag();
final Message msg2 = new MessageBuilder(line).buildTag();
final Message msg3 = new MessageBuilder(line + "2").buildTag();
Assertions.assertThat(msg1).isEqualTo(msg1);
Assertions.assertThat(msg2).isNotEqualTo(msg1);
Assertions.assertThat(msg3).isNotEqualTo(msg1);
}
@Test(expected = IllegalArgumentException.class)
public void testNullTag() {
final String raw = null;
new MessageBuilder(raw).buildTag();
}
@Test
public void testTag() {
final String line = "Test";
final Message msg = new MessageBuilder(line).buildTag();
Assertions.assertThat(msg.getSeverity()).isEqualTo(MessageSeverity.UNKNOWN);
Assertions.assertThat(msg.getType()).isEqualTo(MessageType.TAG);
Assertions.assertThat(msg.getLines().size()).isEqualTo(1);
Assertions.assertThat(msg.getLines().get(0)).isEqualTo(line);
}
}