This is an automated email from the ASF dual-hosted git repository.

machristie pushed a commit to branch airavata-v2-refactoring
in repository https://gitbox.apache.org/repos/asf/airavata.git


The following commit(s) were added to refs/heads/airavata-v2-refactoring by 
this push:
     new 48e6170f51 Test for ExecutionHandler to verify mappings
48e6170f51 is described below

commit 48e6170f517245cda0f15e35342e5d1db1c392df
Author: Marcus Christie <[email protected]>
AuthorDate: Wed May 31 14:52:25 2023 -0400

    Test for ExecutionHandler to verify mappings
---
 modules/airavata-apis/airavata-apis-client/pom.xml | 11 +++--
 modules/airavata-apis/airavata-apis-server/pom.xml |  8 +++-
 .../airavata/apis/handlers/ExecutionHandler.java   | 14 +++++--
 .../apis/handlers/ExecutionHandlerTest.java        | 48 ++++++++++++++++++++++
 .../airavata/apis/handlers/TestStreamObserver.java | 36 ++++++++++++++++
 5 files changed, 109 insertions(+), 8 deletions(-)

diff --git a/modules/airavata-apis/airavata-apis-client/pom.xml 
b/modules/airavata-apis/airavata-apis-client/pom.xml
index 806092c066..cdabf97000 100644
--- a/modules/airavata-apis/airavata-apis-client/pom.xml
+++ b/modules/airavata-apis/airavata-apis-client/pom.xml
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project xmlns="http://maven.apache.org/POM/4.0.0";
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.airavata</groupId>
@@ -17,6 +16,12 @@
             <artifactId>airavata-apis-stub</artifactId>
             <version>${project.version}</version>
         </dependency>
+        <dependency>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-netty-shaded</artifactId>
+            <version>${grpc.version}</version>
+            <scope>runtime</scope>
+        </dependency>
     </dependencies>
     <properties>
         <maven.compiler.source>18</maven.compiler.source>
@@ -24,4 +29,4 @@
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/modules/airavata-apis/airavata-apis-server/pom.xml 
b/modules/airavata-apis/airavata-apis-server/pom.xml
index d365efc46c..b25b9ecee0 100644
--- a/modules/airavata-apis/airavata-apis-server/pom.xml
+++ b/modules/airavata-apis/airavata-apis-server/pom.xml
@@ -69,6 +69,12 @@
                 </exclusion>
             </exclusions>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <version>${spring.boot.data.jpa}</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
     <properties>
         <maven.compiler.source>18</maven.compiler.source>
@@ -77,4 +83,4 @@
 
     </properties>
 
-</project>
\ No newline at end of file
+</project>
diff --git 
a/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/handlers/ExecutionHandler.java
 
b/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/handlers/ExecutionHandler.java
index eb4415d721..664e460722 100644
--- 
a/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/handlers/ExecutionHandler.java
+++ 
b/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/handlers/ExecutionHandler.java
@@ -1,6 +1,7 @@
 package org.apache.airavata.apis.handlers;
 
 import io.grpc.stub.StreamObserver;
+import org.apache.airavata.api.execution.stubs.Experiment;
 import org.apache.airavata.api.execution.stubs.RunConfiguration;
 import org.apache.airavata.api.gateway.*;
 import org.apache.airavata.apis.db.entity.ExperimentEntity;
