CC
diff --git a/src/test/java/pta/de/core/controller/ServicesConfigCacheTimerTaskTest.java b/src/test/java/pta/de/core/controller/ServicesConfigCacheTimerTaskTest.java new file mode 100644 index 0000000..ac6c124 --- /dev/null +++ b/src/test/java/pta/de/core/controller/ServicesConfigCacheTimerTaskTest.java
@@ -0,0 +1,62 @@ +package pta.de.core.controller; + +import org.apache.log4j.Logger; +import org.easymock.EasyMock; +import org.eclipse.jetty.http.HttpStatus; +import org.junit.Test; +import org.powermock.reflect.Whitebox; +import pta.de.core.exceptions.HttpStatusException; + +import javax.validation.constraints.AssertTrue; + +import static org.easymock.EasyMock.*; +import static org.junit.Assert.assertTrue; + +public class ServicesConfigCacheTimerTaskTest { + @Test + public void testRun() throws HttpStatusException { + // ------------------ Prepare Test ---------------------- + final String EXCEPTION_TEXT = "Exception"; + + Logger localLogger = EasyMock.createMock(Logger.class); + localLogger.error(anyString(), anyObject()); + expectLastCall().andThrow(new RuntimeException("Error Logged!")); + + localLogger.debug(anyString()); + expectLastCall().anyTimes(); + + replay(localLogger); + + Whitebox.setInternalState(ServicesConfigCacheTimerTask.class, "logger", localLogger); + + ServicesConfigCache scc = EasyMock.createMock(ServicesConfigCache.class); + scc.readServerDistribution(eq(EXCEPTION_TEXT)); + expectLastCall().andThrow(new HttpStatusException(HttpStatus.INTERNAL_SERVER_ERROR_500)).anyTimes(); + + scc.readServerDistribution(not(eq(EXCEPTION_TEXT))); + expectLastCall().anyTimes(); + + replay( scc ); + + Whitebox.setInternalState(ServicesConfigCache.class, "SERIVCECONFIGCACHE_INSTANCE", scc); + + + // ---------------------------- Test it ------------------------------------------ + ServicesConfigCacheTimerTask task = new ServicesConfigCacheTimerTask(EXCEPTION_TEXT); + boolean exceptionThrown = false; + + // this runs into the exception block + try { + task.run(); + } + catch( RuntimeException re ) { + exceptionThrown = true; + } + assertTrue( exceptionThrown ); + + // should run without problems + ServicesConfigCacheTimerTask task2 = new ServicesConfigCacheTimerTask("No Error"); + task2.run(); + } + +}