From 69aa025c0cd4aea1bdf63d0ca60ef98ee8f93d13 Mon Sep 17 00:00:00 2001 From: Lisa Date: Wed, 12 Aug 2020 16:10:44 +0800 Subject: [PATCH 01/13] update --- submarine-server/server-core/pom.xml | 39 +++++ .../server/rest/ExperimentRestApi.java | 6 +- .../server/rest/ExperimentRestApiTest.java | 152 ++++++++++++++++++ 3 files changed, 196 insertions(+), 1 deletion(-) create mode 100644 submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java diff --git a/submarine-server/server-core/pom.xml b/submarine-server/server-core/pom.xml index 34d67cf7c5..3c95f8e571 100644 --- a/submarine-server/server-core/pom.xml +++ b/submarine-server/server-core/pom.xml @@ -450,6 +450,45 @@ + + org.mockito + mockito-core + test + + + com.chuusai + shapeless_2.11 + 2.3.2 + test + + + org.scalanlp + breeze_2.11 + 0.13.2 + test + + + org.mockito + mockito-core + + + org.mockito + mockito-core + + + junit + junit + + + junit + junit + + + org.scalatest + scalatest_2.11 + 3.0.3 + test + diff --git a/submarine-server/server-core/src/main/java/org/apache/submarine/server/rest/ExperimentRestApi.java b/submarine-server/server-core/src/main/java/org/apache/submarine/server/rest/ExperimentRestApi.java index d6c223d218..9264234a85 100644 --- a/submarine-server/server-core/src/main/java/org/apache/submarine/server/rest/ExperimentRestApi.java +++ b/submarine-server/server-core/src/main/java/org/apache/submarine/server/rest/ExperimentRestApi.java @@ -50,7 +50,11 @@ @Path(RestConstants.V1 + "/" + RestConstants.EXPERIMENT) @Produces({MediaType.APPLICATION_JSON + "; " + RestConstants.CHARSET_UTF8}) public class ExperimentRestApi { - private final ExperimentManager experimentManager = ExperimentManager.getInstance(); + private ExperimentManager experimentManager = ExperimentManager.getInstance(); + + public void setExperimentManager(ExperimentManager experimentManager){ + this.experimentManager = experimentManager; + } /** * Return the Pong message for test the connectivity * @return Pong message diff --git a/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java b/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java new file mode 100644 index 0000000000..c61eecf0d8 --- /dev/null +++ b/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java @@ -0,0 +1,152 @@ +package org.apache.submarine.server.rest; + +import com.google.gson.*; +import com.google.gson.internal.LinkedTreeMap; +import com.google.gson.reflect.TypeToken; +import org.apache.submarine.server.SubmarineServer; +import org.apache.submarine.server.api.environment.Environment; +import org.apache.submarine.server.api.experiment.Experiment; +import org.apache.submarine.server.api.experiment.ExperimentId; +import org.apache.submarine.server.api.experiment.ExperimentLog; +import org.apache.submarine.server.api.spec.EnvironmentSpec; +import org.apache.submarine.server.api.spec.ExperimentSpec; +import org.apache.submarine.server.experiment.ExperimentManager; +import org.apache.submarine.server.gson.ExperimentIdDeserializer; +import org.apache.submarine.server.gson.ExperimentIdSerializer; +import org.junit.*; + + +import javax.ws.rs.core.Response; +import java.util.ArrayList; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.List; + +import static org.junit.Assert.assertEquals; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.*; + +public class ExperimentRestApiTest { + + private static ExperimentRestApi experimentRestApi; + private static ExperimentManager mockExperimentManager; + private final AtomicInteger experimentCounter = new AtomicInteger(0); + private Experiment experiment; + + private static GsonBuilder gsonBuilder = new GsonBuilder() + .registerTypeAdapter(ExperimentId.class, new ExperimentIdSerializer()) + .registerTypeAdapter(ExperimentId.class, new ExperimentIdDeserializer()); + private static Gson gson = gsonBuilder.setDateFormat("yyyy-MM-dd HH:mm:ss").create(); + + @BeforeClass + public static void init() { + mockExperimentManager = mock(ExperimentManager.class); + experimentRestApi = new ExperimentRestApi(); + experimentRestApi.setExperimentManager(mockExperimentManager); + } + + @Before + public void createAndUpdateExperiment() { + experiment = new Experiment(); + experiment.setAcceptedTime("2020-08-06T08:39:22.000+08:00"); + experiment.setCreatedTime("2020-08-06T08:39:22.000+08:00"); + experiment.setRunningTime("2020-08-06T08:39:23.000+08:00"); + experiment.setFinishedTime("2020-08-06T08:41:07.000+08:00"); + experiment.setUid("0b617cea-81fa-40b6-bbff-da3e400d2be4"); + experiment.setName("tf-example"); + experiment.setStatus("Succeeded"); + experiment.setExperimentId(ExperimentId.newInstance(SubmarineServer.getServerTimeStamp(), + experimentCounter.incrementAndGet())); + ExperimentSpec experimentSpec = new ExperimentSpec(); + EnvironmentSpec environmentSpec = new EnvironmentSpec(); + environmentSpec.setName("foo"); + experimentSpec.setEnvironment(environmentSpec); + experiment.setSpec(experimentSpec); + when(mockExperimentManager.createExperiment(any(ExperimentSpec.class))).thenReturn(experiment); + Response createExperimentResponse = experimentRestApi.createExperiment(experimentSpec); + assertEquals(Response.Status.OK.getStatusCode(), createExperimentResponse.getStatus()); + Experiment result = getResultFromResponse(createExperimentResponse,Experiment.class); + assertEquals(experiment.getAcceptedTime(), result.getAcceptedTime()); + } + + @Test + public void getExperiment() { + when(mockExperimentManager.getExperiment(any(String.class))).thenReturn(experiment); + Response getExperimentResponse = experimentRestApi.getExperiment("1"); + Experiment experiment = getResultFromResponse(getExperimentResponse,Experiment.class); + assertEquals("0b617cea-81fa-40b6-bbff-da3e400d2be4", experiment.getUid()); + assertEquals("2020-08-06T08:39:22.000+08:00", experiment.getAcceptedTime()); + assertEquals("tf-example", experiment.getName()); + assertEquals("2020-08-06T08:39:22.000+08:00", experiment.getCreatedTime()); + assertEquals("2020-08-06T08:39:23.000+08:00", experiment.getRunningTime()); + } + @Test + public void patchExperiment() { + when(mockExperimentManager.patchExperiment(any(String.class),any(ExperimentSpec.class))).thenReturn(experiment); + Response patchExperimentResponse = experimentRestApi.patchExperiment("1",new ExperimentSpec()); + Experiment experiment = getResultFromResponse(patchExperimentResponse,Experiment.class); + assertEquals("0b617cea-81fa-40b6-bbff-da3e400d2be4", experiment.getUid()); + assertEquals("2020-08-06T08:39:22.000+08:00", experiment.getAcceptedTime()); + assertEquals("tf-example", experiment.getName()); + assertEquals("2020-08-06T08:39:22.000+08:00", experiment.getCreatedTime()); + assertEquals("2020-08-06T08:39:23.000+08:00", experiment.getRunningTime()); + } + @Test + public void listLog() { + List experimentLogList = new ArrayList<>(); + ExperimentLog log1=new ExperimentLog(); + log1.setExperimentId("test id"); + experimentLogList.add(log1); + when(mockExperimentManager.listExperimentLogsByStatus(any(String.class))).thenReturn(experimentLogList); + Response listLogResponse = experimentRestApi.listLog("1"); + List logs= getResultListFromResponse(listLogResponse,ExperimentLog.class); + assertEquals("test id", logs.get(0).getExperimentId()); + } + @Test + public void getLog() { + ExperimentLog log1=new ExperimentLog(); + log1.setExperimentId("test id"); + when(mockExperimentManager.getExperimentLog(any(String.class))).thenReturn(log1); + Response logResponse = experimentRestApi.getLog("1"); + ExperimentLog log= getResultFromResponse(logResponse,ExperimentLog.class); + assertEquals("test id",log.getExperimentId()); + } + @Test + public void listExperiment() { + Experiment experiment2=new Experiment(); + experiment2.setUid("0b617cea-81fa-40b6-bbff-da3e400d2be5"); + List experimentList = new ArrayList<>(); + experimentList.add(experiment); + experimentList.add(experiment2); + when(mockExperimentManager.listExperimentsByStatus(any(String.class))).thenReturn(experimentList); + Response listExperimentResponse = experimentRestApi.listExperiments(Response.Status.OK.toString()); + List experiments = getResultListFromResponse(listExperimentResponse,Experiment.class); + assertEquals("0b617cea-81fa-40b6-bbff-da3e400d2be4", experiments.get(0).getUid()); + assertEquals("0b617cea-81fa-40b6-bbff-da3e400d2be5", experiments.get(1).getUid()); + } + + @After + public void deleteExperiment() { + when(mockExperimentManager.deleteExperiment("1")).thenReturn(experiment); + Response deleteExperimentResponse = experimentRestApi.deleteExperiment("1"); + Experiment experiment = getResultFromResponse(deleteExperimentResponse,Experiment.class); + assertEquals(this.experiment.getAcceptedTime(), experiment.getAcceptedTime()); + } + + private T getResultFromResponse(Response response,Class typeT) { + String entity = (String) response.getEntity(); + JsonObject object = new JsonParser().parse(entity).getAsJsonObject(); + JsonElement result = object.get("result"); + return gson.fromJson(result, typeT); + } + private List getResultListFromResponse(Response response,Class typeT) { + String entity = (String) response.getEntity(); + JsonObject object = new JsonParser().parse(entity).getAsJsonObject(); + JsonElement result = object.get("result"); + List list = new ArrayList(); + JsonArray arry = result.getAsJsonArray(); + for (JsonElement jsonElement : arry) { + list.add(gson.fromJson(jsonElement, typeT)); + } + return list; + } +} From 5652fd551402a935f1a43f27a97b251f5dc8074d Mon Sep 17 00:00:00 2001 From: Lisa Date: Wed, 12 Aug 2020 16:14:52 +0800 Subject: [PATCH 02/13] update --- submarine-server/server-core/pom.xml | 34 ---------------------------- 1 file changed, 34 deletions(-) diff --git a/submarine-server/server-core/pom.xml b/submarine-server/server-core/pom.xml index 3c95f8e571..a146035016 100644 --- a/submarine-server/server-core/pom.xml +++ b/submarine-server/server-core/pom.xml @@ -455,40 +455,6 @@ mockito-core test - - com.chuusai - shapeless_2.11 - 2.3.2 - test - - - org.scalanlp - breeze_2.11 - 0.13.2 - test - - - org.mockito - mockito-core - - - org.mockito - mockito-core - - - junit - junit - - - junit - junit - - - org.scalatest - scalatest_2.11 - 3.0.3 - test - From c236c8455550cb87172a7ce77db2f418f64fbfb0 Mon Sep 17 00:00:00 2001 From: Lisa Date: Wed, 12 Aug 2020 16:28:01 +0800 Subject: [PATCH 03/13] update --- .../server/rest/ExperimentRestApiTest.java | 35 +++++++++++-------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java b/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java index c61eecf0d8..ee25cb42ff 100644 --- a/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java +++ b/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java @@ -64,7 +64,7 @@ public void createAndUpdateExperiment() { when(mockExperimentManager.createExperiment(any(ExperimentSpec.class))).thenReturn(experiment); Response createExperimentResponse = experimentRestApi.createExperiment(experimentSpec); assertEquals(Response.Status.OK.getStatusCode(), createExperimentResponse.getStatus()); - Experiment result = getResultFromResponse(createExperimentResponse,Experiment.class); + Experiment result = getResultFromResponse(createExperimentResponse, Experiment.class); assertEquals(experiment.getAcceptedTime(), result.getAcceptedTime()); } @@ -72,54 +72,58 @@ public void createAndUpdateExperiment() { public void getExperiment() { when(mockExperimentManager.getExperiment(any(String.class))).thenReturn(experiment); Response getExperimentResponse = experimentRestApi.getExperiment("1"); - Experiment experiment = getResultFromResponse(getExperimentResponse,Experiment.class); + Experiment experiment = getResultFromResponse(getExperimentResponse, Experiment.class); assertEquals("0b617cea-81fa-40b6-bbff-da3e400d2be4", experiment.getUid()); assertEquals("2020-08-06T08:39:22.000+08:00", experiment.getAcceptedTime()); assertEquals("tf-example", experiment.getName()); assertEquals("2020-08-06T08:39:22.000+08:00", experiment.getCreatedTime()); assertEquals("2020-08-06T08:39:23.000+08:00", experiment.getRunningTime()); } + @Test public void patchExperiment() { - when(mockExperimentManager.patchExperiment(any(String.class),any(ExperimentSpec.class))).thenReturn(experiment); - Response patchExperimentResponse = experimentRestApi.patchExperiment("1",new ExperimentSpec()); - Experiment experiment = getResultFromResponse(patchExperimentResponse,Experiment.class); + when(mockExperimentManager.patchExperiment(any(String.class), any(ExperimentSpec.class))).thenReturn(experiment); + Response patchExperimentResponse = experimentRestApi.patchExperiment("1", new ExperimentSpec()); + Experiment experiment = getResultFromResponse(patchExperimentResponse, Experiment.class); assertEquals("0b617cea-81fa-40b6-bbff-da3e400d2be4", experiment.getUid()); assertEquals("2020-08-06T08:39:22.000+08:00", experiment.getAcceptedTime()); assertEquals("tf-example", experiment.getName()); assertEquals("2020-08-06T08:39:22.000+08:00", experiment.getCreatedTime()); assertEquals("2020-08-06T08:39:23.000+08:00", experiment.getRunningTime()); } + @Test public void listLog() { List experimentLogList = new ArrayList<>(); - ExperimentLog log1=new ExperimentLog(); + ExperimentLog log1 = new ExperimentLog(); log1.setExperimentId("test id"); experimentLogList.add(log1); when(mockExperimentManager.listExperimentLogsByStatus(any(String.class))).thenReturn(experimentLogList); Response listLogResponse = experimentRestApi.listLog("1"); - List logs= getResultListFromResponse(listLogResponse,ExperimentLog.class); + List logs = getResultListFromResponse(listLogResponse, ExperimentLog.class); assertEquals("test id", logs.get(0).getExperimentId()); } + @Test public void getLog() { - ExperimentLog log1=new ExperimentLog(); + ExperimentLog log1 = new ExperimentLog(); log1.setExperimentId("test id"); when(mockExperimentManager.getExperimentLog(any(String.class))).thenReturn(log1); Response logResponse = experimentRestApi.getLog("1"); - ExperimentLog log= getResultFromResponse(logResponse,ExperimentLog.class); - assertEquals("test id",log.getExperimentId()); + ExperimentLog log = getResultFromResponse(logResponse, ExperimentLog.class); + assertEquals("test id", log.getExperimentId()); } + @Test public void listExperiment() { - Experiment experiment2=new Experiment(); + Experiment experiment2 = new Experiment(); experiment2.setUid("0b617cea-81fa-40b6-bbff-da3e400d2be5"); List experimentList = new ArrayList<>(); experimentList.add(experiment); experimentList.add(experiment2); when(mockExperimentManager.listExperimentsByStatus(any(String.class))).thenReturn(experimentList); Response listExperimentResponse = experimentRestApi.listExperiments(Response.Status.OK.toString()); - List experiments = getResultListFromResponse(listExperimentResponse,Experiment.class); + List experiments = getResultListFromResponse(listExperimentResponse, Experiment.class); assertEquals("0b617cea-81fa-40b6-bbff-da3e400d2be4", experiments.get(0).getUid()); assertEquals("0b617cea-81fa-40b6-bbff-da3e400d2be5", experiments.get(1).getUid()); } @@ -128,17 +132,18 @@ public void listExperiment() { public void deleteExperiment() { when(mockExperimentManager.deleteExperiment("1")).thenReturn(experiment); Response deleteExperimentResponse = experimentRestApi.deleteExperiment("1"); - Experiment experiment = getResultFromResponse(deleteExperimentResponse,Experiment.class); + Experiment experiment = getResultFromResponse(deleteExperimentResponse, Experiment.class); assertEquals(this.experiment.getAcceptedTime(), experiment.getAcceptedTime()); } - private T getResultFromResponse(Response response,Class typeT) { + private T getResultFromResponse(Response response, Class typeT) { String entity = (String) response.getEntity(); JsonObject object = new JsonParser().parse(entity).getAsJsonObject(); JsonElement result = object.get("result"); return gson.fromJson(result, typeT); } - private List getResultListFromResponse(Response response,Class typeT) { + + private List getResultListFromResponse(Response response, Class typeT) { String entity = (String) response.getEntity(); JsonObject object = new JsonParser().parse(entity).getAsJsonObject(); JsonElement result = object.get("result"); From 0afa729cffde329dfc6d1731edcb9122e9e6a56d Mon Sep 17 00:00:00 2001 From: Lisa Date: Wed, 12 Aug 2020 16:46:39 +0800 Subject: [PATCH 04/13] update --- .../server/rest/ExperimentRestApiTest.java | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java b/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java index ee25cb42ff..93b4295cab 100644 --- a/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java +++ b/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java @@ -1,10 +1,12 @@ package org.apache.submarine.server.rest; -import com.google.gson.*; -import com.google.gson.internal.LinkedTreeMap; -import com.google.gson.reflect.TypeToken; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonArray; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; import org.apache.submarine.server.SubmarineServer; -import org.apache.submarine.server.api.environment.Environment; import org.apache.submarine.server.api.experiment.Experiment; import org.apache.submarine.server.api.experiment.ExperimentId; import org.apache.submarine.server.api.experiment.ExperimentLog; @@ -13,7 +15,10 @@ import org.apache.submarine.server.experiment.ExperimentManager; import org.apache.submarine.server.gson.ExperimentIdDeserializer; import org.apache.submarine.server.gson.ExperimentIdSerializer; -import org.junit.*; +import org.junit.Test; +import org.junit.BeforeClass; +import org.junit.Before; +import org.junit.After; import javax.ws.rs.core.Response; @@ -23,7 +28,8 @@ import static org.junit.Assert.assertEquals; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; public class ExperimentRestApiTest { @@ -82,7 +88,8 @@ public void getExperiment() { @Test public void patchExperiment() { - when(mockExperimentManager.patchExperiment(any(String.class), any(ExperimentSpec.class))).thenReturn(experiment); + when(mockExperimentManager.patchExperiment(any(String.class), any(ExperimentSpec.class))). + thenReturn(experiment); Response patchExperimentResponse = experimentRestApi.patchExperiment("1", new ExperimentSpec()); Experiment experiment = getResultFromResponse(patchExperimentResponse, Experiment.class); assertEquals("0b617cea-81fa-40b6-bbff-da3e400d2be4", experiment.getUid()); From 23186f8dd92fac22c08d518924a52884f8d0aeed Mon Sep 17 00:00:00 2001 From: Lisa Date: Wed, 12 Aug 2020 16:49:10 +0800 Subject: [PATCH 05/13] update --- .../server/rest/ExperimentRestApiTest.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java b/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java index 93b4295cab..989cf2d903 100644 --- a/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java +++ b/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java @@ -1,3 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ package org.apache.submarine.server.rest; import com.google.gson.Gson; From 78cc0f71945f4faea585913c0417e0e1794fe7ed Mon Sep 17 00:00:00 2001 From: Lisa Date: Wed, 12 Aug 2020 16:56:07 +0800 Subject: [PATCH 06/13] update --- .../server/rest/ExperimentRestApi.java | 88 ++++++++++--------- 1 file changed, 47 insertions(+), 41 deletions(-) diff --git a/submarine-server/server-core/src/main/java/org/apache/submarine/server/rest/ExperimentRestApi.java b/submarine-server/server-core/src/main/java/org/apache/submarine/server/rest/ExperimentRestApi.java index 9264234a85..3de875d2ad 100644 --- a/submarine-server/server-core/src/main/java/org/apache/submarine/server/rest/ExperimentRestApi.java +++ b/submarine-server/server-core/src/main/java/org/apache/submarine/server/rest/ExperimentRestApi.java @@ -50,24 +50,26 @@ @Path(RestConstants.V1 + "/" + RestConstants.EXPERIMENT) @Produces({MediaType.APPLICATION_JSON + "; " + RestConstants.CHARSET_UTF8}) public class ExperimentRestApi { - private ExperimentManager experimentManager = ExperimentManager.getInstance(); + private ExperimentManager experimentManager = ExperimentManager.getInstance(); + + public void setExperimentManager(ExperimentManager experimentManager) { + this.experimentManager = experimentManager; + } - public void setExperimentManager(ExperimentManager experimentManager){ - this.experimentManager = experimentManager; - } /** * Return the Pong message for test the connectivity + * * @return Pong message */ @GET @Path(RestConstants.PING) @Consumes(MediaType.APPLICATION_JSON) @Operation(summary = "Ping submarine server", - tags = {"experiment"}, - description = "Return the Pong message for test the connectivity", - responses = { - @ApiResponse(responseCode = "200", description = "successful operation", - content = @Content(schema = @Schema(implementation = String.class)))}) + tags = {"experiment"}, + description = "Return the Pong message for test the connectivity", + responses = { + @ApiResponse(responseCode = "200", description = "successful operation", + content = @Content(schema = @Schema(implementation = String.class)))}) public Response ping() { return new JsonResponse.Builder(Response.Status.OK) .success(true).result("Pong").build(); @@ -75,16 +77,17 @@ public Response ping() { /** * Returns the contents of {@link Experiment} that submitted by user. + * * @param spec spec * @return the contents of experiment */ @POST @Consumes({RestConstants.MEDIA_TYPE_YAML, MediaType.APPLICATION_JSON}) @Operation(summary = "Create an experiment", - tags = {"experiment"}, - responses = { - @ApiResponse(description = "successful operation", content = @Content( - schema = @Schema(implementation = JsonResponse.class)))}) + tags = {"experiment"}, + responses = { + @ApiResponse(description = "successful operation", content = @Content( + schema = @Schema(implementation = JsonResponse.class)))}) public Response createExperiment(ExperimentSpec spec) { try { Experiment experiment = experimentManager.createExperiment(spec); @@ -97,14 +100,15 @@ public Response createExperiment(ExperimentSpec spec) { /** * List all experiment for the user + * * @return experiment list */ @GET @Operation(summary = "List experiments", - tags = {"experiment"}, - responses = { - @ApiResponse(description = "successful operation", content = @Content( - schema = @Schema(implementation = JsonResponse.class)))}) + tags = {"experiment"}, + responses = { + @ApiResponse(description = "successful operation", content = @Content( + schema = @Schema(implementation = JsonResponse.class)))}) public Response listExperiments(@QueryParam("status") String status) { try { List experimentList = experimentManager.listExperimentsByStatus(status); @@ -117,17 +121,18 @@ public Response listExperiments(@QueryParam("status") String status) { /** * Returns the experiment detailed info by specified experiment id + * * @param id experiment id * @return the detailed info of experiment */ @GET @Path("/{id}") @Operation(summary = "Get the experiment's detailed info by id", - tags = {"experiment"}, - responses = { - @ApiResponse(description = "successful operation", content = @Content( - schema = @Schema(implementation = JsonResponse.class))), - @ApiResponse(responseCode = "404", description = "Experiment not found")}) + tags = {"experiment"}, + responses = { + @ApiResponse(description = "successful operation", content = @Content( + schema = @Schema(implementation = JsonResponse.class))), + @ApiResponse(responseCode = "404", description = "Experiment not found")}) public Response getExperiment(@PathParam(RestConstants.ID) String id) { try { Experiment experiment = experimentManager.getExperiment(id); @@ -142,11 +147,11 @@ public Response getExperiment(@PathParam(RestConstants.ID) String id) { @Path("/{id}") @Consumes({RestConstants.MEDIA_TYPE_YAML, MediaType.APPLICATION_JSON}) @Operation(summary = "Update the experiment in the submarine server with spec", - tags = {"experiment"}, - responses = { - @ApiResponse(description = "successful operation", content = @Content( - schema = @Schema(implementation = JsonResponse.class))), - @ApiResponse(responseCode = "404", description = "Experiment not found")}) + tags = {"experiment"}, + responses = { + @ApiResponse(description = "successful operation", content = @Content( + schema = @Schema(implementation = JsonResponse.class))), + @ApiResponse(responseCode = "404", description = "Experiment not found")}) public Response patchExperiment(@PathParam(RestConstants.ID) String id, ExperimentSpec spec) { try { Experiment experiment = experimentManager.patchExperiment(id, spec); @@ -159,17 +164,18 @@ public Response patchExperiment(@PathParam(RestConstants.ID) String id, Experime /** * Returns the experiment that deleted + * * @param id experiment id * @return the detailed info about deleted experiment */ @DELETE @Path("/{id}") @Operation(summary = "Delete the experiment", - tags = {"experiment"}, - responses = { - @ApiResponse(description = "successful operation", content = @Content( - schema = @Schema(implementation = JsonResponse.class))), - @ApiResponse(responseCode = "404", description = "Experiment not found")}) + tags = {"experiment"}, + responses = { + @ApiResponse(description = "successful operation", content = @Content( + schema = @Schema(implementation = JsonResponse.class))), + @ApiResponse(responseCode = "404", description = "Experiment not found")}) public Response deleteExperiment(@PathParam(RestConstants.ID) String id) { try { Experiment experiment = experimentManager.deleteExperiment(id); @@ -183,10 +189,10 @@ public Response deleteExperiment(@PathParam(RestConstants.ID) String id) { @GET @Path("/logs") @Operation(summary = "List experiment's log", - tags = {"experiment"}, - responses = { - @ApiResponse(description = "successful operation", content = @Content( - schema = @Schema(implementation = JsonResponse.class)))}) + tags = {"experiment"}, + responses = { + @ApiResponse(description = "successful operation", content = @Content( + schema = @Schema(implementation = JsonResponse.class)))}) public Response listLog(@QueryParam("status") String status) { try { List experimentLogList = experimentManager.listExperimentLogsByStatus(status); @@ -201,11 +207,11 @@ public Response listLog(@QueryParam("status") String status) { @GET @Path("/logs/{id}") @Operation(summary = "Log experiment by id", - tags = {"experiment"}, - responses = { - @ApiResponse(description = "successful operation", content = @Content( - schema = @Schema(implementation = JsonResponse.class))), - @ApiResponse(responseCode = "404", description = "Experiment not found")}) + tags = {"experiment"}, + responses = { + @ApiResponse(description = "successful operation", content = @Content( + schema = @Schema(implementation = JsonResponse.class))), + @ApiResponse(responseCode = "404", description = "Experiment not found")}) public Response getLog(@PathParam(RestConstants.ID) String id) { try { ExperimentLog experimentLog = experimentManager.getExperimentLog(id); From ae1999f4c4375e2c3bda0407a957f5cc15ddfe17 Mon Sep 17 00:00:00 2001 From: Lisa Date: Thu, 13 Aug 2020 20:23:02 +0800 Subject: [PATCH 07/13] update --- submarine-server/server-core/pom.xml | 44 +++--- .../server/rest/ExperimentRestApi.java | 2 + .../server/rest/ExperimentRestApiTest.java | 125 ++++++++++++------ 3 files changed, 109 insertions(+), 62 deletions(-) diff --git a/submarine-server/server-core/pom.xml b/submarine-server/server-core/pom.xml index a146035016..819ac39900 100644 --- a/submarine-server/server-core/pom.xml +++ b/submarine-server/server-core/pom.xml @@ -67,7 +67,7 @@ org.javassist - javassist + javassist @@ -423,22 +423,22 @@ test - - org.apache.httpcomponents - httpclient - ${httpclient.version} - - - commons-codec - commons-codec - - - - - org.apache.httpcomponents - httpcore - ${httpcore.version} - + + org.apache.httpcomponents + httpclient + ${httpclient.version} + + + commons-codec + commons-codec + + + + + org.apache.httpcomponents + httpcore + ${httpcore.version} + org.eclipse.jgit org.eclipse.jgit @@ -450,11 +450,11 @@ - - org.mockito - mockito-core - test - + + org.mockito + mockito-core + test + diff --git a/submarine-server/server-core/src/main/java/org/apache/submarine/server/rest/ExperimentRestApi.java b/submarine-server/server-core/src/main/java/org/apache/submarine/server/rest/ExperimentRestApi.java index 3de875d2ad..b57ae1d504 100644 --- a/submarine-server/server-core/src/main/java/org/apache/submarine/server/rest/ExperimentRestApi.java +++ b/submarine-server/server-core/src/main/java/org/apache/submarine/server/rest/ExperimentRestApi.java @@ -32,6 +32,7 @@ import javax.ws.rs.core.Response; import java.util.List; +import com.google.common.annotations.VisibleForTesting; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.media.Schema; @@ -52,6 +53,7 @@ public class ExperimentRestApi { private ExperimentManager experimentManager = ExperimentManager.getInstance(); + @VisibleForTesting public void setExperimentManager(ExperimentManager experimentManager) { this.experimentManager = experimentManager; } diff --git a/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java b/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java index 989cf2d903..da07d1a65f 100644 --- a/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java +++ b/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java @@ -28,8 +28,7 @@ import org.apache.submarine.server.api.experiment.Experiment; import org.apache.submarine.server.api.experiment.ExperimentId; import org.apache.submarine.server.api.experiment.ExperimentLog; -import org.apache.submarine.server.api.spec.EnvironmentSpec; -import org.apache.submarine.server.api.spec.ExperimentSpec; +import org.apache.submarine.server.api.spec.*; import org.apache.submarine.server.experiment.ExperimentManager; import org.apache.submarine.server.gson.ExperimentIdDeserializer; import org.apache.submarine.server.gson.ExperimentIdSerializer; @@ -38,11 +37,9 @@ import org.junit.Before; import org.junit.After; - import javax.ws.rs.core.Response; -import java.util.ArrayList; +import java.util.*; import java.util.concurrent.atomic.AtomicInteger; -import java.util.List; import static org.junit.Assert.assertEquals; import static org.mockito.ArgumentMatchers.any; @@ -61,6 +58,16 @@ public class ExperimentRestApiTest { .registerTypeAdapter(ExperimentId.class, new ExperimentIdDeserializer()); private static Gson gson = gsonBuilder.setDateFormat("yyyy-MM-dd HH:mm:ss").create(); + private static String experimentAcceptedTime = "2020-08-06T08:39:22.000+08:00"; + private static String experimentCreatedTime = "2020-08-06T08:39:22.000+08:00"; + private static String experimentRunningTime = "2020-08-06T08:39:23.000+08:00"; + private static String experimentFinishedTime = "2020-08-06T08:41:07.000+08:00"; + private static String experimentName = "tf-example"; + private static String experimentUid = "0b617cea-81fa-40b6-bbff-da3e400d2be4"; + private static String experimentStatus = "Succeeded"; + private ExperimentId experimentExperimentId = ExperimentId.newInstance(SubmarineServer.getServerTimeStamp(), + experimentCounter.incrementAndGet()); + @BeforeClass public static void init() { mockExperimentManager = mock(ExperimentManager.class); @@ -69,92 +76,123 @@ public static void init() { } @Before - public void createAndUpdateExperiment() { + public void testCreateExperiment() { experiment = new Experiment(); - experiment.setAcceptedTime("2020-08-06T08:39:22.000+08:00"); - experiment.setCreatedTime("2020-08-06T08:39:22.000+08:00"); - experiment.setRunningTime("2020-08-06T08:39:23.000+08:00"); - experiment.setFinishedTime("2020-08-06T08:41:07.000+08:00"); - experiment.setUid("0b617cea-81fa-40b6-bbff-da3e400d2be4"); - experiment.setName("tf-example"); - experiment.setStatus("Succeeded"); - experiment.setExperimentId(ExperimentId.newInstance(SubmarineServer.getServerTimeStamp(), - experimentCounter.incrementAndGet())); + experiment.setAcceptedTime(experimentAcceptedTime); + experiment.setCreatedTime(experimentCreatedTime); + experiment.setRunningTime(experimentRunningTime); + experiment.setFinishedTime(experimentFinishedTime); + experiment.setUid(experimentUid); + experiment.setName(experimentName); + experiment.setStatus(experimentStatus); + experiment.setExperimentId(experimentExperimentId); ExperimentSpec experimentSpec = new ExperimentSpec(); EnvironmentSpec environmentSpec = new EnvironmentSpec(); - environmentSpec.setName("foo"); + KernelSpec kernelSpec = new KernelSpec(); + ExperimentMeta meta = new ExperimentMeta(); + kernelSpec.setName("team_default_python_3"); + kernelSpec.setChannels(Arrays.asList("defaults", "anaconda")); + kernelSpec.setDependencies(Arrays.asList( + "_ipyw_jlab_nb_ext_conf=0.1.0=py37_0", + "alabaster=0.7.12=py37_0", + "anaconda=2020.02=py37_0", + "anaconda-client=1.7.2=py37_0", + "anaconda-navigator=1.9.12=py37_0")); + meta.setName("foo"); + meta.setFramework("fooFramework"); + meta.setNamespace("fooNamespace"); experimentSpec.setEnvironment(environmentSpec); + environmentSpec.setDockerImage("continuumio/anaconda3"); + environmentSpec.setKernelSpec(kernelSpec); + experimentSpec.setMeta(meta); experiment.setSpec(experimentSpec); when(mockExperimentManager.createExperiment(any(ExperimentSpec.class))).thenReturn(experiment); Response createExperimentResponse = experimentRestApi.createExperiment(experimentSpec); assertEquals(Response.Status.OK.getStatusCode(), createExperimentResponse.getStatus()); Experiment result = getResultFromResponse(createExperimentResponse, Experiment.class); - assertEquals(experiment.getAcceptedTime(), result.getAcceptedTime()); + + assertEquals(experimentUid, result.getUid()); + assertEquals(experimentCreatedTime, result.getCreatedTime()); + assertEquals(experimentRunningTime, result.getRunningTime()); + assertEquals(experimentAcceptedTime, result.getAcceptedTime()); + assertEquals(experimentName, result.getName()); + assertEquals(experimentStatus, result.getStatus()); + assertEquals(experimentExperimentId, result.getExperimentId()); + assertEquals(experimentFinishedTime, result.getFinishedTime()); } @Test - public void getExperiment() { + public void testGetExperiment() { when(mockExperimentManager.getExperiment(any(String.class))).thenReturn(experiment); Response getExperimentResponse = experimentRestApi.getExperiment("1"); Experiment experiment = getResultFromResponse(getExperimentResponse, Experiment.class); - assertEquals("0b617cea-81fa-40b6-bbff-da3e400d2be4", experiment.getUid()); - assertEquals("2020-08-06T08:39:22.000+08:00", experiment.getAcceptedTime()); - assertEquals("tf-example", experiment.getName()); - assertEquals("2020-08-06T08:39:22.000+08:00", experiment.getCreatedTime()); - assertEquals("2020-08-06T08:39:23.000+08:00", experiment.getRunningTime()); + assertEquals(experimentUid, experiment.getUid()); + assertEquals(experimentCreatedTime, experiment.getCreatedTime()); + assertEquals(experimentRunningTime, experiment.getRunningTime()); + assertEquals(experimentAcceptedTime, experiment.getAcceptedTime()); + assertEquals(experimentName, experiment.getName()); + assertEquals(experimentStatus, experiment.getStatus()); + assertEquals(experimentExperimentId, experiment.getExperimentId()); + assertEquals(experimentFinishedTime, experiment.getFinishedTime()); } @Test - public void patchExperiment() { + public void testPatchExperiment() { when(mockExperimentManager.patchExperiment(any(String.class), any(ExperimentSpec.class))). thenReturn(experiment); Response patchExperimentResponse = experimentRestApi.patchExperiment("1", new ExperimentSpec()); Experiment experiment = getResultFromResponse(patchExperimentResponse, Experiment.class); - assertEquals("0b617cea-81fa-40b6-bbff-da3e400d2be4", experiment.getUid()); - assertEquals("2020-08-06T08:39:22.000+08:00", experiment.getAcceptedTime()); - assertEquals("tf-example", experiment.getName()); - assertEquals("2020-08-06T08:39:22.000+08:00", experiment.getCreatedTime()); - assertEquals("2020-08-06T08:39:23.000+08:00", experiment.getRunningTime()); + assertEquals(experimentUid, experiment.getUid()); + assertEquals(experimentCreatedTime, experiment.getCreatedTime()); + assertEquals(experimentRunningTime, experiment.getRunningTime()); + assertEquals(experimentAcceptedTime, experiment.getAcceptedTime()); + assertEquals(experimentName, experiment.getName()); + assertEquals(experimentStatus, experiment.getStatus()); + assertEquals(experimentExperimentId, experiment.getExperimentId()); + assertEquals(experimentFinishedTime, experiment.getFinishedTime()); } @Test - public void listLog() { + public void testListLog() { List experimentLogList = new ArrayList<>(); ExperimentLog log1 = new ExperimentLog(); - log1.setExperimentId("test id"); + String log1ID = "experiment_1597012631706_0001"; + log1.setExperimentId(log1ID); experimentLogList.add(log1); when(mockExperimentManager.listExperimentLogsByStatus(any(String.class))).thenReturn(experimentLogList); Response listLogResponse = experimentRestApi.listLog("1"); List logs = getResultListFromResponse(listLogResponse, ExperimentLog.class); - assertEquals("test id", logs.get(0).getExperimentId()); + assertEquals(log1ID, logs.get(0).getExperimentId()); } @Test - public void getLog() { + public void testGetLog() { ExperimentLog log1 = new ExperimentLog(); - log1.setExperimentId("test id"); + String log1ID = "experiment_1597012631706_0002"; + log1.setExperimentId(log1ID); when(mockExperimentManager.getExperimentLog(any(String.class))).thenReturn(log1); Response logResponse = experimentRestApi.getLog("1"); ExperimentLog log = getResultFromResponse(logResponse, ExperimentLog.class); - assertEquals("test id", log.getExperimentId()); + assertEquals(log1ID, log.getExperimentId()); } @Test - public void listExperiment() { + public void testListExperiment() { Experiment experiment2 = new Experiment(); - experiment2.setUid("0b617cea-81fa-40b6-bbff-da3e400d2be5"); + String experiment2Uid = "0b617cea-81fa-40b6-bbff-da3e400d2be5"; + experiment2.setUid(experiment2Uid); List experimentList = new ArrayList<>(); experimentList.add(experiment); experimentList.add(experiment2); when(mockExperimentManager.listExperimentsByStatus(any(String.class))).thenReturn(experimentList); Response listExperimentResponse = experimentRestApi.listExperiments(Response.Status.OK.toString()); List experiments = getResultListFromResponse(listExperimentResponse, Experiment.class); - assertEquals("0b617cea-81fa-40b6-bbff-da3e400d2be4", experiments.get(0).getUid()); - assertEquals("0b617cea-81fa-40b6-bbff-da3e400d2be5", experiments.get(1).getUid()); + assertEquals(experimentUid, experiments.get(0).getUid()); + assertEquals(experiment2Uid, experiments.get(1).getUid()); } @After - public void deleteExperiment() { + public void testDeleteExperiment() { when(mockExperimentManager.deleteExperiment("1")).thenReturn(experiment); Response deleteExperimentResponse = experimentRestApi.deleteExperiment("1"); Experiment experiment = getResultFromResponse(deleteExperimentResponse, Experiment.class); @@ -179,4 +217,11 @@ private List getResultListFromResponse(Response response, Class typeT) } return list; } + + private static ExperimentMeta parseMetadata(ExperimentSpec experimentSpec) { + ExperimentMeta meta = new ExperimentMeta(); + meta.setName(experimentSpec.getMeta().getName()); + meta.setNamespace(experimentSpec.getMeta().getNamespace()); + return meta; + } } From 48daa1c6659688863de61cd4a3f44f5926dc58ce Mon Sep 17 00:00:00 2001 From: Lisa Date: Thu, 13 Aug 2020 20:33:46 +0800 Subject: [PATCH 08/13] update --- .../submarine/server/rest/ExperimentRestApiTest.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java b/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java index da07d1a65f..5c91ee03de 100644 --- a/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java +++ b/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java @@ -28,7 +28,10 @@ import org.apache.submarine.server.api.experiment.Experiment; import org.apache.submarine.server.api.experiment.ExperimentId; import org.apache.submarine.server.api.experiment.ExperimentLog; -import org.apache.submarine.server.api.spec.*; +import org.apache.submarine.server.api.spec.EnvironmentSpec; +import org.apache.submarine.server.api.spec.ExperimentMeta; +import org.apache.submarine.server.api.spec.ExperimentSpec; +import org.apache.submarine.server.api.spec.KernelSpec; import org.apache.submarine.server.experiment.ExperimentManager; import org.apache.submarine.server.gson.ExperimentIdDeserializer; import org.apache.submarine.server.gson.ExperimentIdSerializer; @@ -218,10 +221,4 @@ private List getResultListFromResponse(Response response, Class typeT) return list; } - private static ExperimentMeta parseMetadata(ExperimentSpec experimentSpec) { - ExperimentMeta meta = new ExperimentMeta(); - meta.setName(experimentSpec.getMeta().getName()); - meta.setNamespace(experimentSpec.getMeta().getNamespace()); - return meta; - } } From 39295bb9a08a7b58d47760ef12ef8adcb37763c7 Mon Sep 17 00:00:00 2001 From: Lisa Date: Thu, 13 Aug 2020 20:44:01 +0800 Subject: [PATCH 09/13] update --- .../apache/submarine/server/rest/ExperimentRestApiTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java b/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java index 5c91ee03de..ad1d1063c9 100644 --- a/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java +++ b/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java @@ -41,7 +41,8 @@ import org.junit.After; import javax.ws.rs.core.Response; -import java.util.*; +import java.util.Arrays; +import java.util.List; import java.util.concurrent.atomic.AtomicInteger; import static org.junit.Assert.assertEquals; From 3c97584262934040914896d972fbfb6e72c7835e Mon Sep 17 00:00:00 2001 From: Lisa Date: Thu, 13 Aug 2020 20:52:37 +0800 Subject: [PATCH 10/13] update --- .../org/apache/submarine/server/rest/ExperimentRestApiTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java b/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java index ad1d1063c9..02f2729879 100644 --- a/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java +++ b/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java @@ -41,6 +41,7 @@ import org.junit.After; import javax.ws.rs.core.Response; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; From 0bb6fbc08affaf07c34d0856be1226de0d981ab7 Mon Sep 17 00:00:00 2001 From: Lisa Date: Fri, 14 Aug 2020 14:15:01 +0800 Subject: [PATCH 11/13] update --- .../server/rest/ExperimentRestApiTest.java | 115 +++++++++++------- 1 file changed, 68 insertions(+), 47 deletions(-) diff --git a/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java b/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java index 02f2729879..f793a2d044 100644 --- a/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java +++ b/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java @@ -38,7 +38,6 @@ import org.junit.Test; import org.junit.BeforeClass; import org.junit.Before; -import org.junit.After; import javax.ws.rs.core.Response; import java.util.ArrayList; @@ -56,6 +55,10 @@ public class ExperimentRestApiTest { private static ExperimentRestApi experimentRestApi; private static ExperimentManager mockExperimentManager; private final AtomicInteger experimentCounter = new AtomicInteger(0); + EnvironmentSpec environmentSpec = new EnvironmentSpec(); + KernelSpec kernelSpec = new KernelSpec(); + ExperimentMeta meta = new ExperimentMeta(); + ExperimentSpec experimentSpec = new ExperimentSpec(); private Experiment experiment; private static GsonBuilder gsonBuilder = new GsonBuilder() @@ -70,6 +73,18 @@ public class ExperimentRestApiTest { private static String experimentName = "tf-example"; private static String experimentUid = "0b617cea-81fa-40b6-bbff-da3e400d2be4"; private static String experimentStatus = "Succeeded"; + private static String metaName = "foo"; + private static String metaFramwork = "fooFramwork"; + private static String metaNamespace = "fooNamespace"; + private static String dockerImage = "continuumio/anaconda3"; + private static String kernelSpecName = "team_default_python_3"; + private static List kernelChannels = Arrays.asList("defaults", "anaconda"); + private static List kernelDependencies = Arrays.asList( + "_ipyw_jlab_nb_ext_conf=0.1.0=py37_0", + "alabaster=0.7.12=py37_0", + "anaconda=2020.02=py37_0", + "anaconda-client=1.7.2=py37_0", + "anaconda-navigator=1.9.12=py37_0"); private ExperimentId experimentExperimentId = ExperimentId.newInstance(SubmarineServer.getServerTimeStamp(), experimentCounter.incrementAndGet()); @@ -91,39 +106,22 @@ public void testCreateExperiment() { experiment.setName(experimentName); experiment.setStatus(experimentStatus); experiment.setExperimentId(experimentExperimentId); - ExperimentSpec experimentSpec = new ExperimentSpec(); - EnvironmentSpec environmentSpec = new EnvironmentSpec(); - KernelSpec kernelSpec = new KernelSpec(); - ExperimentMeta meta = new ExperimentMeta(); - kernelSpec.setName("team_default_python_3"); - kernelSpec.setChannels(Arrays.asList("defaults", "anaconda")); - kernelSpec.setDependencies(Arrays.asList( - "_ipyw_jlab_nb_ext_conf=0.1.0=py37_0", - "alabaster=0.7.12=py37_0", - "anaconda=2020.02=py37_0", - "anaconda-client=1.7.2=py37_0", - "anaconda-navigator=1.9.12=py37_0")); - meta.setName("foo"); - meta.setFramework("fooFramework"); - meta.setNamespace("fooNamespace"); - experimentSpec.setEnvironment(environmentSpec); - environmentSpec.setDockerImage("continuumio/anaconda3"); + kernelSpec.setName(kernelSpecName); + kernelSpec.setChannels(kernelChannels); + kernelSpec.setDependencies(kernelDependencies); + meta.setName(metaName); + meta.setFramework(metaFramwork); + meta.setNamespace(metaNamespace); + environmentSpec.setDockerImage(dockerImage); environmentSpec.setKernelSpec(kernelSpec); experimentSpec.setMeta(meta); + experimentSpec.setEnvironment(environmentSpec); experiment.setSpec(experimentSpec); when(mockExperimentManager.createExperiment(any(ExperimentSpec.class))).thenReturn(experiment); Response createExperimentResponse = experimentRestApi.createExperiment(experimentSpec); assertEquals(Response.Status.OK.getStatusCode(), createExperimentResponse.getStatus()); Experiment result = getResultFromResponse(createExperimentResponse, Experiment.class); - - assertEquals(experimentUid, result.getUid()); - assertEquals(experimentCreatedTime, result.getCreatedTime()); - assertEquals(experimentRunningTime, result.getRunningTime()); - assertEquals(experimentAcceptedTime, result.getAcceptedTime()); - assertEquals(experimentName, result.getName()); - assertEquals(experimentStatus, result.getStatus()); - assertEquals(experimentExperimentId, result.getExperimentId()); - assertEquals(experimentFinishedTime, result.getFinishedTime()); + assertExperiment(result); } @Test @@ -131,14 +129,7 @@ public void testGetExperiment() { when(mockExperimentManager.getExperiment(any(String.class))).thenReturn(experiment); Response getExperimentResponse = experimentRestApi.getExperiment("1"); Experiment experiment = getResultFromResponse(getExperimentResponse, Experiment.class); - assertEquals(experimentUid, experiment.getUid()); - assertEquals(experimentCreatedTime, experiment.getCreatedTime()); - assertEquals(experimentRunningTime, experiment.getRunningTime()); - assertEquals(experimentAcceptedTime, experiment.getAcceptedTime()); - assertEquals(experimentName, experiment.getName()); - assertEquals(experimentStatus, experiment.getStatus()); - assertEquals(experimentExperimentId, experiment.getExperimentId()); - assertEquals(experimentFinishedTime, experiment.getFinishedTime()); + assertExperiment(experiment); } @Test @@ -147,14 +138,7 @@ public void testPatchExperiment() { thenReturn(experiment); Response patchExperimentResponse = experimentRestApi.patchExperiment("1", new ExperimentSpec()); Experiment experiment = getResultFromResponse(patchExperimentResponse, Experiment.class); - assertEquals(experimentUid, experiment.getUid()); - assertEquals(experimentCreatedTime, experiment.getCreatedTime()); - assertEquals(experimentRunningTime, experiment.getRunningTime()); - assertEquals(experimentAcceptedTime, experiment.getAcceptedTime()); - assertEquals(experimentName, experiment.getName()); - assertEquals(experimentStatus, experiment.getStatus()); - assertEquals(experimentExperimentId, experiment.getExperimentId()); - assertEquals(experimentFinishedTime, experiment.getFinishedTime()); + assertExperiment(experiment); } @Test @@ -184,24 +168,26 @@ public void testGetLog() { @Test public void testListExperiment() { Experiment experiment2 = new Experiment(); + experiment2.rebuild(experiment); String experiment2Uid = "0b617cea-81fa-40b6-bbff-da3e400d2be5"; experiment2.setUid(experiment2Uid); + experiment2.setExperimentId(experimentExperimentId); List experimentList = new ArrayList<>(); experimentList.add(experiment); experimentList.add(experiment2); when(mockExperimentManager.listExperimentsByStatus(any(String.class))).thenReturn(experimentList); Response listExperimentResponse = experimentRestApi.listExperiments(Response.Status.OK.toString()); List experiments = getResultListFromResponse(listExperimentResponse, Experiment.class); - assertEquals(experimentUid, experiments.get(0).getUid()); - assertEquals(experiment2Uid, experiments.get(1).getUid()); + assertExperiment(experiments.get(0)); + assertExperiment(experiments.get(1), experiment2Uid); } - @After + @Test public void testDeleteExperiment() { when(mockExperimentManager.deleteExperiment("1")).thenReturn(experiment); Response deleteExperimentResponse = experimentRestApi.deleteExperiment("1"); Experiment experiment = getResultFromResponse(deleteExperimentResponse, Experiment.class); - assertEquals(this.experiment.getAcceptedTime(), experiment.getAcceptedTime()); + assertExperiment(experiment); } private T getResultFromResponse(Response response, Class typeT) { @@ -223,4 +209,39 @@ private List getResultListFromResponse(Response response, Class typeT) return list; } + private void assertExperiment(Experiment experiment) { + assertEquals(experimentUid, experiment.getUid()); + assertEquals(experimentCreatedTime, experiment.getCreatedTime()); + assertEquals(experimentRunningTime, experiment.getRunningTime()); + assertEquals(experimentAcceptedTime, experiment.getAcceptedTime()); + assertEquals(experimentName, experiment.getName()); + assertEquals(experimentStatus, experiment.getStatus()); + assertEquals(experimentExperimentId, experiment.getExperimentId()); + assertEquals(experimentFinishedTime, experiment.getFinishedTime()); + assertEquals(metaName, experiment.getSpec().getMeta().getName()); + assertEquals(metaFramwork, experiment.getSpec().getMeta().getFramework()); + assertEquals(metaNamespace, experiment.getSpec().getMeta().getNamespace()); + assertEquals(dockerImage, experiment.getSpec().getEnvironment().getDockerImage()); + assertEquals(kernelChannels, experiment.getSpec().getEnvironment().getKernelSpec().getChannels()); + assertEquals(kernelSpecName, experiment.getSpec().getEnvironment().getKernelSpec().getName()); + assertEquals(kernelDependencies, experiment.getSpec().getEnvironment().getKernelSpec().getDependencies()); + } + + private void assertExperiment(Experiment experiment, String uid) { + assertEquals(uid, experiment.getUid()); + assertEquals(experimentCreatedTime, experiment.getCreatedTime()); + assertEquals(experimentRunningTime, experiment.getRunningTime()); + assertEquals(experimentAcceptedTime, experiment.getAcceptedTime()); + assertEquals(experimentName, experiment.getName()); + assertEquals(experimentStatus, experiment.getStatus()); + assertEquals(experimentExperimentId, experiment.getExperimentId()); + assertEquals(experimentFinishedTime, experiment.getFinishedTime()); + assertEquals(metaName, experiment.getSpec().getMeta().getName()); + assertEquals(metaFramwork, experiment.getSpec().getMeta().getFramework()); + assertEquals(metaNamespace, experiment.getSpec().getMeta().getNamespace()); + assertEquals(dockerImage, experiment.getSpec().getEnvironment().getDockerImage()); + assertEquals(kernelChannels, experiment.getSpec().getEnvironment().getKernelSpec().getChannels()); + assertEquals(kernelSpecName, experiment.getSpec().getEnvironment().getKernelSpec().getName()); + assertEquals(kernelDependencies, experiment.getSpec().getEnvironment().getKernelSpec().getDependencies()); + } } From eb2e5c2502b235bbdcb453600bcf48a1dc7f20c7 Mon Sep 17 00:00:00 2001 From: Lisa Date: Fri, 14 Aug 2020 16:09:44 +0800 Subject: [PATCH 12/13] update --- .../server/rest/ExperimentRestApiTest.java | 115 ++++++++---------- 1 file changed, 49 insertions(+), 66 deletions(-) diff --git a/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java b/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java index f793a2d044..0447d0aaed 100644 --- a/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java +++ b/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java @@ -61,33 +61,35 @@ public class ExperimentRestApiTest { ExperimentSpec experimentSpec = new ExperimentSpec(); private Experiment experiment; - private static GsonBuilder gsonBuilder = new GsonBuilder() + private static final GsonBuilder gsonBuilder = new GsonBuilder() .registerTypeAdapter(ExperimentId.class, new ExperimentIdSerializer()) .registerTypeAdapter(ExperimentId.class, new ExperimentIdDeserializer()); private static Gson gson = gsonBuilder.setDateFormat("yyyy-MM-dd HH:mm:ss").create(); - private static String experimentAcceptedTime = "2020-08-06T08:39:22.000+08:00"; - private static String experimentCreatedTime = "2020-08-06T08:39:22.000+08:00"; - private static String experimentRunningTime = "2020-08-06T08:39:23.000+08:00"; - private static String experimentFinishedTime = "2020-08-06T08:41:07.000+08:00"; - private static String experimentName = "tf-example"; - private static String experimentUid = "0b617cea-81fa-40b6-bbff-da3e400d2be4"; - private static String experimentStatus = "Succeeded"; - private static String metaName = "foo"; - private static String metaFramwork = "fooFramwork"; - private static String metaNamespace = "fooNamespace"; - private static String dockerImage = "continuumio/anaconda3"; - private static String kernelSpecName = "team_default_python_3"; - private static List kernelChannels = Arrays.asList("defaults", "anaconda"); - private static List kernelDependencies = Arrays.asList( + private static final String experimentAcceptedTime = "2020-08-06T08:39:22.000+08:00"; + private static final String experimentCreatedTime = "2020-08-06T08:39:22.000+08:00"; + private static final String experimentRunningTime = "2020-08-06T08:39:23.000+08:00"; + private static final String experimentFinishedTime = "2020-08-06T08:41:07.000+08:00"; + private static final String experimentName = "tf-example"; + private static final String experimentUid = "0b617cea-81fa-40b6-bbff-da3e400d2be4"; + private static final String experimentStatus = "Succeeded"; + private static final String metaName = "foo"; + private static final String metaFramework = "TensorFlow"; + private static final String metaNamespace = "fooNamespace"; + private static final String dockerImage = "continuumio/anaconda3"; + private static final String kernelSpecName = "team_default_python_3"; + private static final List kernelChannels = Arrays.asList("defaults", "anaconda"); + private static final List kernelDependencies = Arrays.asList( "_ipyw_jlab_nb_ext_conf=0.1.0=py37_0", "alabaster=0.7.12=py37_0", "anaconda=2020.02=py37_0", "anaconda-client=1.7.2=py37_0", "anaconda-navigator=1.9.12=py37_0"); - private ExperimentId experimentExperimentId = ExperimentId.newInstance(SubmarineServer.getServerTimeStamp(), + private final ExperimentId experimentId = ExperimentId.newInstance(SubmarineServer.getServerTimeStamp(), experimentCounter.incrementAndGet()); + private final String dummyId = "experiment_1597012631706_0001"; + @BeforeClass public static void init() { mockExperimentManager = mock(ExperimentManager.class); @@ -105,12 +107,12 @@ public void testCreateExperiment() { experiment.setUid(experimentUid); experiment.setName(experimentName); experiment.setStatus(experimentStatus); - experiment.setExperimentId(experimentExperimentId); + experiment.setExperimentId(experimentId); kernelSpec.setName(kernelSpecName); kernelSpec.setChannels(kernelChannels); kernelSpec.setDependencies(kernelDependencies); meta.setName(metaName); - meta.setFramework(metaFramwork); + meta.setFramework(metaFramework); meta.setNamespace(metaNamespace); environmentSpec.setDockerImage(dockerImage); environmentSpec.setKernelSpec(kernelSpec); @@ -121,48 +123,46 @@ public void testCreateExperiment() { Response createExperimentResponse = experimentRestApi.createExperiment(experimentSpec); assertEquals(Response.Status.OK.getStatusCode(), createExperimentResponse.getStatus()); Experiment result = getResultFromResponse(createExperimentResponse, Experiment.class); - assertExperiment(result); + compareExperiment(result, experimentUid); } @Test public void testGetExperiment() { when(mockExperimentManager.getExperiment(any(String.class))).thenReturn(experiment); - Response getExperimentResponse = experimentRestApi.getExperiment("1"); - Experiment experiment = getResultFromResponse(getExperimentResponse, Experiment.class); - assertExperiment(experiment); + Response getExperimentResponse = experimentRestApi.getExperiment(dummyId); + Experiment result = getResultFromResponse(getExperimentResponse, Experiment.class); + compareExperiment(result, experimentUid); } @Test public void testPatchExperiment() { when(mockExperimentManager.patchExperiment(any(String.class), any(ExperimentSpec.class))). thenReturn(experiment); - Response patchExperimentResponse = experimentRestApi.patchExperiment("1", new ExperimentSpec()); - Experiment experiment = getResultFromResponse(patchExperimentResponse, Experiment.class); - assertExperiment(experiment); + Response patchExperimentResponse = experimentRestApi.patchExperiment(dummyId, new ExperimentSpec()); + Experiment result = getResultFromResponse(patchExperimentResponse, Experiment.class); + compareExperiment(result, experimentUid); } @Test public void testListLog() { List experimentLogList = new ArrayList<>(); ExperimentLog log1 = new ExperimentLog(); - String log1ID = "experiment_1597012631706_0001"; - log1.setExperimentId(log1ID); + log1.setExperimentId(dummyId); experimentLogList.add(log1); when(mockExperimentManager.listExperimentLogsByStatus(any(String.class))).thenReturn(experimentLogList); - Response listLogResponse = experimentRestApi.listLog("1"); - List logs = getResultListFromResponse(listLogResponse, ExperimentLog.class); - assertEquals(log1ID, logs.get(0).getExperimentId()); + Response listLogResponse = experimentRestApi.listLog("running"); + List result = getResultListFromResponse(listLogResponse, ExperimentLog.class); + assertEquals(dummyId, result.get(0).getExperimentId()); } @Test public void testGetLog() { ExperimentLog log1 = new ExperimentLog(); - String log1ID = "experiment_1597012631706_0002"; - log1.setExperimentId(log1ID); + log1.setExperimentId(dummyId); when(mockExperimentManager.getExperimentLog(any(String.class))).thenReturn(log1); - Response logResponse = experimentRestApi.getLog("1"); - ExperimentLog log = getResultFromResponse(logResponse, ExperimentLog.class); - assertEquals(log1ID, log.getExperimentId()); + Response logResponse = experimentRestApi.getLog(dummyId); + ExperimentLog result = getResultFromResponse(logResponse, ExperimentLog.class); + assertEquals(dummyId, result.getExperimentId()); } @Test @@ -171,23 +171,24 @@ public void testListExperiment() { experiment2.rebuild(experiment); String experiment2Uid = "0b617cea-81fa-40b6-bbff-da3e400d2be5"; experiment2.setUid(experiment2Uid); - experiment2.setExperimentId(experimentExperimentId); + experiment2.setExperimentId(experimentId); List experimentList = new ArrayList<>(); experimentList.add(experiment); experimentList.add(experiment2); when(mockExperimentManager.listExperimentsByStatus(any(String.class))).thenReturn(experimentList); Response listExperimentResponse = experimentRestApi.listExperiments(Response.Status.OK.toString()); - List experiments = getResultListFromResponse(listExperimentResponse, Experiment.class); - assertExperiment(experiments.get(0)); - assertExperiment(experiments.get(1), experiment2Uid); + List result = getResultListFromResponse(listExperimentResponse, Experiment.class); + compareExperiment(result.get(0), experimentUid); + compareExperiment(result.get(1), experiment2Uid); } @Test public void testDeleteExperiment() { - when(mockExperimentManager.deleteExperiment("1")).thenReturn(experiment); - Response deleteExperimentResponse = experimentRestApi.deleteExperiment("1"); - Experiment experiment = getResultFromResponse(deleteExperimentResponse, Experiment.class); - assertExperiment(experiment); + String log1ID = "experiment_1597012631706_0002"; + when(mockExperimentManager.deleteExperiment(log1ID)).thenReturn(experiment); + Response deleteExperimentResponse = experimentRestApi.deleteExperiment(log1ID); + Experiment result = getResultFromResponse(deleteExperimentResponse, Experiment.class); + compareExperiment(result, experimentUid); } private T getResultFromResponse(Response response, Class typeT) { @@ -202,42 +203,24 @@ private List getResultListFromResponse(Response response, Class typeT) JsonObject object = new JsonParser().parse(entity).getAsJsonObject(); JsonElement result = object.get("result"); List list = new ArrayList(); - JsonArray arry = result.getAsJsonArray(); - for (JsonElement jsonElement : arry) { + JsonArray array = result.getAsJsonArray(); + for (JsonElement jsonElement : array) { list.add(gson.fromJson(jsonElement, typeT)); } return list; } - private void assertExperiment(Experiment experiment) { - assertEquals(experimentUid, experiment.getUid()); - assertEquals(experimentCreatedTime, experiment.getCreatedTime()); - assertEquals(experimentRunningTime, experiment.getRunningTime()); - assertEquals(experimentAcceptedTime, experiment.getAcceptedTime()); - assertEquals(experimentName, experiment.getName()); - assertEquals(experimentStatus, experiment.getStatus()); - assertEquals(experimentExperimentId, experiment.getExperimentId()); - assertEquals(experimentFinishedTime, experiment.getFinishedTime()); - assertEquals(metaName, experiment.getSpec().getMeta().getName()); - assertEquals(metaFramwork, experiment.getSpec().getMeta().getFramework()); - assertEquals(metaNamespace, experiment.getSpec().getMeta().getNamespace()); - assertEquals(dockerImage, experiment.getSpec().getEnvironment().getDockerImage()); - assertEquals(kernelChannels, experiment.getSpec().getEnvironment().getKernelSpec().getChannels()); - assertEquals(kernelSpecName, experiment.getSpec().getEnvironment().getKernelSpec().getName()); - assertEquals(kernelDependencies, experiment.getSpec().getEnvironment().getKernelSpec().getDependencies()); - } - - private void assertExperiment(Experiment experiment, String uid) { + private void compareExperiment(Experiment experiment, String uid) { assertEquals(uid, experiment.getUid()); assertEquals(experimentCreatedTime, experiment.getCreatedTime()); assertEquals(experimentRunningTime, experiment.getRunningTime()); assertEquals(experimentAcceptedTime, experiment.getAcceptedTime()); assertEquals(experimentName, experiment.getName()); assertEquals(experimentStatus, experiment.getStatus()); - assertEquals(experimentExperimentId, experiment.getExperimentId()); + assertEquals(experimentId, experiment.getExperimentId()); assertEquals(experimentFinishedTime, experiment.getFinishedTime()); assertEquals(metaName, experiment.getSpec().getMeta().getName()); - assertEquals(metaFramwork, experiment.getSpec().getMeta().getFramework()); + assertEquals(metaFramework, experiment.getSpec().getMeta().getFramework()); assertEquals(metaNamespace, experiment.getSpec().getMeta().getNamespace()); assertEquals(dockerImage, experiment.getSpec().getEnvironment().getDockerImage()); assertEquals(kernelChannels, experiment.getSpec().getEnvironment().getKernelSpec().getChannels()); From 58a1cea6acfe954d5a8334b60a9da7e75a58b507 Mon Sep 17 00:00:00 2001 From: Lisa Date: Mon, 17 Aug 2020 14:17:56 +0800 Subject: [PATCH 13/13] update --- .../server/rest/ExperimentRestApiTest.java | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java b/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java index 0447d0aaed..844f53de95 100644 --- a/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java +++ b/submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ExperimentRestApiTest.java @@ -59,7 +59,7 @@ public class ExperimentRestApiTest { KernelSpec kernelSpec = new KernelSpec(); ExperimentMeta meta = new ExperimentMeta(); ExperimentSpec experimentSpec = new ExperimentSpec(); - private Experiment experiment; + private Experiment actualExperiment; private static final GsonBuilder gsonBuilder = new GsonBuilder() .registerTypeAdapter(ExperimentId.class, new ExperimentIdSerializer()) @@ -99,15 +99,15 @@ public static void init() { @Before public void testCreateExperiment() { - experiment = new Experiment(); - experiment.setAcceptedTime(experimentAcceptedTime); - experiment.setCreatedTime(experimentCreatedTime); - experiment.setRunningTime(experimentRunningTime); - experiment.setFinishedTime(experimentFinishedTime); - experiment.setUid(experimentUid); - experiment.setName(experimentName); - experiment.setStatus(experimentStatus); - experiment.setExperimentId(experimentId); + actualExperiment = new Experiment(); + actualExperiment.setAcceptedTime(experimentAcceptedTime); + actualExperiment.setCreatedTime(experimentCreatedTime); + actualExperiment.setRunningTime(experimentRunningTime); + actualExperiment.setFinishedTime(experimentFinishedTime); + actualExperiment.setUid(experimentUid); + actualExperiment.setName(experimentName); + actualExperiment.setStatus(experimentStatus); + actualExperiment.setExperimentId(experimentId); kernelSpec.setName(kernelSpecName); kernelSpec.setChannels(kernelChannels); kernelSpec.setDependencies(kernelDependencies); @@ -118,29 +118,29 @@ public void testCreateExperiment() { environmentSpec.setKernelSpec(kernelSpec); experimentSpec.setMeta(meta); experimentSpec.setEnvironment(environmentSpec); - experiment.setSpec(experimentSpec); - when(mockExperimentManager.createExperiment(any(ExperimentSpec.class))).thenReturn(experiment); + actualExperiment.setSpec(experimentSpec); + when(mockExperimentManager.createExperiment(any(ExperimentSpec.class))).thenReturn(actualExperiment); Response createExperimentResponse = experimentRestApi.createExperiment(experimentSpec); assertEquals(Response.Status.OK.getStatusCode(), createExperimentResponse.getStatus()); Experiment result = getResultFromResponse(createExperimentResponse, Experiment.class); - compareExperiment(result, experimentUid); + verifyResult(result, experimentUid); } @Test public void testGetExperiment() { - when(mockExperimentManager.getExperiment(any(String.class))).thenReturn(experiment); + when(mockExperimentManager.getExperiment(any(String.class))).thenReturn(actualExperiment); Response getExperimentResponse = experimentRestApi.getExperiment(dummyId); Experiment result = getResultFromResponse(getExperimentResponse, Experiment.class); - compareExperiment(result, experimentUid); + verifyResult(result, experimentUid); } @Test public void testPatchExperiment() { when(mockExperimentManager.patchExperiment(any(String.class), any(ExperimentSpec.class))). - thenReturn(experiment); + thenReturn(actualExperiment); Response patchExperimentResponse = experimentRestApi.patchExperiment(dummyId, new ExperimentSpec()); Experiment result = getResultFromResponse(patchExperimentResponse, Experiment.class); - compareExperiment(result, experimentUid); + verifyResult(result, experimentUid); } @Test @@ -168,27 +168,27 @@ public void testGetLog() { @Test public void testListExperiment() { Experiment experiment2 = new Experiment(); - experiment2.rebuild(experiment); + experiment2.rebuild(actualExperiment); String experiment2Uid = "0b617cea-81fa-40b6-bbff-da3e400d2be5"; experiment2.setUid(experiment2Uid); experiment2.setExperimentId(experimentId); List experimentList = new ArrayList<>(); - experimentList.add(experiment); + experimentList.add(actualExperiment); experimentList.add(experiment2); when(mockExperimentManager.listExperimentsByStatus(any(String.class))).thenReturn(experimentList); Response listExperimentResponse = experimentRestApi.listExperiments(Response.Status.OK.toString()); List result = getResultListFromResponse(listExperimentResponse, Experiment.class); - compareExperiment(result.get(0), experimentUid); - compareExperiment(result.get(1), experiment2Uid); + verifyResult(result.get(0), experimentUid); + verifyResult(result.get(1), experiment2Uid); } @Test public void testDeleteExperiment() { String log1ID = "experiment_1597012631706_0002"; - when(mockExperimentManager.deleteExperiment(log1ID)).thenReturn(experiment); + when(mockExperimentManager.deleteExperiment(log1ID)).thenReturn(actualExperiment); Response deleteExperimentResponse = experimentRestApi.deleteExperiment(log1ID); Experiment result = getResultFromResponse(deleteExperimentResponse, Experiment.class); - compareExperiment(result, experimentUid); + verifyResult(result, experimentUid); } private T getResultFromResponse(Response response, Class typeT) { @@ -210,7 +210,7 @@ private List getResultListFromResponse(Response response, Class typeT) return list; } - private void compareExperiment(Experiment experiment, String uid) { + private void verifyResult(Experiment experiment, String uid) { assertEquals(uid, experiment.getUid()); assertEquals(experimentCreatedTime, experiment.getCreatedTime()); assertEquals(experimentRunningTime, experiment.getRunningTime());