| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- import static org.junit.Assert.assertThat;
- import static org.hamcrest.CoreMatchers.is;
-
- import org.junit.Ignore;
- import org.junit.Rule;
- import org.junit.Test;
- import org.junit.rules.ExpectedException;
-
- public class CircularBufferTest {
-
- @Rule
- public ExpectedException expectedException = ExpectedException.none();
-
- @Test
- public void readingFromEmptyBufferShouldThrowException() throws BufferIOException {
- CircularBuffer<Integer> buffer = new CircularBuffer<>(1);
-
- expectedException.expect(BufferIOException.class);
- expectedException.expectMessage("Tried to read from empty buffer");
- buffer.read();
- }
-
- @Ignore("Remove to run test")
- @Test
- public void canReadItemJustWritten() throws BufferIOException {
- CircularBuffer<Integer> buffer = new CircularBuffer<>(1);
-
- buffer.write(1);
- assertThat(buffer.read(), is(1));
- }
-
- @Ignore("Remove to run test")
- @Test
- public void canReadItemOnlyOnce() throws BufferIOException {
- CircularBuffer<Integer> buffer = new CircularBuffer<>(1);
-
- buffer.write(1);
- assertThat(buffer.read(), is(1));
-
- expectedException.expect(BufferIOException.class);
- expectedException.expectMessage("Tried to read from empty buffer");
- buffer.read();
- }
-
- @Ignore("Remove to run test")
- @Test
- public void readsItemsInOrderWritten() throws BufferIOException {
- CircularBuffer<Integer> buffer = new CircularBuffer<>(2);
-
- buffer.write(1);
- buffer.write(2);
- assertThat(buffer.read(), is(1));
- assertThat(buffer.read(), is(2));
- }
-
- @Ignore("Remove to run test")
- @Test
- public void fullBufferCantBeWrittenTo() throws BufferIOException {
- CircularBuffer<Integer> buffer = new CircularBuffer<>(1);
-
- buffer.write(1);
- expectedException.expect(BufferIOException.class);
- expectedException.expectMessage("Tried to write to full buffer");
- buffer.write(2);
- }
-
- @Ignore("Remove to run test")
- @Test
- public void readFreesUpSpaceForWrite() throws BufferIOException {
- CircularBuffer<Integer> buffer = new CircularBuffer<>(1);
-
- buffer.write(1);
- assertThat(buffer.read(), is(1));
- buffer.write(2);
- assertThat(buffer.read(), is(2));
- }
-
- @Ignore("Remove to run test")
- @Test
- public void maintainsReadPositionAcrossWrites() throws BufferIOException {
- CircularBuffer<Integer> buffer = new CircularBuffer<>(3);
-
- buffer.write(1);
- buffer.write(2);
- assertThat(buffer.read(), is(1));
- buffer.write(3);
- assertThat(buffer.read(), is(2));
- assertThat(buffer.read(), is(3));
- }
-
- @Ignore("Remove to run test")
- @Test
- public void cantReadClearedItems() throws BufferIOException {
- CircularBuffer<Integer> buffer = new CircularBuffer<>(1);
-
- buffer.write(1);
- buffer.clear();
- expectedException.expect(BufferIOException.class);
- expectedException.expectMessage("Tried to read from empty buffer");
- buffer.read();
- }
-
- @Ignore("Remove to run test")
- @Test
- public void clearFreesUpCapacity() throws BufferIOException {
- CircularBuffer<Integer> buffer = new CircularBuffer<>(1);
-
- buffer.write(1);
- buffer.clear();
- buffer.write(2);
- assertThat(buffer.read(), is(2));
- }
-
- @Ignore("Remove to run test")
- @Test
- public void clearDoesNothingOnEmptyBuffer() throws BufferIOException {
- CircularBuffer<Integer> buffer = new CircularBuffer<>(1);
-
- buffer.clear();
- buffer.write(1);
- assertThat(buffer.read(), is(1));
- }
-
- @Ignore("Remove to run test")
- @Test
- public void overwriteActsLikeWriteOnNonFullBuffer() throws BufferIOException {
- CircularBuffer<Integer> buffer = new CircularBuffer<>(2);
-
- buffer.write(1);
- buffer.overwrite(2);
- assertThat(buffer.read(), is(1));
- assertThat(buffer.read(), is(2));
- }
-
- @Ignore("Remove to run test")
- @Test
- public void overwriteRemovesOldestElementOnFullBuffer() throws BufferIOException {
- CircularBuffer<Integer> buffer = new CircularBuffer<>(2);
-
- buffer.write(1);
- buffer.write(2);
- buffer.overwrite(3);
- assertThat(buffer.read(), is(2));
- assertThat(buffer.read(), is(3));
- }
-
- @Ignore("Remove to run test")
- @Test
- public void overwriteDoesntRemoveAnAlreadyReadElement() throws BufferIOException {
- CircularBuffer<Integer> buffer = new CircularBuffer<>(3);
-
- buffer.write(1);
- buffer.write(2);
- buffer.write(3);
- assertThat(buffer.read(), is(1));
- buffer.write(4);
- buffer.overwrite(5);
- assertThat(buffer.read(), is(3));
- assertThat(buffer.read(), is(4));
- assertThat(buffer.read(), is(5));
- }
- }
-
|