diff options
author | Håkon Hallingstad <hakon@oath.com> | 2017-10-26 10:59:06 +0200 |
---|---|---|
committer | Håkon Hallingstad <hakon@oath.com> | 2017-10-26 10:59:06 +0200 |
commit | f314723a485674937d3952ab5f7b62e6c63ab16e (patch) | |
tree | 42709b6182cf7f9decb8d0d2233bf252a6614f2e /orchestrator/src/test | |
parent | c4907cf034d0a744a0cac2d49a68ef6d2a83c76f (diff) |
Undo incompatible change to HostResource::getHost
Diffstat (limited to 'orchestrator/src/test')
-rw-r--r-- | orchestrator/src/test/java/com/yahoo/vespa/orchestrator/resources/HostResourceTest.java | 68 |
1 files changed, 62 insertions, 6 deletions
diff --git a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/resources/HostResourceTest.java b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/resources/HostResourceTest.java index 0ae385bc717..65309440aee 100644 --- a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/resources/HostResourceTest.java +++ b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/resources/HostResourceTest.java @@ -4,8 +4,15 @@ package com.yahoo.vespa.orchestrator.resources; import com.yahoo.vespa.applicationmodel.ApplicationInstance; import com.yahoo.vespa.applicationmodel.ApplicationInstanceId; import com.yahoo.vespa.applicationmodel.ApplicationInstanceReference; +import com.yahoo.vespa.applicationmodel.ClusterId; +import com.yahoo.vespa.applicationmodel.ConfigId; import com.yahoo.vespa.applicationmodel.HostName; +import com.yahoo.vespa.applicationmodel.ServiceCluster; +import com.yahoo.vespa.applicationmodel.ServiceInstance; +import com.yahoo.vespa.applicationmodel.ServiceStatus; +import com.yahoo.vespa.applicationmodel.ServiceType; import com.yahoo.vespa.applicationmodel.TenantId; +import com.yahoo.vespa.orchestrator.Host; import com.yahoo.vespa.orchestrator.InstanceLookupService; import com.yahoo.vespa.orchestrator.OrchestrationException; import com.yahoo.vespa.orchestrator.Orchestrator; @@ -16,6 +23,7 @@ import com.yahoo.vespa.orchestrator.policy.HostStateChangeDeniedException; import com.yahoo.vespa.orchestrator.policy.Policy; import com.yahoo.vespa.orchestrator.restapi.wire.BatchHostSuspendRequest; import com.yahoo.vespa.orchestrator.restapi.wire.BatchOperationResult; +import com.yahoo.vespa.orchestrator.restapi.wire.GetHostResponse; import com.yahoo.vespa.orchestrator.restapi.wire.PatchHostRequest; import com.yahoo.vespa.orchestrator.restapi.wire.PatchHostResponse; import com.yahoo.vespa.orchestrator.restapi.wire.UpdateHostResponse; @@ -28,6 +36,9 @@ import org.junit.Test; import javax.ws.rs.BadRequestException; import javax.ws.rs.InternalServerErrorException; import javax.ws.rs.WebApplicationException; +import javax.ws.rs.core.UriBuilder; +import javax.ws.rs.core.UriInfo; +import java.net.URI; import java.util.Arrays; import java.util.Collections; import java.util.Optional; @@ -137,10 +148,12 @@ public class HostResourceTest { SERVICE_MONITOR_CONVERGENCE_LATENCY_SECONDS ); + private final UriInfo uriInfo = mock(UriInfo.class); + @Test public void returns_200_on_success() throws Exception { HostResource hostResource = - new HostResource(alwaysAllowOrchestrator); + new HostResource(alwaysAllowOrchestrator, uriInfo); final String hostName = "hostname"; @@ -171,7 +184,7 @@ public class HostResourceTest { public void throws_404_when_host_unknown() throws Exception { try { HostResource hostResource = - new HostResource(hostNotFoundOrchestrator); + new HostResource(hostNotFoundOrchestrator, uriInfo); hostResource.suspend("hostname"); fail(); } catch (WebApplicationException w) { @@ -244,7 +257,7 @@ public class HostResourceTest { SERVICE_MONITOR_CONVERGENCE_LATENCY_SECONDS); try { - HostResource hostResource = new HostResource(alwaysRejectResolver); + HostResource hostResource = new HostResource(alwaysRejectResolver, uriInfo); hostResource.suspend("hostname"); fail(); } catch (WebApplicationException w) { @@ -275,7 +288,7 @@ public class HostResourceTest { @Test(expected = BadRequestException.class) public void patch_state_may_throw_bad_request() { Orchestrator orchestrator = mock(Orchestrator.class); - HostResource hostResource = new HostResource(orchestrator); + HostResource hostResource = new HostResource(orchestrator, uriInfo); String hostNameString = "hostname"; PatchHostRequest request = new PatchHostRequest(); @@ -287,7 +300,7 @@ public class HostResourceTest { @Test public void patch_works() throws OrchestrationException { Orchestrator orchestrator = mock(Orchestrator.class); - HostResource hostResource = new HostResource(orchestrator); + HostResource hostResource = new HostResource(orchestrator, uriInfo); String hostNameString = "hostname"; PatchHostRequest request = new PatchHostRequest(); @@ -301,7 +314,7 @@ public class HostResourceTest { @Test(expected = InternalServerErrorException.class) public void patch_handles_exception_in_orchestrator() throws OrchestrationException { Orchestrator orchestrator = mock(Orchestrator.class); - HostResource hostResource = new HostResource(orchestrator); + HostResource hostResource = new HostResource(orchestrator, uriInfo); String hostNameString = "hostname"; PatchHostRequest request = new PatchHostRequest(); @@ -310,4 +323,47 @@ public class HostResourceTest { doThrow(new OrchestrationException("error")).when(orchestrator).setNodeStatus(new HostName(hostNameString), HostStatus.NO_REMARKS); hostResource.patch(hostNameString, request); } + + @Test + public void getHost_works() throws Exception { + Orchestrator orchestrator = mock(Orchestrator.class); + HostResource hostResource = new HostResource(orchestrator, uriInfo); + + HostName hostName = new HostName("hostname"); + + UriBuilder baseUriBuilder = mock(UriBuilder.class); + when(uriInfo.getBaseUriBuilder()).thenReturn(baseUriBuilder); + when(baseUriBuilder.path(any(String.class))).thenReturn(baseUriBuilder); + when(baseUriBuilder.path(any(Class.class))).thenReturn(baseUriBuilder); + URI uri = new URI("https://foo.com/bar"); + when(baseUriBuilder.build()).thenReturn(uri); + + ServiceInstance serviceInstance = new ServiceInstance( + new ConfigId("configId"), + hostName, + ServiceStatus.UP); + ServiceCluster serviceCluster = new ServiceCluster( + new ClusterId("clusterId"), + new ServiceType("serviceType"), + Collections.singleton(serviceInstance)); + serviceInstance.setServiceCluster(serviceCluster); + + Host host = new Host( + hostName, + HostStatus.ALLOWED_TO_BE_DOWN, + new ApplicationInstanceReference( + new TenantId("tenantId"), + new ApplicationInstanceId("applicationId")), + Collections.singletonList(serviceInstance)); + when(orchestrator.getHost(hostName)).thenReturn(host); + GetHostResponse response = hostResource.getHost(hostName.s()); + assertEquals("https://foo.com/bar", response.applicationUrl()); + assertEquals("hostname", response.hostname()); + assertEquals("ALLOWED_TO_BE_DOWN", response.state()); + assertEquals(1, response.services().size()); + assertEquals("clusterId", response.services().get(0).clusterId); + assertEquals("configId", response.services().get(0).configId); + assertEquals("UP", response.services().get(0).serviceStatus); + assertEquals("serviceType", response.services().get(0).serviceType); + } } |