diff --git a/UnitTestRH/CommandTest.cs b/UnitTestRH/CommandTest.cs index 4118ac1..09ecacd 100644 --- a/UnitTestRH/CommandTest.cs +++ b/UnitTestRH/CommandTest.cs @@ -18,7 +18,7 @@ namespace UnitTestRH string testSerial = "dummySerialCode"; string payloadId = "tunnel/send"; - string terrainId = "scene/terrain/add"; + string messageId = "scene/terrain/add"; Command command = new Command(testTunnelID); @@ -34,14 +34,160 @@ namespace UnitTestRH Assert.AreEqual(payloadId, (string)json.id); Assert.AreEqual(testTunnelID, (string)json.data.dest); - //Test terrain - Assert.AreEqual(terrainId, (string)json.data.data.id); + //Test message + Assert.AreEqual(messageId, (string)json.data.data.id); Assert.AreEqual(testSerial, (string)json.data.data.serial); - //Test terrain settings + //Test terrain JArray jArrayTerrainSize = (JArray)json.data.data.data.size; - Assert.AreEqual(terrainSizeArray, jArrayTerrainSize.ToObject()); - //Assert.AreEqual(terrainHeightsArray, (float[])json.data.data.data.heights); + JArray jArrayTerrainHeights = (JArray)json.data.data.data.heights; + + int[] outSizeArray = jArrayTerrainSize.Select(ja => (int)ja).ToArray(); + float[] outHeightsArray = jArrayTerrainHeights.Select(ja => (float)ja).ToArray(); + + CollectionAssert.AreEqual(terrainSizeArray, outSizeArray); + CollectionAssert.AreEqual(terrainHeightsArray, json.data.data.data.heights.ToObject()); + } + + [TestMethod] + public void AddLayer_TestMethod() + { + string testTunnelID = "dummyTunnelID"; + string testSerial = "dummySerialCode"; + + string payloadId = "tunnel/send"; + string messageId = "scene/node/addlayer"; + + + string testUuid = "dummyUuid"; + string diffuseExpected = @"data\NetworkEngine\textures\terrain\grass_green_d.jpg"; + string normalExpected = @"data\NetworkEngine\textures\terrain\grass_green_n.jpg"; + int minHeightExpected = 0; + int maxHeightExpected = 10; + int fadeDistExpected = 1; + + + Command command = new Command(testTunnelID); + + string terrainAddCommand = command.AddLayer(testUuid, testSerial); + + dynamic json = JsonConvert.DeserializeObject(terrainAddCommand); + + //Test payload + Assert.AreEqual(payloadId, (string)json.id); + Assert.AreEqual(testTunnelID, (string)json.data.dest); + + //Test message + Assert.AreEqual(messageId, (string)json.data.data.id); + Assert.AreEqual(testSerial, (string)json.data.data.serial); + + //Test AddLayer + Assert.AreEqual(testUuid, (string)json.data.data.data.id); + Assert.AreEqual(diffuseExpected, (string)json.data.data.data.diffuse); + Assert.AreEqual(normalExpected, (string)json.data.data.data.normal); + Assert.AreEqual(minHeightExpected, (int)json.data.data.data.minHeight); + Assert.AreEqual(maxHeightExpected, (int)json.data.data.data.maxHeight); + Assert.AreEqual(fadeDistExpected, (int)json.data.data.data.fadeDist); + } + + [TestMethod] + public void UpdateTerrain_TestMethod() + { + string testTunnelID = "dummyTunnelID"; + + string payloadId = "tunnel/send"; + string messageId = "scene/terrain/update"; + + Command command = new Command(testTunnelID); + + string terrainAddCommand = command.UpdateTerrain(); + + dynamic json = JsonConvert.DeserializeObject(terrainAddCommand); + + //Test payload + Assert.AreEqual(payloadId, (string)json.id); + Assert.AreEqual(testTunnelID, (string)json.data.dest); + + //Test message + Assert.AreEqual(messageId, (string)json.data.data.id); + } + + [TestMethod] + public void renderTerrain_TestMethod() + { + string testTunnelID = "dummyTunnelID"; + string testSerial = "dummySerialCode"; + + string payloadId = "tunnel/send"; + string messageId = "scene/node/add"; + + + string nameExpected = "newNode"; + int[] positionExpected = new int[] { -80, 0, -80 }; + float scaleExpected = 1f; + int[] rotationExpected = new int[] { 0, 0, 0 }; + + bool smoothnormalsExpected = true; + + + Command command = new Command(testTunnelID); + + string terrainAddCommand = command.renderTerrain(testSerial); + + dynamic json = JsonConvert.DeserializeObject(terrainAddCommand); + + + //Test payload + Assert.AreEqual(payloadId, (string)json.id); + Assert.AreEqual(testTunnelID, (string)json.data.dest); + + //Test message + Assert.AreEqual(messageId, (string)json.data.data.id); + Assert.AreEqual(testSerial, (string)json.data.data.serial); + + //Test data + Assert.AreEqual(nameExpected, (string)json.data.data.data.name); + + //Test data components + + //Test transform + JArray jArrayPosition = (JArray)json.data.data.data.components.transform.position; + JArray jArrayRotation = (JArray)json.data.data.data.components.transform.rotation; + + int[] outPositionArray = jArrayPosition.Select(ja => (int)ja).ToArray(); + int[] outRotationArray = jArrayRotation.Select(ja => (int)ja).ToArray(); + + CollectionAssert.AreEqual(positionExpected, outPositionArray); + CollectionAssert.AreEqual(rotationExpected, outRotationArray); + + + //Test terrain + Assert.AreEqual(smoothnormalsExpected, (bool)json.data.data.data.components.terrain.smoothnormals); + + } + + [TestMethod] + public void Dummy() + { + string testTunnelID = "dummyTunnelID"; + string testSerial = "dummySerialCode"; + + string payloadId = "tunnel/send"; + string messageId = "scene/node/addlayer"; + + Command command = new Command(testTunnelID); + + string terrainAddCommand = command.AddLayer("Dum", testSerial); + + dynamic json = JsonConvert.DeserializeObject(terrainAddCommand); + + //Test payload + Assert.AreEqual(payloadId, (string)json.id); + Assert.AreEqual(testTunnelID, (string)json.data.dest); + + //Test terrain + Assert.AreEqual(messageId, (string)json.data.data.id); + Assert.AreEqual(testSerial, (string)json.data.data.serial); } } }