package net.rrm.ehour.backup.service; import com.google.common.collect.Lists; import net.rrm.ehour.backup.common.BackupConfig; import net.rrm.ehour.backup.common.BackupEntityType; import net.rrm.ehour.domain.TimesheetEntry; import net.rrm.ehour.persistence.backup.dao.RestoreDao; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Matchers; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.mockito.runners.MockitoJUnitRunner; import static org.mockito.Mockito.*; /** * @author thies (Thies Edeling - thies@te-con.nl) * Created on: 1/19/11 - 8:54 PM */ @RunWith(MockitoJUnitRunner.class) public class DatabaseTruncaterTest { @Mock private RestoreDao importDao; @Mock private BackupConfig backupConfig; private DatabaseTruncater truncater; @Before public void setUp() { MockitoAnnotations.initMocks(this); truncater = new DatabaseTruncater(importDao, backupConfig); truncater.setRestoreDao(importDao); } @Test public void shouldTruncate() { BackupEntityType entity = new BackupEntityType(TimesheetEntry.class, "timesheet_entry", 0); when(backupConfig.reverseOrderedValues()).thenReturn(Lists.newArrayList(entity)); truncater.truncateDatabase(); int wantedNumberOfInvocations = 1 + 3; verify(importDao, times(wantedNumberOfInvocations)).delete(Matchers.<Class<Object>>anyObject()); } }