Unit tests for Marathon binding
diff --git a/containers-marathon/src/main/java/org/apache/aries/containers/marathon/impl/ServiceImpl.java b/containers-marathon/src/main/java/org/apache/aries/containers/marathon/impl/ServiceImpl.java
index 182d4b4..7cf926f 100644
--- a/containers-marathon/src/main/java/org/apache/aries/containers/marathon/impl/ServiceImpl.java
+++ b/containers-marathon/src/main/java/org/apache/aries/containers/marathon/impl/ServiceImpl.java
@@ -72,7 +72,7 @@
@Override
public void setInstanceCount(int count) {
App updatedApp = new App();
- updatedApp.setInstances(count);;
+ updatedApp.setInstances(count);
marathonClient.updateApp(marathonAppID, updatedApp, true);
}
diff --git a/containers-marathon/src/test/java/org/apache/aries/containers/marathon/impl/ServiceImplTest.java b/containers-marathon/src/test/java/org/apache/aries/containers/marathon/impl/ServiceImplTest.java
index b435d72..d02ddea 100644
--- a/containers-marathon/src/test/java/org/apache/aries/containers/marathon/impl/ServiceImplTest.java
+++ b/containers-marathon/src/test/java/org/apache/aries/containers/marathon/impl/ServiceImplTest.java
@@ -30,6 +30,8 @@
import org.apache.aries.containers.ServiceConfig;
import org.junit.Test;
import org.mockito.Mockito;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertSame;
@@ -37,6 +39,7 @@
import mesosphere.marathon.client.Marathon;
import mesosphere.marathon.client.model.v2.App;
import mesosphere.marathon.client.model.v2.GetAppResponse;
+import mesosphere.marathon.client.model.v2.Result;
import mesosphere.marathon.client.model.v2.Task;
public class ServiceImplTest {
@@ -129,6 +132,34 @@
assertEquals(new HashSet<>(Arrays.asList("task1", "task2")), foundTasks);
}
+ @Test
+ public void testSetInstanceCount() throws Exception {
+ List<App> updatedApps = new ArrayList<>();
+
+ Marathon mc = Mockito.mock(Marathon.class);
+ Mockito.when(mc.updateApp(Mockito.eq("mid1"), Mockito.isA(App.class), Mockito.eq(true))).
+ then(new Answer<Result>() {
+ @Override
+ public Result answer(InvocationOnMock invocation) throws Throwable {
+ updatedApps.add((App) invocation.getArguments()[1]);
+ return Mockito.mock(Result.class);
+ }
+ });
+
+ ServiceConfig cfg = ServiceConfig.builder("svc1", "a/b/c:d").build();
+
+ App app = new App();
+ app.setId("mid1");
+ ServiceImpl svc = new ServiceImpl(mc, app, cfg);
+
+ assertEquals("Precondition", 0, updatedApps.size());
+ svc.setInstanceCount(5);
+ assertEquals(1, updatedApps.size());
+
+ App updated = updatedApps.iterator().next();
+ assertEquals(5, (int) updated.getInstances());
+ }
+
private GetAppResponse getAppResponse(App a) {
GetAppResponse gar = Mockito.mock(GetAppResponse.class);
Mockito.when(gar.getApp()).thenReturn(a);