@@ -25,18 +26,23 @@ public class ExecutionHandler extends 
ExecutionServiceGrpc.ExecutionServiceImplB
     @Override
     public void registerExperiment(ExperimentRegisterRequest request, 
StreamObserver<ExperimentRegisterResponse> responseObserver) {
 
+        Experiment experiment = request.getExperiment();
         ExperimentEntity experimentEntity = new ExperimentEntity();
-        
experimentEntity.setExperimentName(request.getExperiment().getExperimentName());
-        
experimentEntity.setDescription(request.getExperiment().getDescription());
+        experimentEntity.setExperimentName(experiment.getExperimentName());
+        experimentEntity.setDescription(experiment.getDescription());
+        experimentEntity.setCreationTime(experiment.getCreationTime());
 
         List<RunConfigurationEntity> runConfigs = new ArrayList<>();
-        for(RunConfiguration rc: request.getExperiment().getRunConfigsList()) {
+        for (RunConfiguration rc : experiment.getRunConfigsList()) {
             RunConfigurationEntity runConfigurationEntity = new 
RunConfigurationEntity();
             // Fill
 
         }
         experimentEntity.setRunConfigs(runConfigs);
-        experimentRepository.save(experimentEntity);
+        ExperimentEntity savedExperimentEntity = 
experimentRepository.save(experimentEntity);
+        responseObserver.onNext(ExperimentRegisterResponse.newBuilder()
+                
.setExperimentId(savedExperimentEntity.getExperimentId()).build());
+        responseObserver.onCompleted();
     }
 
     @Override
diff --git 
a/modules/airavata-apis/airavata-apis-server/src/test/java/org/apache/airavata/apis/handlers/ExecutionHandlerTest.java
 
b/modules/airavata-apis/airavata-apis-server/src/test/java/org/apache/airavata/apis/handlers/ExecutionHandlerTest.java
new file mode 100644
index 0000000000..3987e829ea
--- /dev/null
+++ 
b/modules/airavata-apis/airavata-apis-server/src/test/java/org/apache/airavata/apis/handlers/ExecutionHandlerTest.java
@@ -0,0 +1,48 @@
+package org.apache.airavata.apis.handlers;
+
+import org.apache.airavata.api.execution.stubs.Experiment;
+import org.apache.airavata.api.gateway.ExperimentRegisterRequest;
+import org.apache.airavata.api.gateway.ExperimentRegisterResponse;
+import org.apache.airavata.apis.db.entity.ExperimentEntity;
+import org.apache.airavata.apis.db.repository.ExperimentRepository;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+@DataJpaTest
+public class ExecutionHandlerTest {
+
+    @Autowired
+    ExecutionHandler executionHandler;
+
+    @Autowired
+    ExperimentRepository experimentRepository;
+
+    @Test
+    void testExperimentMapping() {
+
+        Experiment experiment = Experiment.newBuilder()
+                .setCreationTime(System.currentTimeMillis())
+                .setDescription("Sample Exp")
+                .setExperimentName("Exp Name")
+                .build();
+
+        ExperimentRegisterRequest experimentRegisterRequest = 
ExperimentRegisterRequest.newBuilder()
+                .setExperiment(experiment).build();
+
+        TestStreamObserver<ExperimentRegisterResponse> responseObserver = new 
TestStreamObserver<>();
+        executionHandler.registerExperiment(experimentRegisterRequest, 
responseObserver);
+
+        assertTrue(responseObserver.isCompleted());
+        String experimentId = responseObserver.getNext().getExperimentId();
+        ExperimentEntity experimentEntity = 
experimentRepository.findById(experimentId).get();
+
+        assertEquals(experiment.getCreationTime(), 
experimentEntity.getCreationTime());
+        assertEquals(experiment.getDescription(), 
experimentEntity.getDescription());
+        assertEquals(experiment.getExperimentName(), 
experimentEntity.getExperimentName());
+    }
+
+}
diff --git 
a/modules/airavata-apis/airavata-apis-server/src/test/java/org/apache/airavata/apis/handlers/TestStreamObserver.java
 
b/modules/airavata-apis/airavata-apis-server/src/test/java/org/apache/airavata/apis/handlers/TestStreamObserver.java
new file mode 100644
index 0000000000..cdf15aa974
--- /dev/null
+++ 
b/modules/airavata-apis/airavata-apis-server/src/test/java/org/apache/airavata/apis/handlers/TestStreamObserver.java
@@ -0,0 +1,36 @@
+package org.apache.airavata.apis.handlers;
+
+import io.grpc.stub.StreamObserver;
+
+public final class TestStreamObserver<T> implements StreamObserver<T> {
+    T next;
+    Throwable error;
+    boolean completed = false;
+
+    @Override
+    public void onNext(T value) {
+        this.next = value;
+    }
+
+    @Override
+    public void onError(Throwable t) {
+        this.error = t;
+    }
+
+    @Override
+    public void onCompleted() {
+        this.completed = true;
+    }
+
+    public T getNext() {
+        return next;
+    }
+
+    public Throwable getError() {
+        return error;
+    }
+
+    public boolean isCompleted() {
+        return completed;
+    }
+}

Reply via email to