Refactor, fix code formatting and add unittests 99/112999/5
authorTomasz Wrobel <tomasz.wrobel@nokia.com>
Tue, 22 Sep 2020 13:19:03 +0000 (15:19 +0200)
committerTomasz Wrobel <tomasz.wrobel@nokia.com>
Thu, 24 Sep 2020 09:51:07 +0000 (11:51 +0200)
-Refactor DmaapNode class
-Add UT for DmaapNode
-Refactor and fix code formatting in DmaapStreem class
-Top up version to 1.5.2

Issue-ID: DCAEGEN2-2449
Signed-off-by: Tomasz Wrobel <tomasz.wrobel@nokia.com>
Change-Id: If6781f26bb6bfe2a645b0b0438157823670341a2

mod/bpgenerator/pom.xml
mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/common/blueprint/BlueprintHelper.java
mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/Properties.java
mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapBlueprint.java
mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapNode.java
mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapStreams.java
mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapNodeTest.java [new file with mode: 0644]
mod/bpgenerator/version.properties

index aaf9713..86009f3 100644 (file)
@@ -29,7 +29,7 @@
        </parent>
        <groupId>org.onap.dcaegen2.platform.mod</groupId>
        <artifactId>blueprint-generator</artifactId>
-       <version>1.5.1-SNAPSHOT</version>
+       <version>1.5.2-SNAPSHOT</version>
        <properties>
                <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
                <sonar.junit.reportsPath>${project.basedir}/target/surefire-reports</sonar.junit.reportsPath>
