package haushalt.service.data; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.any; import static org.mockito.Mockito.when; import static org.fest.assertions.Assertions.assertThat; import java.io.File; import java.io.FileNotFoundException; import org.junit.Before; import org.junit.Test; import haushalt.daten.Datenbasis; import haushalt.daten.ExtendedDatabase; import haushalt.service.data.DatabaseFileLoader; import haushalt.service.data.DatabaseService; import haushalt.service.data.DatabaseServiceException; import haushalt.service.data.DatabaseServiceImpl; public class DatabaseServiceTest { private DatabaseService databaseService; private DatabaseFileLoader dbFileLoader; @Before public void setUp() { dbFileLoader = mock(DatabaseFileLoader.class); final DatabaseServiceImpl databaseServiceImpl = new DatabaseServiceImpl(); databaseServiceImpl.setDatabaseFileLoader(dbFileLoader); this.databaseService = databaseServiceImpl; } @Test public void loadDatabaseUsesDatabaseFileLoader() throws FileNotFoundException, DatabaseServiceException { final ExtendedDatabase extendedDatabase = createExtendedDatabase(); when(dbFileLoader.loadDbFile(any(File.class))).thenReturn(extendedDatabase); final File dbFile = new File("foobar.txt"); final ExtendedDatabase actualExtendedDatabase = databaseService.loadDatabase(dbFile); assertThat(actualExtendedDatabase).isEqualTo(extendedDatabase); verify(dbFileLoader).loadDbFile(dbFile); } @Test public void saveDatabaseUsesDatabaseFileLoader() throws FileNotFoundException, DatabaseServiceException { final Datenbasis database = new Datenbasis(); databaseService.saveDbFile(database); verify(dbFileLoader).saveDbFile(database); } private ExtendedDatabase createExtendedDatabase() { final ExtendedDatabase extendedDatabase = new ExtendedDatabase(new Datenbasis(), "Any version Id"); return extendedDatabase; } }