Merge branch 'DEVELOP' of ssh://git.eclipse.org:29418/openk-usermodules/org.eclipse.openk-usermodules.gridFailureInformation.backend into SI-379_ImportAdressen
diff --git a/addressImport/src/test/java/org/eclipse/openk/gridfailureinformation/importadresses/config/TestConfiguration.java b/addressImport/src/test/java/org/eclipse/openk/gridfailureinformation/importadresses/config/TestConfiguration.java
index b4b2ff5..8bd1faf 100644
--- a/addressImport/src/test/java/org/eclipse/openk/gridfailureinformation/importadresses/config/TestConfiguration.java
+++ b/addressImport/src/test/java/org/eclipse/openk/gridfailureinformation/importadresses/config/TestConfiguration.java
@@ -15,6 +15,7 @@
 package org.eclipse.openk.gridfailureinformation.importadresses.config;
 
 import org.eclipse.openk.gridfailureinformation.importadresses.AddressImportApplication;
+import org.eclipse.openk.gridfailureinformation.importadresses.jobs.JobManager;
 import org.eclipse.openk.gridfailureinformation.importadresses.mapper.AddressMapper;
 import org.eclipse.openk.gridfailureinformation.importadresses.mapper.AddressMapperImpl;
 import org.eclipse.openk.gridfailureinformation.importadresses.mapper.StationMapper;
@@ -55,4 +56,7 @@
 
     @Bean
     public StationService myStationService() { return new StationService(); }
+
+    @Bean
+    public JobManager jobManager() { return  new JobManager(); }
 }
diff --git a/addressImport/src/test/java/org/eclipse/openk/gridfailureinformation/importadresses/controller/AddressImportControllerTest.java b/addressImport/src/test/java/org/eclipse/openk/gridfailureinformation/importadresses/controller/AddressImportControllerTest.java
new file mode 100644
index 0000000..5d467ee
--- /dev/null
+++ b/addressImport/src/test/java/org/eclipse/openk/gridfailureinformation/importadresses/controller/AddressImportControllerTest.java
@@ -0,0 +1,49 @@
+/*
+ *******************************************************************************
+ * Copyright (c) 2018 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************
+ */
+package org.eclipse.openk.gridfailureinformation.importadresses.controller;
+
+import org.eclipse.openk.gridfailureinformation.importadresses.AddressImportApplication;
+import org.eclipse.openk.gridfailureinformation.importadresses.jobs.JobManager;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.test.context.ActiveProfiles;
+import org.springframework.test.web.servlet.MockMvc;
+import static org.mockito.Mockito.verify;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+
+@SpringBootTest(classes = AddressImportApplication.class)
+@AutoConfigureMockMvc
+@ActiveProfiles("test")
+public class AddressImportControllerTest {
+
+    @MockBean
+    private JobManager jobManager;
+
+    @Autowired
+    private MockMvc mockMvc;
+
+    @Test
+    public void shouldTriggerStartImport() throws Exception {
+
+        mockMvc.perform(post("/addresses/import"))
+                .andExpect(status().is2xxSuccessful());
+
+        verify(jobManager).triggerStartImport();
+    }
+}
diff --git a/addressImport/src/test/java/org/eclipse/openk/gridfailureinformation/importadresses/exceptions/InternalServerErrorExceptionTest.java b/addressImport/src/test/java/org/eclipse/openk/gridfailureinformation/importadresses/exceptions/InternalServerErrorExceptionTest.java
new file mode 100644
index 0000000..c90dda0
--- /dev/null
+++ b/addressImport/src/test/java/org/eclipse/openk/gridfailureinformation/importadresses/exceptions/InternalServerErrorExceptionTest.java
@@ -0,0 +1,29 @@
+/*
+ *******************************************************************************
+ * Copyright (c) 2018 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************
+*/
+
+package org.eclipse.openk.gridfailureinformation.importadresses.exceptions;
+
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class InternalServerErrorExceptionTest {
+    @Test
+    public void testExceptionCreationForCoverage() {
+        new InternalServerErrorException("testOnly");
+        Exception innerException = new InternalServerErrorException("inner Exception");
+        assertEquals( innerException.getMessage(), "inner Exception");
+    }
+}
diff --git a/addressImport/src/test/java/org/eclipse/openk/gridfailureinformation/importadresses/jobs/JobManagerTest.java b/addressImport/src/test/java/org/eclipse/openk/gridfailureinformation/importadresses/jobs/JobManagerTest.java
new file mode 100644
index 0000000..4f198e9
--- /dev/null
+++ b/addressImport/src/test/java/org/eclipse/openk/gridfailureinformation/importadresses/jobs/JobManagerTest.java
@@ -0,0 +1,85 @@
+/*
+ *******************************************************************************
+ * Copyright (c) 2018 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************
+ */
+package org.eclipse.openk.gridfailureinformation.importadresses.jobs;
+
+import org.eclipse.openk.gridfailureinformation.importadresses.config.TestConfiguration;
+import org.eclipse.openk.gridfailureinformation.importadresses.service.AddressImportService;
+import org.junit.jupiter.api.Test;
+import org.powermock.reflect.Whitebox;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.test.context.ContextConfiguration;
+import static java.lang.Boolean.TRUE;
+import static java.lang.Boolean.FALSE;
+import static org.junit.jupiter.api.Assertions.*;
+import static org.mockito.Mockito.*;
+
+@DataJpaTest
+@ContextConfiguration(classes = {TestConfiguration.class})
+public class JobManagerTest {
+
+    @Autowired
+    JobManager jobManager;
+
+    @MockBean
+    AddressImportService addressImportService;
+
+    @Test
+    public void shouldTriggerStartImport() {
+        jobManager.triggerStartImport();
+        Boolean startImport = Whitebox.getInternalState(jobManager, "startImport");
+        assertEquals(startImport, TRUE);
+    }
+
+    @Test
+    public void shouldImportOnTriggerAndSetStartImportBackToFalse() throws Exception {
+        Whitebox.setInternalState(jobManager, "startImport", TRUE);
+
+        try {
+            Whitebox.invokeMethod(jobManager, "importOnTrigger");
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        Boolean startImport = Whitebox.getInternalState(jobManager, "startImport");
+        assertEquals(startImport, FALSE);
+    }
+
+    @Test
+    public void shouldImportOnTriggerAndDontChangeTheValueFromStartImport() {
+        Whitebox.setInternalState(jobManager, "startImport", FALSE);
+
+        try {
+            Whitebox.invokeMethod(jobManager, "importOnTrigger");
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        Boolean startImport = Whitebox.getInternalState(jobManager, "startImport");
+        assertEquals(startImport, FALSE);
+    }
+
+    @Test
+    public void shouldImportAddressdataAndInvokeImportAddresses() {
+        jobManager.cleanUp = false;
+        try {
+            Whitebox.invokeMethod(jobManager, "importAddressdata");
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        verify(addressImportService, times(1)).importAddresses(false);
+    }
+}