Metadata for name, version, tags and type
[ccsdk/cds.git] / ms / blueprintsprocessor / modules / inbounds / designer-api / src / test / kotlin / org / onap / ccsdk / cds / blueprintsprocessor / designer / api / BluePrintManagementGRPCHandlerTest.kt
index 691cfd7..35e4405 100644 (file)
@@ -30,22 +30,32 @@ import org.onap.ccsdk.cds.blueprintsprocessor.grpc.service.TokenAuthGrpcClientSe
 import org.onap.ccsdk.cds.controllerblueprints.common.api.ActionIdentifiers
 import org.onap.ccsdk.cds.controllerblueprints.common.api.CommonHeader
 import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants
+import org.onap.ccsdk.cds.controllerblueprints.core.compress
 import org.onap.ccsdk.cds.controllerblueprints.core.deleteDir
 import org.onap.ccsdk.cds.controllerblueprints.core.normalizedFile
-import org.onap.ccsdk.cds.controllerblueprints.management.api.*
+import org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintBootstrapInput
+import org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintDownloadInput
+import org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintManagementServiceGrpc
+import org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintRemoveInput
+import org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintUploadInput
+import org.onap.ccsdk.cds.controllerblueprints.management.api.DownloadAction
+import org.onap.ccsdk.cds.controllerblueprints.management.api.FileChunk
+import org.onap.ccsdk.cds.controllerblueprints.management.api.RemoveAction
+import org.onap.ccsdk.cds.controllerblueprints.management.api.UploadAction
 import org.springframework.beans.factory.annotation.Autowired
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration
-import org.springframework.context.annotation.ComponentScan
-import org.springframework.test.annotation.DirtiesContext
+import org.springframework.test.context.ContextConfiguration
 import org.springframework.test.context.TestPropertySource
 import org.springframework.test.context.junit4.SpringRunner
-import kotlin.test.*
+import kotlin.test.AfterTest
+import kotlin.test.BeforeTest
+import kotlin.test.assertEquals
+import kotlin.test.assertNotNull
+import kotlin.test.assertTrue
 
 @RunWith(SpringRunner::class)
