GN-87 Sonarwork
diff --git a/src/main/java/org/eclipse/openk/core/controller/BackendController.java b/src/main/java/org/eclipse/openk/core/controller/CentralController.java
similarity index 92%
rename from src/main/java/org/eclipse/openk/core/controller/BackendController.java
rename to src/main/java/org/eclipse/openk/core/controller/CentralController.java
index 5b55040..7a48009 100644
--- a/src/main/java/org/eclipse/openk/core/controller/BackendController.java
+++ b/src/main/java/org/eclipse/openk/core/controller/CentralController.java
@@ -25,8 +25,8 @@
import java.util.Optional;
import java.util.stream.Collectors;
-public class BackendController {
- private static final Logger logger = Logger.getLogger(BackendController.class);
+public class CentralController {
+ private static final Logger logger = Logger.getLogger(CentralController.class);
public ServiceDistributionCluster readServerDistribution(String cluster) throws HttpStatusException {
ServiceDistributionCluster[] dcs = ServicesConfigCache.getInstance().getCache();
@@ -46,10 +46,15 @@
return vi;
}
+
+ protected RestServiceWrapper createRestServiceWrapper( boolean isHttps ) {
+ return new RestServiceWrapper(isHttps);
+ }
+
public String getServiceHealthState(String clustername, String servicename) throws HttpStatusException {
ServiceDistributionCluster.ServiceDistribution dist = findDistribution(clustername, servicename);
- RestServiceWrapper w = new RestServiceWrapper(false);
+ RestServiceWrapper w = createRestServiceWrapper(false );
StringBuilder url = new StringBuilder();
url.append(dist.getProtocol() + "://" + dist.getHost() + ":"
+ dist.getPortHealth());
diff --git a/src/main/java/org/eclipse/openk/resources/MicsCentralResource.java b/src/main/java/org/eclipse/openk/resources/MicsCentralResource.java
index b1134b6..61e62a1 100644
--- a/src/main/java/org/eclipse/openk/resources/MicsCentralResource.java
+++ b/src/main/java/org/eclipse/openk/resources/MicsCentralResource.java
@@ -24,7 +24,7 @@
import org.eclipse.openk.core.controller.DispatchController;
import org.hibernate.validator.constraints.NotEmpty;
import org.eclipse.openk.api.ServiceRequestEnvelope;
-import org.eclipse.openk.core.controller.BackendController;
+import org.eclipse.openk.core.controller.CentralController;
import org.eclipse.openk.core.controller.BaseWebService;
import org.eclipse.openk.core.exceptions.HttpStatusException;
@@ -55,7 +55,7 @@
@Path("/serviceDistribution/{clustername}")
public Response getServiceDistribution(@ApiParam(name = "clustername", value = "The name of the cluster")
@PathParam("clustername") @NotEmpty String clustername) {
- return invokeRunnable(() -> new BackendController().readServerDistribution(clustername));
+ return invokeRunnable(() -> new CentralController().readServerDistribution(clustername));
}
@ApiOperation(value = "Health state check", notes = "This service checks if the components of a service are healthy")
@@ -66,7 +66,7 @@
@PathParam("clustername") @NotEmpty String clustername,
@ApiParam(name = "servicename", value = "The name of the service")
@PathParam("servicename") @NotEmpty String servicename) {
- return invokeRunnable(() -> new BackendController().getServiceHealthState(clustername, servicename));
+ return invokeRunnable(() -> new CentralController().getServiceHealthState(clustername, servicename));
}
@ApiOperation(value = "Dispatcher", notes = "")
@@ -91,6 +91,6 @@
@GET
@Path("/versionInfo")
public Response getVersionInfo() {
- return invokeRunnable(() -> new BackendController().getVersionInfo(getVersionString()));
+ return invokeRunnable(() -> new CentralController().getVersionInfo(getVersionString()));
}
}
diff --git a/src/test/java/org/eclipse/openk/core/controller/BackendControllerTest.java b/src/test/java/org/eclipse/openk/core/controller/BackendControllerTest.java
deleted file mode 100644
index e76e762..0000000
--- a/src/test/java/org/eclipse/openk/core/controller/BackendControllerTest.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/**
-******************************************************************************
-* Copyright © 2018 PTA GmbH.
-* All rights reserved. This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License v1.0
-* which accompanies this distribution, and is available at
-*
-* http://www.eclipse.org/legal/epl-v10.html
-*
-******************************************************************************
-*/
-
-package org.eclipse.openk.core.controller;
-
-import org.eclipse.jetty.http.HttpStatus;
-import org.eclipse.openk.core.common.util.ResourceLoaderBase;
-import org.junit.Test;
-import org.powermock.reflect.Whitebox;
-import org.eclipse.openk.api.ServiceDistributionCluster;
-import org.eclipse.openk.core.exceptions.HttpStatusException;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-
-public class BackendControllerTest {
-
- private ServiceDistributionCluster baseTestReadServerDistribution(String clustername, String jsonFile) throws Exception {
- ResourceLoaderBase resourceLoaderBase = new ResourceLoaderBase();
- String json = resourceLoaderBase.loadStringFromResource(jsonFile);
-
- ServicesConfigCache scc = ServicesConfigCache.getInstance();
- ServiceDistributionCluster[] sdc = (ServiceDistributionCluster[])
- Whitebox.invokeMethod(scc,"readServerDistributionFromText", json);
-
- Whitebox.setInternalState(scc, "cache", sdc);
-
- BackendController be = new BackendController();
-
- ServiceDistributionCluster ret = be.readServerDistribution(clustername);
-
- return ret;
- }
-
- @Test
- public void testReadServerDistribution() throws Exception {
-
- ServiceDistributionCluster sdc = baseTestReadServerDistribution("elogbook.openK", "testServiceDistributions.json");
-
- assertEquals("elogbook.openK", sdc.getClustername());
- assertEquals(1, sdc.getDistributions().length);
- assertEquals("172.18.22.160", sdc.getDistributions()[0].getHost());
- }
-
- @Test
- public void testFailReadServerDistribution() throws Exception {
- try {
- baseTestReadServerDistribution("doesntMatter", "testServiceDist_False.json");
- } catch( HttpStatusException e ) {
- assertEquals(HttpStatus.INTERNAL_SERVER_ERROR_500, e.getHttpStatus());
- }
- }
-
- @Test
- public void testReadServerDistribution_notfound() throws Exception {
- try {
- ServiceDistributionCluster sdc = baseTestReadServerDistribution("invalidCluster", "testServiceDistributions.json");
- } catch( HttpStatusException e ) {
- assertEquals(HttpStatus.NOT_FOUND_404, e.getHttpStatus());
- }
- }
-
- @Test
- public void testReadServerDistribution_activeInactive() throws Exception {
- ServiceDistributionCluster sdc = baseTestReadServerDistribution( "elogbook.openk", "testServiceDistributionsTwo_OneIsInactive.json");
-
- assertEquals( 1, sdc.getDistributions().length);
- assertTrue( sdc.getDistributions()[0].isActive());
- assertEquals( "172.18.22.160", sdc.getDistributions()[0].getHost());
- }
-}
diff --git a/src/test/java/org/eclipse/openk/core/controller/CentralControllerTest.java b/src/test/java/org/eclipse/openk/core/controller/CentralControllerTest.java
new file mode 100644
index 0000000..7a8f2d1
--- /dev/null
+++ b/src/test/java/org/eclipse/openk/core/controller/CentralControllerTest.java
@@ -0,0 +1,150 @@
+/**
+******************************************************************************
+* Copyright © 2018 PTA GmbH.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+*
+* http://www.eclipse.org/legal/epl-v10.html
+*
+******************************************************************************
+*/
+
+package org.eclipse.openk.core.controller;
+
+import org.easymock.EasyMock;
+import org.eclipse.jetty.http.HttpStatus;
+import org.eclipse.openk.api.VersionInfo;
+import org.eclipse.openk.core.common.util.ResourceLoaderBase;
+import org.eclipse.openk.core.communication.RestServiceWrapper;
+import org.junit.Test;
+import org.powermock.reflect.Whitebox;
+import org.eclipse.openk.api.ServiceDistributionCluster;
+import org.eclipse.openk.core.exceptions.HttpStatusException;
+
+import static org.easymock.EasyMock.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+
+public class CentralControllerTest {
+
+ private ServiceDistributionCluster baseTestReadServerDistribution(String clustername, String jsonFile) throws Exception {
+ ResourceLoaderBase resourceLoaderBase = new ResourceLoaderBase();
+ String json = resourceLoaderBase.loadStringFromResource(jsonFile);
+
+ ServicesConfigCache scc = ServicesConfigCache.getInstance();
+ ServiceDistributionCluster[] sdc = (ServiceDistributionCluster[])
+ Whitebox.invokeMethod(scc,"readServerDistributionFromText", json);
+
+ Whitebox.setInternalState(scc, "cache", sdc);
+
+ CentralController be = new CentralController();
+
+ ServiceDistributionCluster ret = be.readServerDistribution(clustername);
+
+ return ret;
+ }
+
+ @Test
+ public void testReadServerDistribution() throws Exception {
+
+ ServiceDistributionCluster sdc = baseTestReadServerDistribution("elogbook.openK", "testServiceDistributions.json");
+
+ assertEquals("elogbook.openK", sdc.getClustername());
+ assertEquals(2, sdc.getDistributions().length);
+ assertEquals("172.18.22.160", sdc.getDistributions()[0].getHost());
+ }
+
+ @Test
+ public void testFailReadServerDistribution() throws Exception {
+ try {
+ baseTestReadServerDistribution("doesntMatter", "testServiceDist_False.json");
+ } catch( HttpStatusException e ) {
+ assertEquals(HttpStatus.INTERNAL_SERVER_ERROR_500, e.getHttpStatus());
+ }
+ }
+
+ @Test
+ public void testReadServerDistribution_notfound() throws Exception {
+ try {
+ ServiceDistributionCluster sdc = baseTestReadServerDistribution("invalidCluster", "testServiceDistributions.json");
+ } catch( HttpStatusException e ) {
+ assertEquals(HttpStatus.NOT_FOUND_404, e.getHttpStatus());
+ }
+ }
+
+ @Test
+ public void testReadServerDistribution_activeInactive() throws Exception {
+ ServiceDistributionCluster sdc = baseTestReadServerDistribution( "elogbook.openk", "testServiceDistributionsTwo_OneIsInactive.json");
+
+ assertEquals( 1, sdc.getDistributions().length);
+ assertTrue( sdc.getDistributions()[0].isActive());
+ assertEquals( "172.18.22.160", sdc.getDistributions()[0].getHost());
+ }
+
+ @Test (expected = HttpStatusException.class)
+ public void testFindDistribution_notFound() throws Exception {
+ ServiceDistributionCluster sdc = baseTestReadServerDistribution("elogbook.openK", "testServiceDistributions.json");
+ CentralController cc = new CentralController();
+ try {
+ Whitebox.invokeMethod(cc, "findDistribution", "elogbook.openK", "testService");
+ }
+ catch( HttpStatusException hse ) {
+ assertEquals(HttpStatus.NOT_FOUND_404, hse.getHttpStatus());
+ throw hse;
+ }
+ }
+
+ @Test
+ public void testFindDistribution_ok() throws Exception {
+ ServiceDistributionCluster sdc = baseTestReadServerDistribution("elogbook.openK", "testServiceDistributions.json");
+ CentralController cc = new CentralController();
+
+ Whitebox.invokeMethod(cc, "findDistribution", "elogbook.openK", "auth-n-auth.mics");
+
+ }
+
+
+ @Test (expected = HttpStatusException.class)
+ public void testFindDistribution_clusterNotFound() throws Exception {
+ ServiceDistributionCluster sdc = baseTestReadServerDistribution("elogbook.openK", "testServiceDistributions.json");
+ CentralController cc = new CentralController();
+ try {
+ Whitebox.invokeMethod(cc, "findDistribution", "invalidCluster", "auth-n-auth.mics");
+ }
+ catch( HttpStatusException hse ) {
+ assertEquals(HttpStatus.NOT_FOUND_404, hse.getHttpStatus());
+ throw hse;
+ }
+ }
+
+ @Test
+ public void testGetVersionInfo() throws Exception {
+ CentralController cc = new CentralController();
+ assertEquals("Bruno2.0", cc.getVersionInfo("Bruno2.0").getBackendVersion());
+ assertTrue(Whitebox.invokeMethod(cc, "createRestServiceWrapper", true) instanceof RestServiceWrapper );
+ }
+
+
+ @Test
+ public void testHealthCheck() throws Exception {
+ ServiceDistributionCluster sdc = baseTestReadServerDistribution("elogbook.openK", "testServiceDistributions.json");
+ CentralController cc = new CentralController() {
+ @Override
+ protected RestServiceWrapper createRestServiceWrapper( boolean isHttps ) throws HttpStatusException {
+ RestServiceWrapper wrapper = EasyMock.createMock( RestServiceWrapper.class );
+ expect( wrapper.performGetRequest( anyObject()) ).andReturn("Ist OK!").anyTimes();
+ replay( wrapper );
+ verify( wrapper );
+ return wrapper;
+ }
+
+ };
+
+
+ assertEquals("Ist OK!", cc.getServiceHealthState("elogbook.openK", "auth-n-auth.mics"));
+ assertEquals("Ist OK!", cc.getServiceHealthState("elogbook.openK", "homie"));
+
+ }
+}
diff --git a/src/test/java/org/eclipse/openk/core/controller/ServicesConfigCacheTest.java b/src/test/java/org/eclipse/openk/core/controller/ServicesConfigCacheTest.java
index d1b5e25..e699fca 100644
--- a/src/test/java/org/eclipse/openk/core/controller/ServicesConfigCacheTest.java
+++ b/src/test/java/org/eclipse/openk/core/controller/ServicesConfigCacheTest.java
@@ -38,7 +38,7 @@
ServiceDistributionCluster[] sdc = baseTestReadServerDistribution("testServiceDistributions.json");
assertEquals("elogbook.openK", sdc[0].getClustername());
- assertEquals(1, sdc[0].getDistributions().length);
+ assertEquals(2, sdc[0].getDistributions().length);
assertEquals("172.18.22.160", sdc[0].getDistributions()[0].getHost());
}
diff --git a/src/test/resources/testServiceDistributions.json b/src/test/resources/testServiceDistributions.json
index 8049751..0563fc1 100644
--- a/src/test/resources/testServiceDistributions.json
+++ b/src/test/resources/testServiceDistributions.json
@@ -14,7 +14,18 @@
"portApp": "9002",
"portHealth": "9003",
"description": "Authentication Service"
- }
+ },
+ {
+ "active": "true",
+ "name": "homie",
+ "protocol": "http",
+ "host": "172.18.22.160",
+ "urlPath": "/homie",
+ "healthUrlPath": "/portal/rest/beservice",
+ "portApp": "8080",
+ "portHealth": "8080",
+ "description": "Authentication Service"
+ }
]
}
]
\ No newline at end of file