package lsr.paxos.storage; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import java.io.IOException; import lsr.paxos.Snapshot; import org.junit.Before; import org.junit.Test; public class SynchronousStorageTest { private DiscWriter writer; private Storage storage; @Before public void setUp() throws IOException { writer = mock(DiscWriter.class); } @Test public void shouldWriteNewView() throws IOException { storage = new SynchronousStorage(writer); storage.setView(4); verify(writer).changeViewNumber(4); } @Test public void shouldLoadView() throws IOException { when(writer.loadViewNumber()).thenReturn(5); storage = new SynchronousStorage(writer); assertEquals(5, storage.getView()); } @Test public void shouldSaveLastSnapshot() throws IOException { Snapshot snapshot = new Snapshot(); snapshot.setNextInstanceId(5); storage = new SynchronousStorage(writer); storage.setLastSnapshot(snapshot); verify(writer).newSnapshot(snapshot); } @Test public void shouldLoadSnapshot() throws IOException { Snapshot snapshot = new Snapshot(); snapshot.setNextInstanceId(5); when(writer.getSnapshot()).thenReturn(snapshot); storage = new SynchronousStorage(writer); assertEquals(snapshot, storage.getLastSnapshot()); } }