-@EnableAutoConfiguration
-@DirtiesContext
-@ComponentScan(basePackages = ["org.onap.ccsdk.cds.blueprintsprocessor",
-    "org.onap.ccsdk.cds.controllerblueprints"])
+@ContextConfiguration(
+    classes = [DesignerApiTestConfiguration::class]
+)
 @TestPropertySource(locations = ["classpath:application-test.properties"])
 class BluePrintManagementGRPCHandlerTest {
 
@@ -57,9 +67,15 @@ class BluePrintManagementGRPCHandlerTest {
 
     @BeforeTest
     fun init() {
+
+        deleteDir("target", "blueprints")
+
+        // Create sample CBA zip
+        normalizedFile("./../../../../../components/model-catalog/blueprint-model/test-blueprint/baseconfiguration")
+            .compress(normalizedFile("./target/blueprints/generated-cba.zip"))
+
         // Create a server, add service, start, and register for automatic graceful shutdown.
         grpcServerRule.serviceRegistry.addService(bluePrintManagementGRPCHandler)
-        deleteDir("target", "blueprints")
     }
 
     @AfterTest
@@ -67,6 +83,20 @@ class BluePrintManagementGRPCHandlerTest {
         deleteDir("target", "blueprints")
     }
 
+    @Test
+    fun testBootstrap() {
+        val blockingStub = BluePrintManagementServiceGrpc.newBlockingStub(grpcServerRule.channel)
+        val id = "123_Bootstrap"
+        val req = createBootstrapInputRequest(id)
+        val bootstrapOutput = blockingStub.bootstrapBlueprint(req)
+        assertEquals(200, bootstrapOutput.status.code)
+        assertTrue(
+            bootstrapOutput.status.message!!.contentEquals(BluePrintConstants.STATUS_SUCCESS),
+            "failed to get success status"
+        )
+        assertEquals(id, bootstrapOutput.commonHeader.requestId)
+    }
+
     @Test
     fun `test upload and download blueprint`() {
         val blockingStub = BluePrintManagementServiceGrpc.newBlockingStub(grpcServerRule.channel)
@@ -75,8 +105,10 @@ class BluePrintManagementGRPCHandlerTest {
         val output = blockingStub.uploadBlueprint(req)
 
         assertEquals(200, output.status.code)
-        assertTrue(output.status.message.contentEquals(BluePrintConstants.STATUS_SUCCESS),
-                "failed to get success status")
+        assertTrue(
+            output.status.message!!.contentEquals(BluePrintConstants.STATUS_SUCCESS),
+            "failed to get success status"
+        )
         assertEquals(id, output.commonHeader.requestId)
 
         val downloadId = "123_download"
@@ -84,8 +116,10 @@ class BluePrintManagementGRPCHandlerTest {
 
         val downloadOutput = blockingStub.downloadBlueprint(downloadReq)
         assertEquals(200, downloadOutput.status.code)
-        assertTrue(downloadOutput.status.message.contentEquals(BluePrintConstants.STATUS_SUCCESS),
-                "failed to get success status")
+        assertTrue(
+            downloadOutput.status.message!!.contentEquals(BluePrintConstants.STATUS_SUCCESS),
+            "failed to get success status"
+        )
         assertNotNull(downloadOutput.fileChunk?.chunk, "failed to get cba file chunks")
         assertEquals(downloadId, downloadOutput.commonHeader.requestId)
     }
@@ -98,8 +132,10 @@ class BluePrintManagementGRPCHandlerTest {
 
         var output = blockingStub.uploadBlueprint(req)
         assertEquals(200, output.status.code)
-        assertTrue(output.status.message.contentEquals(BluePrintConstants.STATUS_SUCCESS),
-                "failed to get success status")
+        assertTrue(
+            output.status.message!!.contentEquals(BluePrintConstants.STATUS_SUCCESS),
+            "failed to get success status"
+        )
         assertEquals(id, output.commonHeader.requestId)
 
         val removeReq = createRemoveInputRequest(id)
@@ -128,63 +164,84 @@ class BluePrintManagementGRPCHandlerTest {
         }
     }
 
+    private fun createBootstrapInputRequest(id: String): BluePrintBootstrapInput {
+        val commonHeader = CommonHeader
+            .newBuilder()
+            .setTimestamp("2012-04-23T18:25:43.511Z")
+            .setOriginatorId("System")
+            .setRequestId(id)
+            .setSubRequestId("1234-56").build()
+
+        return BluePrintBootstrapInput.newBuilder()
+            .setCommonHeader(commonHeader)
+            .setLoadModelType(false)
+            .setLoadResourceDictionary(false)
+            .setLoadCBA(false)
+            .build()
+    }
 
     private fun createUploadInputRequest(id: String, action: String): BluePrintUploadInput {
-        val file = normalizedFile("./src/test/resources/test-cba.zip")
+        val file = normalizedFile("./target/blueprints/generated-cba.zip")
         assertTrue(file.exists(), "couldnt get file ${file.absolutePath}")
 
         val commonHeader = CommonHeader
-                .newBuilder()
-                .setTimestamp("2012-04-23T18:25:43.511Z")
-                .setOriginatorId("System")
-                .setRequestId(id)
-                .setSubRequestId("1234-56").build()
+            .newBuilder()
+            .setTimestamp("2012-04-23T18:25:43.511Z")
+            .setOriginatorId("System")
+            .setRequestId(id)
+            .setSubRequestId("1234-56").build()
 
         val actionIdentifier = ActionIdentifiers.newBuilder()
-                .setActionName(action)
-                .setBlueprintName("sample")
-                .setBlueprintVersion("1.0.0")
-                .build()
+            .setActionName(action)
+            .setBlueprintName("sample")
+            .setBlueprintVersion("1.0.0")
+            .build()
 
         val fileChunk = FileChunk.newBuilder().setChunk(ByteString.copyFrom(file.inputStream().readBytes()))
-                .build()
+            .build()
 
         return BluePrintUploadInput.newBuilder()
-                .setCommonHeader(commonHeader)
-                .setActionIdentifiers(actionIdentifier)
-                .setFileChunk(fileChunk)
-                .build()
+            .setCommonHeader(commonHeader)
+            .setActionIdentifiers(actionIdentifier)
+            .setFileChunk(fileChunk)
+            .build()
     }
 
     private fun createDownloadInputRequest(id: String, action: String): BluePrintDownloadInput {
         val commonHeader = CommonHeader
-                .newBuilder()
-                .setTimestamp("2012-04-23T18:25:43.511Z")
-                .setOriginatorId("System")
-                .setRequestId(id)
-                .setSubRequestId("1234-56").build()
+            .newBuilder()
+            .setTimestamp("2012-04-23T18:25:43.511Z")
+            .setOriginatorId("System")
+            .setRequestId(id)
+            .setSubRequestId("1234-56").build()
 
         return BluePrintDownloadInput.newBuilder()
-                .setCommonHeader(commonHeader)
-                .setActionIdentifiers(ActionIdentifiers.newBuilder()
-                        .setBlueprintName("baseconfiguration")
-                        .setBlueprintVersion("1.0.0")
-                        .setActionName(action).build())
-                .build()
+            .setCommonHeader(commonHeader)
+            .setActionIdentifiers(
+                ActionIdentifiers.newBuilder()
+                    .setBlueprintName("baseconfiguration")
+                    .setBlueprintVersion("1.0.0")
+                    .setActionName(action).build()
+            )
+            .build()
     }
 
     private fun createRemoveInputRequest(id: String): BluePrintRemoveInput {
         val commonHeader = CommonHeader
-                .newBuilder()
-                .setTimestamp("2012-04-23T18:25:43.511Z")
-                .setOriginatorId("System")
-                .setRequestId(id)
-                .setSubRequestId("1234-56").build()
+            .newBuilder()
+            .setTimestamp("2012-04-23T18:25:43.511Z")
+            .setOriginatorId("System")
+            .setRequestId(id)
+            .setSubRequestId("1234-56").build()
 
         return BluePrintRemoveInput.newBuilder()
-                .setCommonHeader(commonHeader)
-                .setBlueprintName("sample")
-                .setBlueprintVersion("1.0.0")
-                .build()
+            .setCommonHeader(commonHeader)
+            .setActionIdentifiers(
+                ActionIdentifiers.newBuilder()
+                    .setBlueprintName("sample")
+                    .setBlueprintVersion("1.0.0")
+                    .setActionName(RemoveAction.DEFAULT.toString()).build()
+            )
+            .build()
     }
 }