From 6db03f8298674fd2beea80d0864f69612e52f5b9 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 16 Jan 2025 14:13:15 -0700
Subject: [PATCH] test prime

---
 .../earthquake/nshmp/www/PrimingResource.java | 34 +++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/PrimingResource.java b/src/main/java/gov/usgs/earthquake/nshmp/www/PrimingResource.java
index 555b8313..831e5cb2 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/PrimingResource.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/PrimingResource.java
@@ -1,6 +1,8 @@
 package gov.usgs.earthquake.nshmp.www;
 
 import java.nio.file.Path;
+import java.util.Optional;
+import java.util.logging.Logger;
 
 import org.crac.Context;
 import org.crac.Resource;
@@ -10,10 +12,14 @@ import software.amazon.awssdk.services.ssm.model.ParameterType;
 import software.amazon.awssdk.services.ssm.model.PutParameterRequest;
 import software.amazon.awssdk.services.ssm.model.SsmException;
 
+import com.amazonaws.serverless.proxy.internal.testutils.MockLambdaContext;
+import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
+
 import gov.usgs.earthquake.nshmp.gmm.Gmm;
 
 import io.micronaut.context.annotation.Value;
 import io.micronaut.crac.OrderedResource;
+import io.micronaut.function.aws.proxy.MicronautLambdaHandler;
 import jakarta.inject.Singleton;
 
 /**
@@ -27,8 +33,29 @@ public class PrimingResource implements OrderedResource {
 
   @Override
   public void beforeCheckpoint(Context<? extends Resource> context) throws Exception {
+    var log = Logger.getAnonymousLogger();
+    log.info("beforeCheckpoint");
     ServletUtil.model(ServletUtil.loadModel(modelPath));
     updateParameter();
+
+    Optional<String> location = Optional.ofNullable(System.getenv("TEST_LOCATION"));
+
+    try (MicronautLambdaHandler handler = new MicronautLambdaHandler()) {
+      log.info("Call usage");
+      handler.handleRequest(
+          getAwsProxyRequest("/hazard"),
+          new MockLambdaContext());
+
+      log.info("Test site");
+      if (location.isPresent()) {
+        log.info("Location: " + location.get());
+        handler.handleRequest(
+            getAwsProxyRequest(String.format("/hazard/%s/760", location.get())),
+            new MockLambdaContext());
+      }
+
+    }
+
   }
 
   @Override
@@ -37,6 +64,13 @@ public class PrimingResource implements OrderedResource {
     ServletUtil.resetExecutors();
   }
 
+  private static AwsProxyRequest getAwsProxyRequest(String path) {
+    final AwsProxyRequest awsProxyRequest = new AwsProxyRequest();
+    awsProxyRequest.setHttpMethod("GET");
+    awsProxyRequest.setPath(path);
+    return awsProxyRequest;
+  }
+
   private void updateParameter() throws SsmException {
     var parameterName = System.getenv("IMT_PARAMETER_NAME");
 
-- 
GitLab