From 4fed73d96f305fdf6e1491d6937a5b59dbba0c25 Mon Sep 17 00:00:00 2001
From: Luke <lomah001@gold.ac.uk>
Date: Mon, 22 Apr 2019 12:04:06 +0100
Subject: [PATCH] add: added some integration tests for aws sns and shadow
 services

---
 .../com/backend/glowhouse/aws/SnsTest.java    | 21 +++++++++
 .../glowhouse/aws/TestDeviceShadowApi.java    | 45 +++++++++++++++++++
 2 files changed, 66 insertions(+)
 create mode 100644 src/test/java/com/backend/glowhouse/aws/SnsTest.java
 create mode 100644 src/test/java/com/backend/glowhouse/aws/TestDeviceShadowApi.java

diff --git a/src/test/java/com/backend/glowhouse/aws/SnsTest.java b/src/test/java/com/backend/glowhouse/aws/SnsTest.java
new file mode 100644
index 0000000..8a96ca4
--- /dev/null
+++ b/src/test/java/com/backend/glowhouse/aws/SnsTest.java
@@ -0,0 +1,21 @@
+package com.backend.glowhouse.aws;
+
+import com.backend.glowhouse.aws.sns.SnsNotificationSender;
+import com.backend.glowhouse.GlowhouseApplication;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = {GlowhouseApplication.class, SnsNotificationSender.class})
+public class SnsTest {
+    @Autowired
+    SnsNotificationSender snsNotificationSender;
+
+    @Test
+    public void testSendToAwsSns() {
+        snsNotificationSender.sendIOCommandForLight("light", "ON");
+    }
+}
diff --git a/src/test/java/com/backend/glowhouse/aws/TestDeviceShadowApi.java b/src/test/java/com/backend/glowhouse/aws/TestDeviceShadowApi.java
new file mode 100644
index 0000000..a34f792
--- /dev/null
+++ b/src/test/java/com/backend/glowhouse/aws/TestDeviceShadowApi.java
@@ -0,0 +1,45 @@
+package com.backend.glowhouse.aws;
+
+import com.amazonaws.services.iot.client.AWSIotException;
+import com.backend.glowhouse.GlowhouseApplication;
+import com.backend.glowhouse.controller.DeviceShadowController;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = {GlowhouseApplication.class, DeviceShadowController.class})
+public class TestDeviceShadowApi {
+    @Autowired
+    DeviceShadowController deviceShadowController;
+
+    @Test
+    public void testUpdateShadow() {
+        //given a message payload for aws
+        String jsonUpdate = "{\n" +
+                "    \"state\": {\n" +
+                "        \"desired\" : {\n" +
+                "            \"lights\" : \"ON\"\n" +
+                "        }\n" +
+                "    }\n" +
+                "}";
+
+        //and a service that exposes aws topics
+        deviceShadowController.updateShadow(jsonUpdate);
+
+        //TODO: add subback to test here, for now check you see a message on aws
+        Assert.assertEquals(1, 1);
+    }
+
+    @Test
+    public void testGetShadow() throws AWSIotException {
+        //given a request to aws for a devices shadow
+        String shadow = deviceShadowController.getDeviceShadow("glowhouse");
+
+        //TODO: assert here that shadow is as expected
+        Assert.assertEquals(1, 1);
+    }
+}
-- 
GitLab