Cleanup: avoid injecting Injector directly

- Inject SingletonStore to restrict the possible functions
- Refactor PasswordSecurityTest to correspond to the usual way of testing
This commit is contained in:
ljacqu
2017-03-21 22:59:21 +01:00
parent d19748fe5b
commit 7dbf5551c9
6 changed files with 80 additions and 86 deletions
@@ -1,7 +1,7 @@
package fr.xephi.authme.task;
import ch.jalu.injector.Injector;
import fr.xephi.authme.initialization.HasCleanup;
import fr.xephi.authme.initialization.factory.SingletonStore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
@@ -13,7 +13,6 @@ import java.util.List;
import static java.util.Arrays.asList;
import static org.mockito.BDDMockito.given;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.only;
import static org.mockito.Mockito.verify;
/**
@@ -26,13 +25,13 @@ public class CleanupTaskTest {
private CleanupTask cleanupTask;
@Mock
private Injector injector;
private SingletonStore<HasCleanup> hasCleanupStore;
@Test
public void shouldPerformCleanup() {
// given
List<HasCleanup> services = asList(mock(HasCleanup.class), mock(HasCleanup.class), mock(HasCleanup.class));
given(injector.retrieveAllOfType(HasCleanup.class)).willReturn(services);
given(hasCleanupStore.retrieveAllOfType()).willReturn(services);
// when
cleanupTask.run();
@@ -41,6 +40,5 @@ public class CleanupTaskTest {
verify(services.get(0)).performCleanup();
verify(services.get(1)).performCleanup();
verify(services.get(2)).performCleanup();
verify(injector, only()).retrieveAllOfType(HasCleanup.class);
}
}