X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Forg%2Fonap%2Fcrud%2Fservice%2FCrudRestServiceTest.java;h=1098284798318ff3dff4837f7ae42bf09ac7a966;hb=3bc6a702f2d3d8710c7aaa94cdc8c0ccf3deb759;hp=13cba114fccaf71395573a577e9488b524e022b7;hpb=00832f054dd0c21492af531548e321ea25cdb8b4;p=aai%2Fgizmo.git diff --git a/src/test/java/org/onap/crud/service/CrudRestServiceTest.java b/src/test/java/org/onap/crud/service/CrudRestServiceTest.java index 13cba11..1098284 100644 --- a/src/test/java/org/onap/crud/service/CrudRestServiceTest.java +++ b/src/test/java/org/onap/crud/service/CrudRestServiceTest.java @@ -26,8 +26,6 @@ import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; -import java.nio.file.Path; -import java.nio.file.Paths; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.Response; @@ -37,7 +35,6 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import org.mockito.Mockito; -import org.onap.crud.dao.TestDao; import org.onap.crud.exception.CrudException; import org.onap.crud.service.util.TestHeaders; import org.onap.crud.service.util.TestRequest; @@ -52,180 +49,210 @@ public class CrudRestServiceTest { "\"properties\": {" + "\"fqdn\": \"myhost.onap.com\"," + "\"hostname\": \"myhost\" } }"; - + private final String postVertexPayload = "{" + "\"type\": \"pserver\"," + "\"properties\": {" + "\"fqdn\": \"myhost.onap.com\"," + "\"hostname\": \"myhost\" } }"; - + private final String postMissingPropVertexPayload = "{" + "\"type\": \"pserver\"," + "\"properties\": {" + "\"fqdn\": \"myhost.onap.com\"," + "\"equip-type\": \"box\" } }"; - + private final String postEdgePayload = "{" + "\"type\": \"tosca.relationships.HostedOn\"," + - "\"source\": \"services/inventory/v12/vserver/50bdab41-ad1c-4d00-952c-a0aa5d827811\"," + - "\"target\": \"services/inventory/v12/pserver/1d326bc7-b985-492b-9604-0d5d1f06f908\"," + + "\"source\": \"services/inventory/v11/vserver/50bdab41-ad1c-4d00-952c-a0aa5d827811\"," + + "\"target\": \"services/inventory/v11/pserver/1d326bc7-b985-492b-9604-0d5d1f06f908\"," + "\"properties\": {" + "\"prevent-delete\": \"NONE\" } }"; - + private CrudRestService mockService; - + @Rule public ExpectedException thrown = ExpectedException.none(); @Before public void init() throws Exception { - Path resourcePath = Paths.get(ClassLoader.getSystemResource("model").toURI()); - Path parentPath = resourcePath.getParent(); - - System.setProperty("CONFIG_HOME", parentPath.toString()); - EdgeRulesLoader.resetSchemaVersionContext (); - CrudGraphDataService service = new CrudGraphDataService(new TestDao()); - CrudRestService restService = new CrudRestService(service, null); - mockService = Mockito.spy(restService); - - Mockito.doReturn(true).when(mockService).validateRequest(Mockito.any(HttpServletRequest.class), - Mockito.anyString(), Mockito.anyString(), Mockito.any(CrudRestService.Action.class), Mockito.anyString(), - Mockito.any(HttpHeaders.class)); + System.setProperty("CONFIG_HOME", "src/test/resources"); + EdgeRulesLoader.resetSchemaVersionContext(); + + ChampDaoMockTest champDaoTest = new ChampDaoMockTest(); + CrudGraphDataService service = new CrudGraphDataService(champDaoTest.getChampDao()); + CrudRestService restService = new CrudRestService(service, null); + mockService = Mockito.spy(restService); + + Mockito.doReturn(true).when(mockService).validateRequest(Mockito.any(HttpServletRequest.class), + Mockito.anyString(), Mockito.anyString(), Mockito.any(CrudRestService.Action.class), Mockito.anyString(), + Mockito.any(HttpHeaders.class)); } - + @Test public void testDelete() throws CrudException { Response response; - - response = mockService.deleteVertex("", "v11", "pserver", "872dd5df-0be9-4167-95e9-2cf4b21165ed", + + response = mockService.deleteVertex("", "v11", "pserver", "872dd5df-0be9-4167-95e9-2cf4b21165ed", "services/inventory/v11", new TestHeaders(), null, new TestRequest()); assertTrue(response.getStatus() == 200); - - response = mockService.deleteEdge("", "v11", "tosca.relationships.HostedOn", - "872dd5df-0be9-4167-95e9-2cf4b21165ed", + + response = mockService.deleteEdge("", "v11", "tosca.relationships.HostedOn", "872dd5df-0be9-4167-95e9-2cf4b21165ed", "services/inventory/v11", new TestHeaders(), null, new TestRequest()); assertTrue(response.getStatus() == 200); } - + @Test public void testAddVertex() throws CrudException { Response response; - + // Cannot find OXM version - response = mockService.addVertex(postVertexPayload, "v8", "services/inventory/v8", + response = mockService.addVertex(postVertexPayload, "v7", "services/inventory/v8", new TestHeaders(), null, new TestRequest()); System.out.println("Response: " + response.getStatus() + "\n" + response.getEntity().toString()); assertTrue(response.getStatus() == 500); Assert.assertNull(response.getEntityTag()); - - response = mockService.addVertex(postMissingPropVertexPayload, "v11", "services/inventory/v11", + + response = mockService.addVertex(postMissingPropVertexPayload, "v11", "services/inventory/v11", new TestHeaders(), null, new TestRequest()); System.out.println("Response: " + response.getStatus() + "\n" + response.getEntity().toString()); assertTrue(response.getStatus() == 400); - - response = mockService.addVertex(postVertexPayload, "v11", "services/inventory/v11", + Assert.assertNull(response.getEntityTag()); + + response = mockService.addVertex(postVertexPayload, "v11", "services/inventory/v11", new TestHeaders(), null, new TestRequest()); System.out.println("Response: " + response.getStatus() + "\n" + response.getEntity().toString()); assertTrue(response.getStatus() == 201); - - response = mockService.addVertex(postMissingPropVertexPayload, "v11", "pserver", "services/inventory/v11", + Assert.assertEquals(response.getEntityTag().getValue(), "test123"); + + response = mockService.addVertex(postMissingPropVertexPayload, "v11", "pserver", "services/inventory/v11", new TestHeaders(), null, new TestRequest()); System.out.println("Response: " + response.getStatus() + "\n" + response.getEntity().toString()); - assertTrue(response.getStatus() == 400); - - response = mockService.addVertex(postVertexPayload, "v11", "pserver", "services/inventory/v11", + assertTrue(response.getStatus() == 400); + Assert.assertNull(response.getEntityTag()); + + response = mockService.addVertex(postVertexPayload, "v11", "pserver", "services/inventory/v11", new TestHeaders(), null, new TestRequest()); System.out.println("Response: " + response.getStatus() + "\n" + response.getEntity().toString()); - assertTrue(response.getStatus() == 201); + assertTrue(response.getStatus() == 201); + Assert.assertEquals(response.getEntityTag().getValue(), "test123"); } - + @Test public void testAddEdge() throws CrudException { Response response; - - response = mockService.addEdge(postEdgePayload, "v11", "services/inventory/v11", + + response = mockService.addEdge(postEdgePayload, "v9", "services/inventory/v9", new TestHeaders(), null, new TestRequest()); System.out.println("Response: " + response.getStatus() + "\n" + response.getEntity().toString()); assertTrue(response.getStatus() == 201); - - response = mockService.addEdge(postEdgePayload, "v11", "tosca.relationships.HostedOn", "services/inventory/v11", + Assert.assertEquals(response.getEntityTag().getValue(), "test123"); + + response = mockService.addEdge(postEdgePayload, "v9", "tosca.relationships.HostedOn", "services/inventory/v11", new TestHeaders(), null, new TestRequest()); System.out.println("Response: " + response.getStatus() + "\n" + response.getEntity().toString()); - assertTrue(response.getStatus() == 201); + assertTrue(response.getStatus() == 201); + Assert.assertEquals(response.getEntityTag().getValue(), "test123"); } - + + @Test + public void testAddEdgeMultiplicityRules() throws CrudException { + Response response; + + response = mockService.addEdge(postEdgePayload, "v10", "services/inventory/v10", + new TestHeaders(), null, new TestRequest()); + Assert.assertEquals("MANY2ONE multiplicity rule broken for Edge:vserver:pserver:tosca.relationships.HostedOn", + response.getEntity().toString()); + Assert.assertEquals(400, response.getStatus()); + + response = mockService.addEdge(postEdgePayload, "v9", "tosca.relationships.HostedOn", "services/inventory/v9", + new TestHeaders(), null, new TestRequest()); + Assert.assertEquals(201, response.getStatus()); + + response = mockService.addEdge(postEdgePayload, "v8", "tosca.relationships.HostedOn", "services/inventory/v8", + new TestHeaders(), null, new TestRequest()); + Assert.assertEquals("ONE2MANY multiplicity rule broken for Edge:vserver:pserver:tosca.relationships.HostedOn", + response.getEntity().toString()); + Assert.assertEquals(400, response.getStatus()); + } + @Test public void testUpdateVertex() throws CrudException { Response response; // Cannot find OXM version - response = mockService.updateVertex(putVertexPayload, "v8", "pserver", "test-uuid", "services/inventory/v8", + response = mockService.updateVertex(putVertexPayload, "v7", "pserver", "test-uuid", "services/inventory/v8", new TestHeaders(), null, new TestRequest()); System.out.println("Response: " + response.getStatus() + "\n" + response.getEntity().toString()); assertTrue(response.getStatus() == 500); Assert.assertNull(response.getEntityTag()); - + // Test ID mismatch - response = mockService.updateVertex(putVertexPayload, "v11", "pserver", "bad-id", + response = mockService.updateVertex(putVertexPayload, "v11", "pserver", "bad-id", "services/inventory/v11", new TestHeaders(), null, new TestRequest()); System.out.println("Response: " + response.getStatus() + "\n" + response.getEntity().toString()); - assertTrue(response.getStatus() == 400); - + assertTrue(response.getStatus() == 400); + Assert.assertNull(response.getEntityTag()); + // Success case response = mockService.updateVertex(putVertexPayload, "v11", "pserver", "test-uuid", "services/inventory/v11", new TestHeaders(), null, new TestRequest()); System.out.println("Response: " + response.getStatus() + "\n" + response.getEntity().toString()); - assertTrue(response.getStatus() == 200); - + assertTrue(response.getStatus() == 200); + Assert.assertEquals(response.getEntityTag().getValue(), "test123"); + // Patch - response = mockService.patchVertex(putVertexPayload, "v11", "pserver", "test-uuid", + response = mockService.patchVertex(putVertexPayload, "v11", "pserver", "test-uuid", "services/inventory/v11", new TestHeaders(), null, new TestRequest()); System.out.println("Response: " + response.getStatus() + "\n" + response.getEntity().toString()); - assertTrue(response.getStatus() == 200); + assertTrue(response.getStatus() == 200); + Assert.assertEquals(response.getEntityTag().getValue(), "test123"); } - + @Test public void testUpdateEdge() throws CrudException { Response response; - - response = mockService.updateEdge(postEdgePayload, "v11", "tosca.relationships.HostedOn", "my-uuid", - "services/inventory/v11", new TestHeaders(), null, new TestRequest()); + + response = mockService.updateEdge(postEdgePayload, "v9", "tosca.relationships.HostedOn", "my-uuid", + "services/inventory/v9", new TestHeaders(), null, new TestRequest()); System.out.println("Response: " + response.getStatus() + "\n" + response.getEntity().toString()); - assertTrue(response.getStatus() == 200); - + assertTrue(response.getStatus() == 200); + Assert.assertEquals(response.getEntityTag().getValue(), "test123"); + // Patch - response = mockService.patchEdge(postEdgePayload, "v11", "tosca.relationships.HostedOn", "my-uuid", - "services/inventory/v11", new TestHeaders(), null, new TestRequest()); + response = mockService.patchEdge(postEdgePayload, "v9", "tosca.relationships.HostedOn", "my-uuid", + "services/inventory/v9", new TestHeaders(), null, new TestRequest()); System.out.println("Response: " + response.getStatus() + "\n" + response.getEntity().toString()); assertTrue(response.getStatus() == 200); + Assert.assertEquals(response.getEntityTag().getValue(), "test123"); } - + @Test public void testGet() throws CrudException { Response response; - - response = mockService.getVertex("", "v11", "pserver", "872dd5df-0be9-4167-95e9-2cf4b21165ed", + + response = mockService.getVertex("", "v11", "pserver", "872dd5df-0be9-4167-95e9-2cf4b21165ed", "services/inventory/v11", new TestHeaders(), new TestUriInfo(), new TestRequest()); System.out.println("Response: " + response.getStatus() + "\n" + response.getEntity().toString()); assertTrue(response.getStatus() == 200); - - response = mockService.getEdge("", "v11", "tosca.relationships.HostedOn", "872dd5df-0be9-4167-95e9-2cf4b21165ed", + + response = mockService.getEdge("", "v11", "tosca.relationships.HostedOn", "872dd5df-0be9-4167-95e9-2cf4b21165ed", "services/inventory/v11", new TestHeaders(), new TestUriInfo(), new TestRequest()); System.out.println("Response: " + response.getStatus() + "\n" + response.getEntity().toString()); assertTrue(response.getStatus() == 200); - - response = mockService.getVertices("", "v11", "pserver", + + response = mockService.getVertices("", "v11", "pserver", "services/inventory/v11", new TestHeaders(), new TestUriInfo(), new TestRequest()); System.out.println("Response: " + response.getStatus() + "\n" + response.getEntity().toString()); assertTrue(response.getStatus() == 200); - - response = mockService.getEdges("", "v11", "tosca.relationships.HostedOn", + + response = mockService.getEdges("", "v11", "tosca.relationships.HostedOn", "services/inventory/v11", new TestHeaders(), new TestUriInfo(), new TestRequest()); System.out.println("Response: " + response.getStatus() + "\n" + response.getEntity().toString()); assertTrue(response.getStatus() == 200); } - + @Test public void testValidRequestHeader() throws CrudException { TestHeaders testHeaders = new TestHeaders(); @@ -261,7 +288,7 @@ public class CrudRestServiceTest { testHeaders.clearRequestHeader("X-TransactionId", "X-FromAppId"); mockService.validateRequestHeader(testHeaders); } - + @Test public void testEmptyRequestHeader() throws CrudException { thrown.expect(CrudException.class); @@ -297,21 +324,22 @@ public class CrudRestServiceTest { System.out.println("Response: " + response.getStatus() + "\n" + response.getEntity().toString()); assertTrue(response.getStatus() == 200); } - + @Test public void testBulk() throws CrudException, IOException { Response response; - + File bulkFile = new File("src/test/resources/payloads/bulk.json"); - String payloadStr = readFileToString(bulkFile); + String payloadStr = readFileToString(bulkFile); System.out.println(payloadStr); - - response = mockService.addBulk(payloadStr, "v11", "", - "services/inventory/v11", new TestHeaders(), null, new TestRequest()); - System.out.println("Bulk Response: " + response.getStatus() + "\n" + response.getEntity().toString()); - assertTrue(response.getStatus() == 200); + + response = mockService.addBulk(payloadStr, "v9", "", + "services/inventory/v9", new TestHeaders(), null, new TestRequest()); + System.out.println("Bulk Response: " + response); + System.out.println("Response Entity: " + response.getEntity().toString()); + assertTrue(response.getStatus() == 200); } - + public static String readFileToString(File aFile) throws IOException { BufferedReader br = new BufferedReader(new FileReader(aFile));