diff options
author | valerijf <valerijf@yahoo-inc.com> | 2016-06-27 11:05:14 +0200 |
---|---|---|
committer | valerijf <valerijf@yahoo-inc.com> | 2016-06-27 11:05:14 +0200 |
commit | 7403554c63f97bd3dbc8097d55d5c3f2e0bc5b0a (patch) | |
tree | b60b0d7f42297a18551043b007cfe07b65dc64d7 /node-admin | |
parent | 5f205be77c962b77c874f88d5b405276527cecf2 (diff) |
Mocks will now throw exception if semaphore is not acquired during initialization
Diffstat (limited to 'node-admin')
4 files changed, 35 insertions, 0 deletions
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/NodeAdminStateUpdaterTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/NodeAdminStateUpdaterTest.java index 2b8517ab33b..f2d1037062b 100644 --- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/NodeAdminStateUpdaterTest.java +++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/NodeAdminStateUpdaterTest.java @@ -6,6 +6,8 @@ import com.yahoo.vespa.hosted.node.admin.docker.ContainerName; import com.yahoo.vespa.hosted.node.admin.integrationTests.OrchestratorMock; import com.yahoo.vespa.hosted.node.admin.noderepository.NodeRepository; import com.yahoo.vespa.hosted.node.admin.noderepository.NodeState; +import org.junit.After; +import org.junit.Before; import org.junit.Test; import org.mockito.stubbing.Answer; @@ -29,6 +31,21 @@ import static org.mockito.Mockito.when; */ public class NodeAdminStateUpdaterTest { + @Before + public void before() { + try { + OrchestratorMock.semaphore.acquire(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + OrchestratorMock.reset(); + } + + @After + public void after() { + OrchestratorMock.semaphore.release(); + } + @Test @SuppressWarnings("unchecked") public void testExceptionIsCaughtAndDataIsPassedAndFreeze() throws Exception { diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerMock.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerMock.java index b72d1e02049..d1669a847ea 100644 --- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerMock.java +++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerMock.java @@ -24,6 +24,12 @@ public class DockerMock implements Docker { private List<Container> containers = new ArrayList<>(); public static StringBuilder requests = new StringBuilder(); + public DockerMock() { + if(OrchestratorMock.semaphore.tryAcquire()) { + throw new RuntimeException("OrchestratorMock.semaphore must be acquired before using DockerMock"); + } + } + @Override public void startContainer(DockerImage dockerImage, HostName hostName, ContainerName containerName, double minCpuCores, double minDiskAvailableGb, double minMainMemoryAvailableGb) { diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/NodeRepoMock.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/NodeRepoMock.java index f066f27f560..160a2b8e351 100644 --- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/NodeRepoMock.java +++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/NodeRepoMock.java @@ -18,6 +18,12 @@ public class NodeRepoMock implements NodeRepository { public static final List<ContainerNodeSpec> containerNodeSpecs = new ArrayList<>(); + public NodeRepoMock() { + if(OrchestratorMock.semaphore.tryAcquire()) { + throw new RuntimeException("OrchestratorMock.semaphore must be acquired before using NodeRepoMock"); + } + } + @Override public List<ContainerNodeSpec> getContainersToRun() throws IOException { return containerNodeSpecs; diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/OrchestratorMock.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/OrchestratorMock.java index a4eb3c38cf3..9c740bcdf44 100644 --- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/OrchestratorMock.java +++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/OrchestratorMock.java @@ -23,6 +23,12 @@ public class OrchestratorMock implements Orchestrator { public static final Semaphore semaphore = new Semaphore(1); + public OrchestratorMock() { + if(semaphore.tryAcquire()) { + throw new RuntimeException("OrchestratorMock.semaphore must be acquired before using OrchestratorMock"); + } + } + @Override public boolean suspend(HostName hostName) { synchronized (monitor) { |