package com.github.triceo.splitlog; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import com.github.triceo.splitlog.api.Follower; import com.github.triceo.splitlog.api.LogWatchBuilder; import com.github.triceo.splitlog.api.Message; @RunWith(Parameterized.class) public class CapacityBasedDiscardingTest extends DefaultFollowerBaseTest { public CapacityBasedDiscardingTest(final LogWatchBuilder builder) { super(builder.limitCapacityTo(1)); } @Test public void test() { final Follower follower = this.getLogWatch().startFollowing(); // tag before any messages final Message firstTag = follower.tag("test"); DefaultFollowerBaseTest.assertProperOrder(follower.getMessages(), firstTag); final String firstMessage = "check"; LogWriter.write(follower, firstMessage); // receive first message, check presence of tag final String secondMessage = "check2"; LogWriter.write(follower, secondMessage); final Message secondTag = follower.tag("test2"); DefaultFollowerBaseTest.assertProperOrder(follower.getMessages(), firstTag, firstMessage, secondTag); // receive second message, discarding first message and not the tag final String thirdMessage = "check3"; LogWriter.write(follower, thirdMessage); DefaultFollowerBaseTest.assertProperOrder(follower.getMessages(), firstTag, secondMessage, secondTag); // receive third message, discarding second message and not the tag final String fourthMessage = "check4"; LogWriter.write(follower, fourthMessage); DefaultFollowerBaseTest.assertProperOrder(follower.getMessages(), firstTag, secondTag, thirdMessage); } }