index 451988f..ef335a8 100644 (file)
@@ -27,6 +27,9 @@ import java.util.LinkedHashMap;
 @UtilityClass
 public class BlueprintHelper {
 
+    public static final String INTEGER_TYPE = "integer";
+    public static final String BOOLEAN_TYPE = "boolean";
+
     public static LinkedHashMap<String, Object> createInputValue(String type, String description, Object defaultValue) {
         LinkedHashMap<String, Object> inputMap = new LinkedHashMap<>();
         inputMap.put("type", type);
@@ -35,7 +38,23 @@ public class BlueprintHelper {
         return inputMap;
     }
 
+    public static LinkedHashMap<String, Object> createIntegerInput(String description, Object defaultValue){
+        return createInputValue(INTEGER_TYPE, description, defaultValue);
+    }
+
+    public static LinkedHashMap<String, Object> createBooleanInput(String description, Object defaultValue){
+        return createInputValue(BOOLEAN_TYPE, description, defaultValue);
+    }
+
     public static String joinUnderscore(String firstValue, String secondValue){
         return firstValue + "_" + secondValue;
     }
+
+    public static boolean isDataRouterType(String type) {
+        return type.equals("data_router") || type.equals("data router");
+    }
+
+    public static boolean isMessageRouterType(String type) {
+        return type.equals("message_router") || type.equals("message router");
+    }
 }
index d32d6f4..5693f86 100644 (file)
 
 package org.onap.blueprintgenerator.models.blueprint;
 
+import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.createBooleanInput;
+import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.createIntegerInput;
+import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.isMessageRouterType;
+import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.isDataRouterType;
 import static org.onap.blueprintgenerator.models.blueprint.tls.TlsConstants.USE_EXTERNAL_TLS_FIELD;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
@@ -31,7 +35,6 @@ import java.util.Map;
 import java.util.TreeMap;
 import lombok.Getter;
 import lombok.Setter;
-import org.onap.blueprintgenerator.common.blueprint.BlueprintHelper;
 import org.onap.blueprintgenerator.models.blueprint.tls.ExternalCertificateParametersFactory;
 import org.onap.blueprintgenerator.models.blueprint.tls.ExternalTlsInfoFactory;
 import org.onap.blueprintgenerator.models.blueprint.tls.TlsInfo;
@@ -42,6 +45,7 @@ import org.onap.blueprintgenerator.models.componentspec.Publishes;
 import org.onap.blueprintgenerator.models.componentspec.Subscribes;
 import org.onap.blueprintgenerator.models.dmaapbp.DmaapStreams;
 
+
 @Getter
 @Setter
 @JsonInclude(value = Include.NON_NULL)
@@ -102,7 +106,7 @@ public class Properties {
         GetInput replica = new GetInput();
         replica.setBpInputName("replicas");
         this.setReplicas(replica);
-        LinkedHashMap<String, Object> rep = BlueprintHelper.createInputValue("integer", "number of instances", 1);
+        LinkedHashMap<String, Object> rep = createIntegerInput("number of instances", 1);
         retInputs.put("replicas", rep);
 
         //set the dns name
@@ -126,7 +130,7 @@ public class Properties {
         // set always_pull_image
         this.always_pull_image = new GetInput();
         this.always_pull_image.setBpInputName("always_pull_image");
-        LinkedHashMap<String, Object> inputAlwaysPullImage = BlueprintHelper.createInputValue("boolean",
+        LinkedHashMap<String, Object> inputAlwaysPullImage = createBooleanInput(
             "Set to true if the image should always be pulled",
             true);
         retInputs.put("always_pull_image", inputAlwaysPullImage);
@@ -197,7 +201,7 @@ public class Properties {
         GetInput replica = new GetInput();
         replica.setBpInputName("replicas");
         this.setReplicas(replica);
-        LinkedHashMap<String, Object> rep = BlueprintHelper.createInputValue("integer", "number of instances", 1);
+        LinkedHashMap<String, Object> rep = createIntegerInput( "number of instances", 1);
         retInputs.put("replicas", rep);
 
 //             //set the dns name
@@ -221,18 +225,20 @@ public class Properties {
         //set the stream publishes
         ArrayList<DmaapStreams> pubStreams = new ArrayList();
         if (cs.getStreams().getPublishes() != null) {
-            for (Publishes p : cs.getStreams().getPublishes()) {
-                if (p.getType().equals("message_router") || p.getType().equals("message router")) {
-                    String topic = p.getConfig_key() + "_topic";
+            for (Publishes publishes : cs.getStreams().getPublishes()) {
+                if (isMessageRouterType(publishes.getType())) {
+                    String topic = publishes.getConfig_key() + "_topic";
                     DmaapStreams mrStreams = new DmaapStreams();
                     retInputs = mrStreams
-                        .createStreams(inps, cs, topic, p.getType(), p.getConfig_key(), p.getRoute(), 'p');
+                        .createStreams(inps, cs, topic, publishes.getType(), publishes.getConfig_key(),
+                            publishes.getRoute(), 'p');
                     pubStreams.add(mrStreams);
-                } else if (p.getType().equals("data_router") || p.getType().equals("data router")) {
-                    String feed = p.getConfig_key() + "_feed";
+                } else if (isDataRouterType(publishes.getType())) {
+                    String feed = publishes.getConfig_key() + "_feed";
                     DmaapStreams drStreams = new DmaapStreams();
                     retInputs = drStreams
-                        .createStreams(inps, cs, feed, p.getType(), p.getConfig_key(), p.getRoute(), 'p');
+                        .createStreams(inps, cs, feed, publishes.getType(), publishes.getConfig_key(),
+                            publishes.getRoute(), 'p');
                     pubStreams.add(drStreams);
                 }
             }
@@ -241,18 +247,20 @@ public class Properties {
         //set the stream subscribes
         ArrayList<DmaapStreams> subStreams = new ArrayList();
         if (cs.getStreams().getSubscribes() != null) {
-            for (Subscribes s : cs.getStreams().getSubscribes()) {
-                if (s.getType().equals("message_router") || s.getType().equals("message router")) {
-                    String topic = s.getConfig_key() + "_topic";
+            for (Subscribes subscribes : cs.getStreams().getSubscribes()) {
+                if (isMessageRouterType(subscribes.getType())) {
+                    String topic = subscribes.getConfig_key() + "_topic";
                     DmaapStreams mrStreams = new DmaapStreams();
                     retInputs = mrStreams
-                        .createStreams(inps, cs, topic, s.getType(), s.getConfig_key(), s.getRoute(), 's');
+                        .createStreams(inps, cs, topic, subscribes.getType(), subscribes.getConfig_key(),
+                            subscribes.getRoute(), 's');
                     subStreams.add(mrStreams);
-                } else if (s.getType().equals("data_router") || s.getType().equals("data router")) {
-                    String feed = s.getConfig_key() + "_feed";
+                } else if (isDataRouterType(subscribes.getType())) {
+                    String feed = subscribes.getConfig_key() + "_feed";
                     DmaapStreams drStreams = new DmaapStreams();
                     retInputs = drStreams
-                        .createStreams(inps, cs, feed, s.getType(), s.getConfig_key(), s.getRoute(), 's');
+                        .createStreams(inps, cs, feed, subscribes.getType(), subscribes.getConfig_key(),
+                            subscribes.getRoute(), 's');
                     subStreams.add(drStreams);
                 }
             }
@@ -280,7 +288,7 @@ public class Properties {
         useTLSFlag.setBpInputName("use_tls");
         tlsInfo.setUseTls(useTLSFlag);
         this.setTls_info(tlsInfo);
-        LinkedHashMap<String, Object> useTlsFlagInput = BlueprintHelper.createInputValue("boolean",
+        LinkedHashMap<String, Object> useTlsFlagInput = createBooleanInput(
             "flag to indicate tls enable/disable",
             cs.getAuxilary().getTls_info().get("use_tls"));
         retInputs.put("use_tls", useTlsFlagInput);
index 2774abb..84c5fc5 100644 (file)
@@ -33,6 +33,8 @@ import org.onap.blueprintgenerator.models.componentspec.ComponentSpec;
 import org.onap.blueprintgenerator.models.componentspec.Publishes;
 import org.onap.blueprintgenerator.models.componentspec.Subscribes;
 
+import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.isDataRouterType;
+import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.isMessageRouterType;
 import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.joinUnderscore;
 import static org.onap.blueprintgenerator.models.blueprint.Imports.createDmaapImports;
 import static org.onap.blueprintgenerator.models.blueprint.Imports.createImportsFromFile;
@@ -74,12 +76,12 @@ public class DmaapBlueprint extends Blueprint {
         //go through the streams publishes
         if (componentSpec.getStreams().getPublishes() != null) {
             for (Publishes publisher : componentSpec.getStreams().getPublishes()) {
-                if (isMessageRouter(publisher.getType())) {
+                if (isMessageRouterType(publisher.getType())) {
                     String topic = joinUnderscore(publisher.getConfig_key(), TOPIC);
                     DmaapNode topicNode = new DmaapNode();
                     inps = topicNode.createTopicNode(componentSpec, inps, topic);
                     nodeTemplate.put(topic, topicNode);
-                } else if (isDataRouter(publisher.getType())) {
+                } else if (isDataRouterType(publisher.getType())) {
                     String feed = joinUnderscore(publisher.getConfig_key(), FEED);
                     DmaapNode feedNode = new DmaapNode();
                     inps = feedNode.createFeedNode(componentSpec, inps, feed);
@@ -90,12 +92,12 @@ public class DmaapBlueprint extends Blueprint {
         //go through the stream subscribes
         if (componentSpec.getStreams().getSubscribes() != null) {
             for (Subscribes subscriber : componentSpec.getStreams().getSubscribes()) {
-                if (isMessageRouter(subscriber.getType())) {
+                if (isMessageRouterType(subscriber.getType())) {
                     String topic = joinUnderscore(subscriber.getConfig_key(), TOPIC);
                     DmaapNode topicNode = new DmaapNode();
                     inps = topicNode.createTopicNode(componentSpec, inps, topic);
                     nodeTemplate.put(topic, topicNode);
-                } else if (isDataRouter(subscriber.getType())) {
+                } else if (isDataRouterType(subscriber.getType())) {
                     String feed = joinUnderscore(subscriber.getConfig_key(), FEED);
                     DmaapNode feedNode = new DmaapNode();
                     inps = feedNode.createFeedNode(componentSpec, inps, feed);
@@ -120,11 +122,4 @@ public class DmaapBlueprint extends Blueprint {
         return blueprint;
     }
 
-    private boolean isDataRouter(String type) {
-        return type.equals("data_router") || type.equals("data router");
-    }
-
-    private boolean isMessageRouter(String type) {
-        return type.equals("message_router") || type.equals("message router");
-    }
 }
index 37d7d2d..e28e49a 100644 (file)
@@ -43,117 +43,135 @@ import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
 
+import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.isDataRouterType;
+import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.isMessageRouterType;
+
 @JsonIgnoreProperties(ignoreUnknown = true)
-@Getter @Setter
-@EqualsAndHashCode(callSuper=false)
+@Getter
+@Setter
+@EqualsAndHashCode(callSuper = false)
 @NoArgsConstructor
-@JsonInclude(value=Include.NON_NULL)
-
-public class DmaapNode extends Node{
-
-       public TreeMap<String, LinkedHashMap<String, Object>> createDmaapNode(ComponentSpec cs, TreeMap<String, LinkedHashMap<String, Object>> inps, String override) {
-               TreeMap<String, LinkedHashMap<String, Object>> retInputs = inps;
-
-               //set the type
-               this.setType("dcae.nodes.ContainerizedServiceComponentUsingDmaap");
-
-               //create the interface
-               Interfaces inter = new Interfaces();
-               retInputs = inter.createInterface(retInputs, cs);
-               TreeMap<String, Interfaces> interfaces = new TreeMap<String, Interfaces>();
-               interfaces.put("cloudify.interfaces.lifecycle", inter);
-               this.setInterfaces(interfaces);
-
-               //create and set the relationships
-               ArrayList<LinkedHashMap<String, String>> rets = new ArrayList();
-
-               //go through the streams publishes
-               if(cs.getStreams().getPublishes() != null) {
-                       for(Publishes p: cs.getStreams().getPublishes()) {
-                               LinkedHashMap<String, String> pubRelations = new LinkedHashMap();
-                               if(p.getType().equals("message_router") || p.getType().equals("message router")) {
-                                       pubRelations.put("type", "ccsdk.relationships.publish_events");
-                                       pubRelations.put("target", p.getConfig_key() + "_topic");
-                               } else if(p.getType().equals("data_router") || p.getType().equals("data router")) {
-                                       pubRelations.put("type", "ccsdk.relationships.publish_files");
-                                       pubRelations.put("target", p.getConfig_key() + "_feed");
-                               }
-                               rets.add(pubRelations);
-                       }
-               }
-               //go through the stream subscribes
-               if(cs.getStreams().getSubscribes() != null) {
-                       for(Subscribes s: cs.getStreams().getSubscribes()) {
-                               LinkedHashMap<String, String> subRelations = new LinkedHashMap();
-                               if(s.getType().equals("message_router") || s.getType().equals("message router")) {
-                                       subRelations.put("type", "ccsdk.relationships.subscribe_to_events");
-                                       subRelations.put("target", s.getConfig_key() + "_topic");
-                               } else if(s.getType().equals("data_router") || s.getType().equals("data router")) {
-                                       subRelations.put("type", "ccsdk.relationships.subscribe_to_files");
-                                       subRelations.put("target", s.getConfig_key() + "_feed");
-                               }
-                               rets.add(subRelations);
-                       }
-               }
-
-               //add relationship for policy if exist
-               if(cs.getPolicyInfo() != null){
-                       ArrayList<LinkedHashMap<String, String>> policyRelationshipsList = PolicyNodeBuilder.getPolicyRelationships(cs);
-                       rets.addAll(policyRelationshipsList);
-               }
-
-               //add relationships and env_variables for pgaas dbs if exist
-               if(cs.getAuxilary().getDatabases() != null){
-                       ArrayList<LinkedHashMap<String, String>> pgaasRelationshipsList = PgaasNodeBuilder.getPgaasNodeRelationships(cs);
-                       rets.addAll(pgaasRelationshipsList);
-               }
-               
-               this.setRelationships(rets);
-
-               //create and set the properties
-               Properties props = new Properties();
-               retInputs = props.createDmaapProperties(retInputs, cs, override);
-               this.setProperties(props);
-
-               return retInputs;
-       }
-       public TreeMap<String, LinkedHashMap<String, Object>> createFeedNode(ComponentSpec cs, TreeMap<String, LinkedHashMap<String, Object>> inps, String name){
-               TreeMap<String, LinkedHashMap<String, Object>> retInputs = inps;
-               LinkedHashMap<String, Object> stringType = new LinkedHashMap();
-               stringType.put("type", "string");
-
-               //set the type
-               this.setType("ccsdk.nodes.Feed");
-
-               //create and set the properties
-               Properties props = new Properties();
-               GetInput topicInput = new GetInput();
-               topicInput.setBpInputName(name + "_name");
-               props.setFeed_name(topicInput);
-               //props.setUseExisting(true);
-               retInputs.put(name + "_name", stringType);
-               this.setProperties(props);
-
-               return retInputs;
-       }
-
-       public TreeMap<String, LinkedHashMap<String, Object>> createTopicNode(ComponentSpec cs, TreeMap<String, LinkedHashMap<String, Object>> inps, String name){
-               TreeMap<String, LinkedHashMap<String, Object>> retInputs = inps;
-               LinkedHashMap<String, Object> stringType = new LinkedHashMap();
-               stringType.put("type", "string");
-
-               //set the type
-               this.setType("ccsdk.nodes.Topic");
-
-               //create and set the properties
-               Properties props = new Properties();
-               GetInput topicInput = new GetInput();
-               topicInput.setBpInputName(name + "_name");
-               props.setTopic_name(topicInput);
-               //props.setUseExisting(true);
-               retInputs.put(name + "_name", stringType);
-               this.setProperties(props);
-
-               return retInputs;
-       }
+@JsonInclude(value = Include.NON_NULL)
+
+public class DmaapNode extends Node {
+
+    public TreeMap<String, LinkedHashMap<String, Object>> createDmaapNode(ComponentSpec componentSpec,
+        TreeMap<String, LinkedHashMap<String, Object>> inps, String override) {
+        TreeMap<String, LinkedHashMap<String, Object>> retInputs = inps;
+
+        //set the type
+        this.setType("dcae.nodes.ContainerizedServiceComponentUsingDmaap");
+
+        //create the interface
+        Interfaces inter = new Interfaces();
+        retInputs = inter.createInterface(retInputs, componentSpec);
+        TreeMap<String, Interfaces> interfaces = new TreeMap<>();
+        interfaces.put("cloudify.interfaces.lifecycle", inter);
+        this.setInterfaces(interfaces);
+
+        //create and set the relationships
+        ArrayList<LinkedHashMap<String, String>> relationships = new ArrayList<>();
+
+        //go through the streams publishes
+        if (componentSpec.getStreams().getPublishes() != null) {
+            for (Publishes publishes : componentSpec.getStreams().getPublishes()) {
+                relationships.add(createTypeAndTargetPubRelations(publishes));
+            }
+        }
+        //go through the stream subscribes
+        if (componentSpec.getStreams().getSubscribes() != null) {
+            for (Subscribes subscribes : componentSpec.getStreams().getSubscribes()) {
+                relationships.add(createTypeAndTargetSubRelations(subscribes));
+            }
+        }
+
+        //add relationship for policy if exist
+        if (componentSpec.getPolicyInfo() != null) {
+            ArrayList<LinkedHashMap<String, String>> policyRelationshipsList = PolicyNodeBuilder
+                .getPolicyRelationships(componentSpec);
+            relationships.addAll(policyRelationshipsList);
+        }
+
+        //add relationships and env_variables for pgaas dbs if exist
+        if (componentSpec.getAuxilary().getDatabases() != null) {
+            ArrayList<LinkedHashMap<String, String>> pgaasRelationshipsList = PgaasNodeBuilder
+                .getPgaasNodeRelationships(componentSpec);
+            relationships.addAll(pgaasRelationshipsList);
+        }
+
+        this.setRelationships(relationships);
+
+        //create and set the properties
+        Properties props = new Properties();
+        retInputs = props.createDmaapProperties(retInputs, componentSpec, override);
+        this.setProperties(props);
+
+        return retInputs;
+    }
+
+    public TreeMap<String, LinkedHashMap<String, Object>> createFeedNode(ComponentSpec cs,
+        TreeMap<String, LinkedHashMap<String, Object>> inps, String name) {
+        TreeMap<String, LinkedHashMap<String, Object>> retInputs = inps;
+        LinkedHashMap<String, Object> stringType = new LinkedHashMap<>();
+        stringType.put("type", "string");
+
+        //set the type
+        this.setType("ccsdk.nodes.Feed");
+
+        //create and set the properties
+        Properties props = new Properties();
+        GetInput topicInput = new GetInput();
+        topicInput.setBpInputName(name + "_name");
+        props.setFeed_name(topicInput);
+        //props.setUseExisting(true);
+        retInputs.put(name + "_name", stringType);
+        this.setProperties(props);
+
+        return retInputs;
+    }
+
+    public TreeMap<String, LinkedHashMap<String, Object>> createTopicNode(ComponentSpec cs,
+        TreeMap<String, LinkedHashMap<String, Object>> inps, String name) {
+        TreeMap<String, LinkedHashMap<String, Object>> retInputs = inps;
+        LinkedHashMap<String, Object> stringType = new LinkedHashMap<>();
+        stringType.put("type", "string");
+
+        //set the type
+        this.setType("ccsdk.nodes.Topic");
+
+        //create and set the properties
+        Properties props = new Properties();
+        GetInput topicInput = new GetInput();
+        topicInput.setBpInputName(name + "_name");
+        props.setTopic_name(topicInput);
+        //props.setUseExisting(true);
+        retInputs.put(name + "_name", stringType);
+        this.setProperties(props);
+
+        return retInputs;
+    }
+
+    private LinkedHashMap<String, String> createTypeAndTargetPubRelations(Publishes publishes) {
+        LinkedHashMap<String, String> pubRelations = new LinkedHashMap<>();
+        if (isMessageRouterType(publishes.getType())) {
+            pubRelations.put("type", "ccsdk.relationships.publish_events");
+            pubRelations.put("target", publishes.getConfig_key() + "_topic");
+        } else if (isDataRouterType(publishes.getType())) {
+            pubRelations.put("type", "ccsdk.relationships.publish_files");
+            pubRelations.put("target", publishes.getConfig_key() + "_feed");
+        }
+        return pubRelations;
+    }
+
+    private LinkedHashMap<String, String> createTypeAndTargetSubRelations(Subscribes subscribes) {
+        LinkedHashMap<String, String> subRelations = new LinkedHashMap<>();
+        if (isMessageRouterType(subscribes.getType())) {
+            subRelations.put("type", "ccsdk.relationships.subscribe_to_events");
+            subRelations.put("target", subscribes.getConfig_key() + "_topic");
+        } else if (isDataRouterType(subscribes.getType())) {
+            subRelations.put("type", "ccsdk.relationships.subscribe_to_files");
+            subRelations.put("target", subscribes.getConfig_key() + "_feed");
+        }
+        return subRelations;
+    }
 }
index e2847d7..162337e 100644 (file)
@@ -33,72 +33,77 @@ import com.fasterxml.jackson.annotation.JsonInclude.Include;
 import lombok.Getter;
 import lombok.Setter;
 
-@Getter @Setter
-@JsonInclude(value=Include.NON_NULL)
+import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.isDataRouterType;
+
+@Getter
+@Setter
+@JsonInclude(value = Include.NON_NULL)
 public class DmaapStreams {
 
-       private String name;
-       private GetInput location;
-       private GetInput client_role;
-       private String type;
-
-       private GetInput username;
-       private GetInput password;
-       //private GetInput delivery_url;
-
-       private GetInput privileged;
-       private GetInput decompress;
-
-       private String route;
-       private String scheme;
-
-       public TreeMap<String, LinkedHashMap<String, Object>> createStreams(TreeMap<String, LinkedHashMap<String, Object>> inps, ComponentSpec cs, String name, String type, String key, String route, char o){
-               TreeMap<String, LinkedHashMap<String, Object>> retInputs = inps;
-               LinkedHashMap<String, Object> stringType = new LinkedHashMap();
-               stringType.put("type", "string");
-
-               //set the name
-               this.setName(name);
-
-               //set the type
-               this.setType(type);
-
-               //set the location
-               GetInput location = new GetInput();
-               location.setBpInputName(key + "_" + name + "_location");
-               retInputs.put(key + "_" + name + "_location", stringType);
-               this.setLocation(location);
-
-               //if its data router we need to add some more
-               if(type.equals("data_router") || type.equals("data router")) {
-                       if(o == 's') {
-                               //set the username
-                               GetInput username = new GetInput();
-                               username.setBpInputName(key + "_" + name + "_username");
-                               this.setUsername(username);
-                               retInputs.put(key + "_" + name + "_username", stringType);
-
-                               //set the password
-                               GetInput password = new GetInput();
-                               password.setBpInputName(key + "_" + name + "_password");
-                               this.setPassword(password);
-                               retInputs.put(key + "_" + name + "_password", stringType);
-
-                               //set privileged
-                               GetInput priviliged = new GetInput();
-                               priviliged.setBpInputName(key + "_" + name + "_priviliged");
-                               this.setPrivileged(priviliged);
-                               retInputs.put(key + "_" + name + "_priviliged", stringType);
-
-                               //set decompress
-                               GetInput decompress = new GetInput();
-                               decompress.setBpInputName(key + "_" + name + "_decompress");
-                               this.setDecompress(decompress);
-                               retInputs.put(key + "_" + name + "_decompress", stringType);
-
-                               this.setRoute(route);
-                               this.setScheme("https");
-                       }
+    private String name;
+    private GetInput location;
+    private GetInput client_role;
+    private String type;
+
+    private GetInput username;
+    private GetInput password;
+    //private GetInput delivery_url;
+
+    private GetInput privileged;
+    private GetInput decompress;
+
+    private String route;
+    private String scheme;
+
+    public TreeMap<String, LinkedHashMap<String, Object>> createStreams(
+        TreeMap<String, LinkedHashMap<String, Object>> inps, ComponentSpec cs, String name, String type, String key,
+        String route, char o) {
+        TreeMap<String, LinkedHashMap<String, Object>> retInputs = inps;
+        LinkedHashMap<String, Object> stringType = new LinkedHashMap();
+        stringType.put("type", "string");
+
+        //set the name
+        this.setName(name);
+
+        //set the type
+        this.setType(type);
+
+        //set the location
+        GetInput location = new GetInput();
+        location.setBpInputName(key + "_" + name + "_location");
+        retInputs.put(key + "_" + name + "_location", stringType);
+        this.setLocation(location);
+
+        //if its data router we need to add some more
+        if (isDataRouterType(type)) {
+            if ('s' == o) {
+                //set the username
+                GetInput username = new GetInput();
+                username.setBpInputName(key + "_" + name + "_username");
+                this.setUsername(username);
+                retInputs.put(key + "_" + name + "_username", stringType);
+
+                //set the password
+                GetInput password = new GetInput();
+                password.setBpInputName(key + "_" + name + "_password");
+                this.setPassword(password);
+                retInputs.put(key + "_" + name + "_password", stringType);
+
+                //set privileged
+                GetInput priviliged = new GetInput();
+                priviliged.setBpInputName(key + "_" + name + "_priviliged");
+                this.setPrivileged(priviliged);
+                retInputs.put(key + "_" + name + "_priviliged", stringType);
+
+                //set decompress
+                GetInput decompress = new GetInput();
+                decompress.setBpInputName(key + "_" + name + "_decompress");
+                this.setDecompress(decompress);
+                retInputs.put(key + "_" + name + "_decompress", stringType);
+
+                this.setRoute(route);
+                this.setScheme("https");
+            }
 
 //                     //set the delivery url
 //                     GetInput delivery = new GetInput();
@@ -106,13 +111,13 @@ public class DmaapStreams {
 //                     this.setDelivery_url(delivery);
 //                     retInputs.put(name + "delivery_url", stringType);
 
-               } else {
-                       //set the client role
-                       GetInput client = new GetInput();
-                       client.setBpInputName(key + "_" + name + "_client_role");
-                       this.setClient_role(client);
-                       retInputs.put(key + "_" + name + "_client_role", stringType);
-               }
-               return retInputs;
-       }
+        } else {
+            //set the client role
+            GetInput client = new GetInput();
+            client.setBpInputName(key + "_" + name + "_client_role");
+            this.setClient_role(client);
+            retInputs.put(key + "_" + name + "_client_role", stringType);
+        }
+        return retInputs;
+    }
 }
diff --git a/mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapNodeTest.java b/mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapNodeTest.java
new file mode 100644 (file)
index 0000000..684657c
--- /dev/null
@@ -0,0 +1,201 @@
+/*============LICENSE_START=======================================================
+ org.onap.dcae
+ ================================================================================
+ Copyright (c) 2020 Nokia. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ ============LICENSE_END=========================================================
+ */
+
+package org.onap.blueprintgenerator.models.dmaapbp;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import java.util.Map;
+import java.util.TreeMap;
+import org.junit.Test;
+import org.onap.blueprintgenerator.core.TestComponentSpec;
+import org.onap.blueprintgenerator.models.componentspec.Auxilary;
+import org.onap.blueprintgenerator.models.componentspec.ComponentSpec;
+import org.onap.blueprintgenerator.models.componentspec.Publishes;
+import org.onap.blueprintgenerator.models.componentspec.Streams;
+import org.onap.blueprintgenerator.models.componentspec.Subscribes;
+
+public class DmaapNodeTest {
+
+    private static final String EXPECTED_DMAAP_NODE_TYPE = "dcae.nodes.ContainerizedServiceComponentUsingDmaap";
+
+    private static final String DATA_ROUTER_TYPE = "data_router";
+    private static final String MESSAGE_ROUTER_TYPE = "message_router";
+
+    private static final String CONFIG_KEY = "Configkey";
+
+    private static final String SAMPLE_FORMAT = "Format";
+    private static final String SAMPLE_VERSION = "1.0.0";
+    private static final String SAMPLE_ROUTE = "SampleRoute";
+    private static final String TYPE = "type";
+    private static final String TARGET = "target";
+
+
+    @Test
+    public void dmaapNodeShouldHaveExpectedNodeType() {
+
+        ComponentSpec mockedComponentSpec = getSpiedComponentSpecWithoutRelationships();
+
+        DmaapNode dmaapNode = new DmaapNode();
+        dmaapNode.createDmaapNode(mockedComponentSpec, new TreeMap<>(), "");
+
+        assertEquals(EXPECTED_DMAAP_NODE_TYPE, dmaapNode.getType());
+    }
+
+    @Test
+    public void createdDmaapNodeShouldHaveRelationshipWithTypeAndTargetForMessageRouterPublishes() {
+        ComponentSpec componentSpec = getSpiedComponentSpecWithoutRelationships();
+
+        Streams streams = new Streams();
+        streams.setSubscribes(new Subscribes[0]);
+        streams.setPublishes(createSamplePublishes(MESSAGE_ROUTER_TYPE));
+
+        when(componentSpec.getStreams()).thenReturn(streams);
+        DmaapNode dmaapNode = new DmaapNode();
+        dmaapNode.createDmaapNode(componentSpec, new TreeMap<>(), "");
+
+        Map<String, String> relationship = dmaapNode.getRelationships().get(0);
+
+        assertNotNull(relationship.get(TYPE));
+        assertNotNull(relationship.get(TARGET));
+    }
+
+    @Test
+    public void createdDmaapNodeShouldHaveRelationshipWithTypeAndTargetForDataRouterPublishes() {
+        ComponentSpec componentSpec = getSpiedComponentSpecWithoutRelationships();
+
+        Streams streams = new Streams();
+        streams.setSubscribes(new Subscribes[0]);
+        streams.setPublishes(createSamplePublishes(DATA_ROUTER_TYPE));
+
+        when(componentSpec.getStreams()).thenReturn(streams);
+        DmaapNode dmaapNode = new DmaapNode();
+        dmaapNode.createDmaapNode(componentSpec, new TreeMap<>(), "");
+
+        Map<String, String> relationship = dmaapNode.getRelationships().get(0);
+
+        assertNotNull(relationship.get(TYPE));
+        assertNotNull(relationship.get(TARGET));
+    }
+
+    @Test
+    public void createdDmaapNodeShouldHaveRelationshipWithTypeAndTargetForMessageRouterSubscribes() {
+        ComponentSpec componentSpec = getSpiedComponentSpecWithoutRelationships();
+
+        Streams streams = new Streams();
+        streams.setSubscribes(createSampleSubscribes(MESSAGE_ROUTER_TYPE));
+        streams.setPublishes(new Publishes[0]);
+
+        when(componentSpec.getStreams()).thenReturn(streams);
+        DmaapNode dmaapNode = new DmaapNode();
+        dmaapNode.createDmaapNode(componentSpec, new TreeMap<>(), "");
+
+        Map<String, String> relationship = dmaapNode.getRelationships().get(0);
+
+        assertNotNull(relationship.get(TYPE));
+        assertNotNull(relationship.get(TARGET));
+    }
+
+    @Test
+    public void createdDmaapNodeShouldHaveRelationshipWithTypeAndTargetForDataRouterSubscribes() {
+        ComponentSpec componentSpec = getSpiedComponentSpecWithoutRelationships();
+
+        Streams streams = new Streams();
+        streams.setSubscribes(createSampleSubscribes(DATA_ROUTER_TYPE));
+        streams.setPublishes(new Publishes[0]);
+
+        when(componentSpec.getStreams()).thenReturn(streams);
+        DmaapNode dmaapNode = new DmaapNode();
+        dmaapNode.createDmaapNode(componentSpec, new TreeMap<>(), "");
+
+        Map<String, String> relationship = dmaapNode.getRelationships().get(0);
+
+        assertNotNull(relationship.get(TYPE));
+        assertNotNull(relationship.get(TARGET));
+    }
+
+    @Test
+    public void createFeedNodeShouldSetFeedNodeType() {
+        ComponentSpec componentSpec = getSpiedComponentSpecWithoutRelationships();
+
+        DmaapNode dmaapNode = new DmaapNode();
+        dmaapNode.createFeedNode(componentSpec, new TreeMap<>() ,"");
+
+        assertTrue(dmaapNode.getType().endsWith("Feed"));
+    }
+
+    @Test
+    public void createTopicNodeShouldSetTopicNodeType() {
+
+        ComponentSpec componentSpec = getSpiedComponentSpecWithoutRelationships();
+
+        DmaapNode dmaapNode = new DmaapNode();
+        dmaapNode.createTopicNode(componentSpec, new TreeMap<>() ,"");
+
+        assertTrue(dmaapNode.getType().endsWith("Topic"));
+    }
+
+    private Publishes[] createSamplePublishes(String type) {
+        Publishes publishes = new Publishes();
+
+        publishes.setType(type);
+        publishes.setConfig_key(CONFIG_KEY);
+        publishes.setFormat(SAMPLE_FORMAT);
+        publishes.setVersion(SAMPLE_VERSION);
+        publishes.setRoute(SAMPLE_ROUTE);
+
+        return new Publishes[]{publishes};
+    }
+
+    private Subscribes[] createSampleSubscribes(String type) {
+        Subscribes subscribes = new Subscribes();
+
+        subscribes.setType(type);
+        subscribes.setConfig_key(CONFIG_KEY);
+        subscribes.setFormat(SAMPLE_FORMAT);
+        subscribes.setVersion(SAMPLE_VERSION);
+        subscribes.setRoute(SAMPLE_ROUTE);
+
+        return new Subscribes[]{subscribes};
+    }
+
+    private ComponentSpec getSpiedComponentSpecWithoutRelationships() {
+        ComponentSpec baseComponentSpec = new ComponentSpec();
+        baseComponentSpec.createComponentSpecFromString(new TestComponentSpec().getCs());
+        ComponentSpec componentSpec = spy(baseComponentSpec);
+
+        Streams streams = new Streams();
+        streams.setSubscribes(new Subscribes[0]);
+        streams.setPublishes(new Publishes[0]);
+        when(componentSpec.getStreams()).thenReturn(streams);
+
+        Auxilary auxilary = spy(baseComponentSpec.getAuxilary());
+        when(auxilary.getDatabases()).thenReturn(null);
+
+        when(componentSpec.getAuxilary()).thenReturn(auxilary);
+        when(componentSpec.getPolicyInfo()).thenReturn(null);
+
+        return componentSpec;
+
+    }
+}
index 303a703..3f9d877 100644 (file)
@@ -1,6 +1,6 @@
 major=1
 minor=5
-patch=1
+patch=2
 base_version=${major}.${minor}.${patch}
 release_version=${base_version}
 snapshot_version=${base_version}-SNAPSHOT