package com.github.triceo.splitlog;
import com.github.triceo.splitlog.api.LogWatch;
import com.github.triceo.splitlog.api.MessageConsumer;
import com.github.triceo.splitlog.api.MessageListener;
import org.assertj.core.api.Assertions;
import org.junit.Test;
public class DefaultMessageConsumerTest extends DefaultFollowerBaseTest {
private static final MessageListener<LogWatch> LISTENER = (message, status, producer) -> {
// doesn't need to do anything
};
private static final MessageListener<LogWatch> LISTENER2 = (message, status, producer) -> {
// doesn't need to do anything
};
@Test
public void testEquality() {
final MessageConsumer<LogWatch> mc1 = new DefaultMessageConsumer<>(DefaultMessageConsumerTest.LISTENER, this.getLogWatch());
final MessageConsumer<LogWatch> mc2 = new DefaultMessageConsumer<>(DefaultMessageConsumerTest.LISTENER, this.getLogWatch());
Assertions.assertThat(mc2).isEqualTo(mc1);
Assertions.assertThat(mc1).isEqualTo(mc2);
Assertions.assertThat(mc1).isEqualTo(mc1);
Assertions.assertThat(mc2).isEqualTo(mc2);
}
@Test
public void testInequalityByListener() {
final MessageConsumer<LogWatch> mc1 = new DefaultMessageConsumer<>(DefaultMessageConsumerTest.LISTENER,
this.getLogWatch());
final MessageConsumer<LogWatch> mc2 = new DefaultMessageConsumer<>(
DefaultMessageConsumerTest.LISTENER2, this.getLogWatch());
Assertions.assertThat(mc2).isNotEqualTo(mc1);
Assertions.assertThat(mc1).isNotEqualTo(mc2);
}
@Test
public void testInequalityByProducer() {
final MessageConsumer<LogWatch> mc1 = new DefaultMessageConsumer<>(DefaultMessageConsumerTest.LISTENER,
this.getLogWatch());
final MessageConsumer<LogWatch> mc2 = new DefaultMessageConsumer<>(DefaultMessageConsumerTest.LISTENER,
this.getBuilder().build());
Assertions.assertThat(mc2).isNotEqualTo(mc1);
Assertions.assertThat(mc1).isNotEqualTo(mc2);
}
@Test(expected = IllegalArgumentException.class)
public void testNullListener() {
new DefaultMessageConsumer<>(null, this.getLogWatch());
}
@Test(expected = IllegalArgumentException.class)
public void testNullProducer() {
new DefaultMessageConsumer<>(DefaultMessageConsumerTest.LISTENER, null);
}
}