Added UniversalVesAdapter TestCases in the Mapper 07/39107/1
authorPooja03 <PM00501616@techmahindra.com>
Tue, 27 Mar 2018 14:14:23 +0000 (19:44 +0530)
committerPooja03 <PM00501616@techmahindra.com>
Tue, 27 Mar 2018 14:14:43 +0000 (19:44 +0530)
Adding UniversalVesAdapter TestCases in Mapper

Change-Id: I68023d84ada0104ecf46a74e129e104a398543ea
Issue-ID: DCAEGEN2-335
Signed-off-by: Pooja03 <PM00501616@techmahindra.com>
31 files changed:
UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/exception/ConfigFileReadException.java
UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/exception/ConfigFileSmooksConversionException.java
UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/exception/DMaapException.java
UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/exception/MapperConfigException.java
UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/exception/VesException.java
UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/service/AdapterService.java
UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/service/ConfigFileService.java
UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/service/DMaapService.java
UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/service/DiskRepoConfigFileService.java
UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/service/MongoDbConfigFileService.java
UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/service/VesService.java
UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/AdditionalFieldTest.java [new file with mode: 0644]
UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/AlarmAdditionalInformationTest.java [new file with mode: 0644]
UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/ArrayOfField_Test.java [new file with mode: 0644]
UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/CommonEventHeaderTest.java [new file with mode: 0644]
UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/EventTest.java [new file with mode: 0644]
UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/FaultFieldsTest.java [new file with mode: 0644]
UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/HeartbeatFieldsTest.java [new file with mode: 0644]
UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/InternalHeaderFieldsTest.java [new file with mode: 0644]
UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/VesEventTest.java [new file with mode: 0644]
UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/controller/VesControllerTest.java [new file with mode: 0644]
UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/domain/ConfigFileDataTest.java [new file with mode: 0644]
UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/mappingconfig/EntryTest.java [new file with mode: 0644]
UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/mappingconfig/EvaluationTest.java [new file with mode: 0644]
UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/mappingconfig/MapperConfigTest.java [new file with mode: 0644]
UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/service/AdapterServiceTest.java [new file with mode: 0644]
UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/service/ConfigFileServiceTest.java [new file with mode: 0644]
UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/service/DMaapServiceTest.java [new file with mode: 0644]
UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/service/DiskRepoConfigFileServiceTest.java [new file with mode: 0644]
UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/service/MongoDbConfigFileServiceTest.java [new file with mode: 0644]
UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/service/VesServiceTest.java [new file with mode: 0644]

index 3a64247..625b021 100644 (file)
@@ -25,7 +25,7 @@ package org.onap.universalvesadapter.exception;
  * @author kmalbari
  *
  */
-public class ConfigFileReadException extends Exception {
+public class ConfigFileReadException extends VesException {
 
        /**
         * 
@@ -35,4 +35,10 @@ public class ConfigFileReadException extends Exception {
        public ConfigFileReadException(String exceptionMessage) {
                super(exceptionMessage);
        }
+       
+       public ConfigFileReadException(String exceptionMessage, Exception exception) {
+               super(exceptionMessage, exception);
+       }       
+       
+       
 }
index 1daa939..7055bc0 100644 (file)
@@ -26,7 +26,7 @@ package org.onap.universalvesadapter.exception;
  * @author kmalbari
  *
  */
-public class ConfigFileSmooksConversionException extends Exception {
+public class ConfigFileSmooksConversionException extends VesException {
 
        /**
         * 
@@ -36,5 +36,9 @@ public class ConfigFileSmooksConversionException extends Exception {
        public ConfigFileSmooksConversionException(String string) {
                super(string);
        }
+       
+       public ConfigFileSmooksConversionException(String string, Exception exception) {
+               super(string, exception);
+       }
 
 }
index 5af0205..7a35f83 100644 (file)
@@ -25,7 +25,7 @@ package org.onap.universalvesadapter.exception;
  * @author kmalbari
  *
  */
-public class DMaapException extends Exception {
+public class DMaapException extends VesException {
 
        /**
         * 
@@ -36,6 +36,9 @@ public class DMaapException extends Exception {
                super(string);
        }
 
+       public DMaapException(String string, Exception exception) {
+               super(string, exception);
+       }
        
        
 }
index a8414d8..3dfa034 100644 (file)
 */
 package org.onap.universalvesadapter.exception;
 
-import java.io.IOException;
-
 /**
  * Exception thrown during mapping config operations 
  * 
  * @author kmalbari
  *
  */
-public class MapperConfigException extends Exception {
+public class MapperConfigException extends VesException {
 
        /**
         * 
@@ -35,11 +33,11 @@ public class MapperConfigException extends Exception {
        private static final long serialVersionUID = -7876042513908918292L;
 
        public MapperConfigException(String string) {
-               // TODO Auto-generated constructor stub
+               super(string);
        }
-
-       public MapperConfigException(String string, IOException exception) {
-               // TODO Auto-generated constructor stub
+       
+       public MapperConfigException(String string, Exception exception) {
+               super(string, exception);
        }
 
 }
index 31134c8..fd11b89 100644 (file)
@@ -37,4 +37,8 @@ public class VesException extends Exception {
        public VesException(String string) {
                super(string);
        }
+       
+       public VesException(String string, Exception exception) {
+               super(string, exception);
+       }       
 }
index 14c5a83..1e6006a 100644 (file)
 * limitations under the License.
 * ============LICENSE_END=========================================================
 */
+package org.onap.universalvesadapter.service;
 
-package  org.onap.universalvesadapter.service;
-
+import org.onap.universalvesadapter.exception.MapperConfigException;
+import org.onap.universalvesadapter.utils.MapperConfigUtils;
 //import org.onap.universalvesadapter.adapter.GenericAdapter;
 //import org.onap.universalvesadapter.adapter.UniversalEventAdapter;
 //import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 /**
- * This service is written to identify the different type of events 
+ * This service is written to identify the different type of events
  * 
  * @author kmalbari
  *
@@ -34,12 +35,11 @@ import org.springframework.stereotype.Component;
 @Component
 public class AdapterService {
 
-    /*@Autowired
-    private UniversalEventAdapter snmpTrapEventAdapter;
-    public GenericAdapter identifyIncomingJsonFormatAndReturnAdapter() {
-        return snmpTrapEventAdapter;
-    }*/
-
+    /*
+     * @Autowired private UniversalEventAdapter snmpTrapEventAdapter; public
+     * GenericAdapter identifyIncomingJsonFormatAndReturnAdapter() { return
+     * snmpTrapEventAdapter; }
+     */
 
     /**
      * Identifies eventype by parsing the incoming json file.
@@ -47,11 +47,13 @@ public class AdapterService {
      * @param incomingJsonString
      * 
      * @return the event type
+     * @throws MapperConfigException
+     *             if mapper config did not perform correctly
      */
-    public String identifyEventTypeFromIncomingJson(String incomingJsonString) {
-        
-        //TODO A proper logic to identify diffeent events is needed here
-        return "snmp";
+    public String identifyEventTypeFromIncomingJson(String incomingJsonString) throws MapperConfigException {
+
+        // TODO A proper logic to identify diffeent events is needed here
+        return MapperConfigUtils.checkIncomingJsonForMatchingDomain(incomingJsonString);
     }
 
 }
index 09e2592..bf45a1b 100644 (file)
@@ -22,20 +22,20 @@ package org.onap.universalvesadapter.service;
 import org.onap.universalvesadapter.exception.ConfigFileReadException;
 
 /**
- * A contract defined for services that will handle the operations of config file 
+ * A contract defined for services that will handle the operations of config file. 
  * 
  * @author kmalbari
  *
  */
 public interface ConfigFileService {
-       
-       /**
-        * Returns the config file data
-        
-        * @param fileName 
-        * @return config file content
-        * @throws ConfigFileReadException if unable to read config file
-        */
-       String readConfigFile(String fileName) throws ConfigFileReadException;
-       
+    
+    /**
+     * Returns the config file data.
+     * 
+     * @param fileName file name
+     * @return config file content
+     * @throws ConfigFileReadException if unable to read config file
+     */
+    String readConfigFile(String fileName) throws ConfigFileReadException;
+    
 }
index 0b318eb..e463a28 100644 (file)
@@ -25,15 +25,23 @@ import java.io.InputStreamReader;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLConnection;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.TimeUnit;
+
 import org.onap.universalvesadapter.configs.DMaapMrUrlConfiguration;
+import org.onap.universalvesadapter.exception.DMaapException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-//import com.att.nsa.mr.client.MRBatchingPublisher;
-//import com.att.nsa.mr.client.MRClientFactory;
-//import com.att.nsa.mr.client.MRConsumer;
+import com.att.nsa.mr.client.MRBatchingPublisher;
+import com.att.nsa.mr.client.MRClientFactory;
+import com.att.nsa.mr.client.MRConsumer;
+import com.att.nsa.mr.client.MRPublisher.message;
 
 /**
  * 
@@ -46,12 +54,30 @@ import org.springframework.stereotype.Component;
 @Component
 public class DMaapService {
 
+    private final Logger eLOGGER = LoggerFactory.getLogger(this.getClass());  
+    
     @Autowired
     private DMaapMrUrlConfiguration dmaapMrUrlObject;
-       
-//    private MRConsumer cc; 
-//
-//    private MRBatchingPublisher pub;
+    
+    private MRConsumer consumer; 
+
+    private MRBatchingPublisher publisher;
+    
+    private List<String> outgoingMessageQueue = new CopyOnWriteArrayList<>();
+    
+    /**
+     * Adds message to outgoing queue that will be sent to DMaaP topic.
+     * 
+     * @param message outbound message in VES format
+     */
+    public void addMessageInOutgoingQueue(String message) {
+        if (null != message && !"".equals(message)) {
+            outgoingMessageQueue.add(message);
+            eLOGGER.debug("Added message to outgoing queue " + message);
+        }
+    }
+    
+    
     
     /**
      * reads the messages on DMaap MR Topic
@@ -60,23 +86,25 @@ public class DMaapService {
      * 
      * @throws DMaapException 
      */
-    /*public Iterable<String> consumeFromDMaap() throws DMaapException{
-       if(null == cc){
-               try {
-                       cc = MRClientFactory.createConsumer (dmaapMrUrlObject.getConsumerProperties());
-               } catch (IOException exception) {
-                       throw new DMaapException("Problem creating consumer \nReason : " + exception.getMessage());
-               }
-               
-               try {
-                               return cc.fetch();
-                       } catch (Exception exception) {
-                               throw new DMaapException("Problem while fetching messaged from consumer \nReason : " + exception.getMessage());
-                       }
-       }
-               return () -> Collections.emptyIterator();
-       
-    }*/
+    public Iterable<String> consumeFromDMaap() throws DMaapException{
+        if(null == consumer){
+            try {
+                consumer = MRClientFactory.createConsumer (dmaapMrUrlObject.getConsumerProperties());
+                eLOGGER.debug("Created consumer");
+            } catch (IOException exception) {
+                throw new DMaapException("Problem creating consumer \nReason : " + exception.getMessage(), exception);
+            }
+        }
+            
+        try {
+            eLOGGER.debug("Returning result fetched by consumer");
+            return consumer.fetch();
+        } catch (Exception exception) {
+            throw new DMaapException("Problem while fetching messaged from consumer \nReason : " + exception.getMessage(), exception);
+        }
+//        return () -> Collections.emptyIterator();
+        
+    }
     
     
     /**
@@ -85,71 +113,132 @@ public class DMaapService {
      * 
      * @throws DMaapException 
      */
-    /*public void publishToDMaap() throws DMaapException{
-       if(null == cc){
-               try {
-                        pub = MRClientFactory.createBatchingPublisher (dmaapMrUrlObject.getPublisherProperties());
-               } catch (IOException exception) {
-                       throw new DMaapException("Problem creating consumer \nReason : " + exception.getMessage());
-               }
-               
-       }
-       
+    public void publishToDMaap() throws DMaapException{
+        if(null == publisher){
+            try {
+                 publisher = MRClientFactory.createBatchingPublisher (dmaapMrUrlObject.getPublisherProperties());
+                 eLOGGER.debug("Create a publisher now.");
+            } catch (IOException exception) {
+                throw new DMaapException("Problem creating publisher \nReason : " + exception.getMessage(), exception);
+            }
+        }
+        for(String message : outgoingMessageQueue){
+            try {
+                publisher.send(message);
+                eLOGGER.debug("Sending message to DMaaP :-> " + message );
+            } catch (IOException exception) {
+                throw new DMaapException("Problem sending message to DMaaP topic \nReason : " + exception.getMessage(), exception);
+            }
+        }
+        List<message> stuck = null;
+        try {
+            stuck = publisher.close ( 20, TimeUnit.SECONDS );
+        } catch (IOException | InterruptedException exception) {
+            throw new DMaapException("Problem while closing publisher \nReason : " + exception.getMessage(), exception);
+        }
+        if (null != stuck) {
+            if (stuck.size() > 0) {
+                eLOGGER.debug(stuck.size() + " messages unsent");
+            } else {
+                eLOGGER.debug("Clean exit; all messages sent.");
+            } 
+        }
+        else
+            throw new DMaapException("Problem while closing publisher, no messages were returned. ");
+        
+    }
+    
+    /**
+     * sends the messages to DMaap MR Topic
+     * 
+     * 
+     * @throws DMaapException 
+     */
+    public void publishToDMaap(String outgoingMessage) throws DMaapException{
+        if(null == publisher){
+            synchronized(publisher){
+                if(null == publisher){
+                    try {
+                        publisher = MRClientFactory.createBatchingPublisher (dmaapMrUrlObject.getPublisherProperties());
+                        eLOGGER.debug("Publisher created now.");
+                    } catch (IOException exception) {
+                        throw new DMaapException("Problem creating publisher \nReason : " + exception.getMessage(), exception);
+                    }
+                }
+            }
+        }
+        try {
+            publisher.send(outgoingMessage);
+            eLOGGER.debug("Sent outgoing message " + outgoingMessage);
+        } catch (IOException exception) {
+            throw new DMaapException("Problem sending message to DMaaP topic \nReason : " + exception.getMessage(), exception);
+        }
+        List<message> stuck = null;
+        try {
+            stuck = publisher.close ( 20, TimeUnit.SECONDS );
+        } catch (IOException | InterruptedException exception) {
+            throw new DMaapException("Problem while closing publisher \nReason : " + exception.getMessage(), exception);
+        }
+        if (null != stuck) {
+            if (stuck.size() > 0) {
+                eLOGGER.debug(stuck.size() + " messages unsent");
+            } else {
+                eLOGGER.debug("Clean exit; all messages sent.");
+            } 
+        } else{
+            throw new DMaapException("Problem while closing publisher, no messages were returned. ");
+        }
+        
+    }    
+    
+    
+    /**
+     * for local testing only
+     * @return
+     * @throws DMaapException 
+     */
+    /*public String consume() throws DMaapException {
+        
+        URL url;
+        StringBuffer incomingJson = null;
+        incomingJson = new StringBuffer(); 
+        try {
+            url = new URL(dmaapMrUrlObject.getUrl());
+        
+            //open the connection to the above URL.
+            URLConnection urlcon = url.openConnection();
+            
+            Map<String, List<String>> header = urlcon.getHeaderFields();
+            
+            //print all the fields along with their value.
+            for (Map.Entry<String, List<String>> mp : header.entrySet()) {
+                eLOGGER.debug(mp.getKey() + " : ");
+                eLOGGER.debug(mp.getValue().toString());
+            }
+            eLOGGER.debug("Complete source code of the URL is-");
+            eLOGGER.debug("---------------------------------");
+             
+            //get the inputstream of the open connection.
+            BufferedReader br = new BufferedReader(new InputStreamReader(urlcon.getInputStream()));
+            String tempString;
+            //print the source code line by line.
+            while ((tempString = br.readLine()) != null) {
+                eLOGGER.debug(tempString);
+                incomingJson.append(tempString);
+            }
+        
+        } catch (MalformedURLException exception) {
+            throw new DMaapException("Problem consuming from url \nReason : " + exception.getMessage(), exception);
+        } catch (IOException exception) {
+            throw new DMaapException("Problem consuming \nReason : " + exception.getMessage(), exception);
+        }
+        return incomingJson.toString();
     }*/
     
     
     
     
-       /**
-        * @return
-        */
-       public String consume(){
-               URL url;
-               StringBuffer incomingJson = null;
-               incomingJson = new StringBuffer(); 
-               try {
-                       url = new URL(dmaapMrUrlObject.getUrl());
-        
-               //open the connection to the above URL.
-               URLConnection urlcon = url.openConnection();
-               
-               Map<String, List<String>> header = urlcon.getHeaderFields();
-               
-               //print all the fields along with their value.
-               for (Map.Entry<String, List<String>> mp : header.entrySet()) 
-               {
-                   System.out.print(mp.getKey() + " : ");
-                   System.out.println(mp.getValue().toString());
-               }
-               System.out.println();
-               System.out.println("Complete source code of the URL is-");
-               System.out.println("---------------------------------");
-                
-               //get the inputstream of the open connection.
-               BufferedReader br = new BufferedReader(new InputStreamReader
-                                                   (urlcon.getInputStream()));
-               String tempString;
-               //print the source code line by line.
-               while ((tempString = br.readLine()) != null) 
-               {
-                   System.out.println(tempString);
-                   incomingJson.append(tempString);
-               }
-       
-               } catch (MalformedURLException e) {
-                       // TODO Auto-generated catch block
-                       e.printStackTrace();
-               } catch (IOException e) {
-                       // TODO Auto-generated catch block
-                       e.printStackTrace();
-               }
-               return incomingJson.toString();
-       }
-       
-       
-       
-       
-       
-       
-       
+    
+    
+    
 }
index c2a30f0..7c05ced 100644 (file)
@@ -32,7 +32,7 @@ import org.springframework.stereotype.Component;
 import org.springframework.web.client.RestTemplate;
 
 /**
- * Implementation of {@code ConfigFileService} using disk repository
+ * Implementation of {@code ConfigFileService} using disk repository.
  * 
  * @author kmalbari
  *
@@ -40,34 +40,48 @@ import org.springframework.web.client.RestTemplate;
 @Component
 public class DiskRepoConfigFileService implements ConfigFileService {
 
-       private final Logger LOGGER = LoggerFactory.getLogger(this.getClass()); 
-       
-       @Autowired
-       private DiskRepoConfiguration diskRepoConfiguration;
-       
-       private RestTemplate restTemplate = new RestTemplate();
-       
-       private URI uri = null;
+    private final Logger logger = LoggerFactory.getLogger(this.getClass());    
+    
+    @Autowired
+    private DiskRepoConfiguration diskRepoConfiguration;
+    
+    private RestTemplate restTemplate;
+    
+    private URI uri = null;
 
-       /* (non-Javadoc)
-        * @see org.onap.universalvesadapter.service.ConfigFileService#readConfigFile(java.lang.String)
-        */
-       @Override
-       public String readConfigFile(String fileName) throws ConfigFileReadException {
-               LOGGER.debug("Reading config file for " + fileName);
-               if(null == uri){
-                       try {
-                               uri = new URI(diskRepoConfiguration.getFileRepositoryUrl()+fileName);
-                               LOGGER.debug("Read URI for " + fileName);
-                       } catch (URISyntaxException exception) {
-                               throw new ConfigFileReadException("Unable to read config file for file "
-                       + fileName + "\n Reason : " + exception.getMessage());
-                       }
-               }
-               LOGGER.debug("Calling file repo service for URI" + uri);
-               ResponseEntity<String> fileDataEntity = restTemplate.getForEntity(uri, String.class);
-               LOGGER.debug("Call completed successfully");
-               return fileDataEntity.getBody();
-       }
+    /* (non-Javadoc)
+     * @see org.onap.universalvesadapter.service.ConfigFileService#readConfigFile(java.lang.String)
+     */
+    @Override
+    public String readConfigFile(String fileName) throws ConfigFileReadException {
+        logger.debug("Reading config file for " + fileName);
+        if (null == uri) {
+            try {
+                uri = new URI(diskRepoConfiguration.getFileRepositoryUrl() + fileName);
+                logger.debug("Read URI for " + fileName);
+            } catch (URISyntaxException exception) {
+                throw new ConfigFileReadException("Unable to read config file for file "
+            + fileName + "\n Reason : " + exception.getMessage(), exception);
+            }
+        }
+        logger.debug("Calling file repo service for URI" + uri);
+        ResponseEntity<String> fileDataEntity = getRestTemplate().getForEntity(uri, String.class);
+        logger.debug("Call completed successfully");
+        return fileDataEntity.getBody();
+    }
+    
+    /**
+     * Instantiates the instance if null and returns it.
+     * 
+     * @return {@code RestTemplate} instance
+     */
+    private RestTemplate getRestTemplate(){
+        
+        if (null == restTemplate) {
+            restTemplate = new RestTemplate();
+        }
+        
+        return restTemplate;
+    }
 
 }
index bab304a..77769f5 100644 (file)
@@ -37,8 +37,14 @@ public class MongoDbConfigFileService implements ConfigFileService {
        public String readConfigFile(String configFileName){
                //HERE CONFIG FILE DATA WOULD COME FROM MONGO DB
                ConfigFileData configFileData = new ConfigFileData();
-               configFileData.setXmlFileName("");
-               configFileData.setXmlContent("<?xml version=\"1.0\" encoding=\"UTF-8\"?> <smooks-resource-list   xmlns=\"http://www.milyn.org/xsd/smooks-1.1.xsd\"       xmlns:json=\"http://www.milyn.org/xsd/smooks/json-1.1.xsd\"     xmlns:jb=\"http://www.milyn.org/xsd/smooks/javabean-1.2.xsd\">     <json:reader rootName=\"simple\"  keyWhitspaceReplacement=\"-\">    </json:reader>     <!-- <jb:bean class=\"com.example.demo.Simple\" beanId=\"simple\" createOnElement=\"simple\">        <jb:value property=\"orderId\" data=\"#/orderId\" />            <jb:value property=\"username\" data=\"#/username\" />          <jb:wiring property=\"customer\" beanIdRef=\"customer\"/>       <jb:wiring property=\"orderItems\" beanIdRef=\"orderItems\"/>                </jb:bean> -->         <jb:bean class=\"org.onap.dcaegen2.ves.domain.VesEvent\" beanId=\"vesEvent\" createOnElement=\"simple\">            <jb:wiring property=\"event\" beanIdRef=\"event\"/>     </jb:bean>       <jb:bean class=\"org.onap.dcaegen2.ves.domain.Event\" beanId=\"event\" createOnElement=\"simple\">             <jb:wiring property=\"commonEventHeader\" beanIdRef=\"commonEventHeader\"/>             <jb:wiring property=\"faultFields\" beanIdRef=\"faultFields\"/>                 <jb:wiring property=\"measurementsForVfScalingFields\" beanIdRef=\"measurementsForVfScalingFields\"/>                </jb:bean>       <jb:bean class=\"org.onap.dcaegen2.ves.domain.MeasurementsForVfScalingFields\" beanId=\"measurementsForVfScalingFields\" createOnElement=\"simple\">      <jb:wiring property=\"additionalMeasurements\" beanIdRef=\"additionalMeasurements\"/>     </jb:bean>         <jb:bean class=\"org.onap.dcaegen2.ves.domain.CommonEventHeader\" beanId=\"commonEventHeader\" createOnElement=\"simple\">         <jb:value property=\"eventId\" data=\"#/community\" />          <jb:value property=\"eventName\" data=\"#/protocol-version\" />                 <jb:value property=\"domain\" data=\"#/trap-category\" />       <jb:value property=\"sequence\" data=\"#/time-received\" decoder=\"Long\"/>             <jb:value property=\"lastEpochMicrosec\" data=\"#/community-len\"  decoder=\"Double\" />        <jb:value property=\"startEpochMicrosec\" data=\"#/notify-OID-len\"   />     </jb:bean>           <jb:bean class=\"org.onap.dcaegen2.ves.domain.FaultFields\" beanId=\"faultFields\" createOnElement=\"simple\">        <jb:value property=\"alarmCondition\" data=\"#/cambria.partition\" />           <jb:value property=\"eventSeverity\" data=\"#/notify-OID\" />           <jb:value property=\"eventSourceType\" data=\"#/agent-name\" />         <jb:value property=\"specificProblem\" data=\"#/agent-address\" />              <jb:value property=\"faultFieldsVersion\" data=\"#/epoch_serno\" decoder=\"Double\" />     </jb:bean>                   <jb:bean class=\"java.util.ArrayList\" beanId=\"additionalMeasurements\" createOnElement=\"simple\">            <jb:wiring beanIdRef=\"additionalMeasurement\"/>     </jb:bean>            <jb:bean class=\"org.onap.dcaegen2.ves.domain.AdditionalMeasurement\" beanId=\"additionalMeasurement\" createOnElement=\"varbinds/element\">         <jb:value property=\"name\" data=\"#/varbind_value\" />     </jb:bean>        </smooks-resource-list>");
+               configFileData.setXmlFileName(configFileName);
+               configFileData.setXmlContent("<?xml version=\"1.0\" encoding=\"UTF-8\"?> "
+                + "<smooks-resource-list   xmlns=\"http://www.milyn.org/xsd/smooks-1.1.xsd\"   "
+                + "xmlns:json=\"http://www.milyn.org/xsd/smooks/json-1.1.xsd\"    "
+                + " xmlns:jb=\"http://www.milyn.org/xsd/smooks/javabean-1.2.xsd\">     "
+                + "     <json:reader rootName=\"simple\"  keyWhitspaceReplacement=\"-\">    "
+                + "     </json:reader>     "
+                + "</smooks-resource-list>");
                return configFileData.getXmlContent();
        }
        
index 81cb4b8..112d1d6 100644 (file)
 */
 package org.onap.universalvesadapter.service;
 
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+
 import javax.annotation.Resource;
+
+import org.milyn.io.FileUtils;
 import org.onap.universalvesadapter.adapter.GenericAdapter;
 import org.onap.universalvesadapter.exception.ConfigFileReadException;
 import org.onap.universalvesadapter.exception.ConfigFileSmooksConversionException;
+import org.onap.universalvesadapter.exception.DMaapException;
+import org.onap.universalvesadapter.exception.MapperConfigException;
 import org.onap.universalvesadapter.exception.VesException;
+import org.onap.universalvesadapter.utils.MapperConfigUtils;
+import org.onap.universalvesadapter.utils.ParallelTasks;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.ConfigurableApplicationContext;
 import org.springframework.stereotype.Component;
+import org.springframework.util.FileCopyUtils;
 
 /**
  * Service that starts the universal ves adapter module to listen for events
@@ -38,10 +50,13 @@ import org.springframework.stereotype.Component;
  */
 @Component
 public class VesService {
-       
-       private final Logger LOGGER = LoggerFactory.getLogger(this.getClass());
-       
-       private boolean isRunning = true;
+    
+    private final Logger LOGGER = LoggerFactory.getLogger(this.getClass());
+    
+    private boolean isRunning = true;
+    
+    @Autowired
+    private ConfigurableApplicationContext ctx;
     
     @Autowired
     private DMaapService dmaapService;
@@ -49,80 +64,114 @@ public class VesService {
     @Autowired
     private AdapterService adapterService;
     
-    @Resource(name="universalEventAdapter")
+    @Resource(name = "universalEventAdapter")
     private GenericAdapter eventAdapter;
 
     @Value("${messagesInBatch}")
-       private int messagesInBatch; 
-       
-       /*public void start(){
-               
-               String incomingJsonString = dmaapService.consume();
-               if(!"".equals(incomingJsonString)){
-                       GenericAdapter eventAdapter = adapterService.identifyIncomingJsonFormatAndReturnAdapter();
-                       String outgoingJsonString = eventAdapter.transform(incomingJsonString);
-                       System.out.println(outgoingJsonString);
-               }
-       }*/
+    private int messagesInBatch; 
+
+    @Value("${messagesInTimeInterval}")
+    private long messagesInTimeInverval; 
+    
+    @Value("${mapperConfig.file}")
+    private String mapperConfigFile;
     
+    /*public void start(){
+        
+        String incomingJsonString = dmaapService.consume();
+        if(!"".equals(incomingJsonString)){
+            GenericAdapter eventAdapter = adapterService.identifyIncomingJsonFormatAndReturnAdapter();
+            String outgoingJsonString = eventAdapter.transform(incomingJsonString);
+            System.out.println(outgoingJsonString);
+        }
+    }*/
     
-       /**
-        *  method triggers universal ves adapter module
-        */
-       public void start() {
-               /*ParallelTasks parallelTasks = new ParallelTasks();
-               int processingNumberOfMessage = 0;
-               while (isRunning) {
-                       try {
-                               for(String incomingJsonString : dmaapService.consumeFromDMaap()){
-                                       parallelTasks.add(() -> processReceivedJson(incomingJsonString));
-                                       processingNumberOfMessage++;
-                                       if(processingNumberOfMessage == messagesInBatch){
-                                               parallelTasks.startParallelTasks();
-                                               processingNumberOfMessage=0;
-                                               parallelTasks = new ParallelTasks();
-                                               try
-                                   {
-                                       Thread.sleep(1000);
-                                   }
-                                   catch (InterruptedException e)
-                                   {
-                                   }           
-                                       }
-                               }
-                       } catch (DMaapException e) {
-                       }
-               }*/
-               String incomingJsonString = dmaapService.consume();
-               processReceivedJson(incomingJsonString);
-       }
+    
+    /**
+     *  method triggers universal ves adapter module.
+     */
+    public void start() {
+        
+        try {
+            String mappingConfigFileData = FileCopyUtils.copyToString(new FileReader(mapperConfigFile));
+            MapperConfigUtils.readMapperConfigFile(mappingConfigFileData);
+        
+        
+            ParallelTasks parallelTasks = new ParallelTasks();
+            while (isRunning) {
+                int processingNumberOfMessage = 0;
+                long start = System.currentTimeMillis();
+                for (String incomingJsonString : dmaapService.consumeFromDMaap()) {
+                    parallelTasks.add(() -> processReceivedJson(incomingJsonString));
+                    processingNumberOfMessage++;
+                    if (processingNumberOfMessage == messagesInBatch 
+                            || (System.currentTimeMillis() - start) > messagesInTimeInverval) {
+                        processingNumberOfMessage = 0;
+                        start = System.currentTimeMillis();
+                        try {
+                            parallelTasks.startParallelTasks();
+                        } catch (InterruptedException exception) {
+                            LOGGER.error("Processing was interrupted due to :" + exception.getMessage());
+                        }        
+                        parallelTasks = new ParallelTasks();
+                    }
+                }
+                try {
+                    parallelTasks.startParallelTasks();
+                } catch (InterruptedException exception) {
+                    LOGGER.error("Processing was interrupted due to :" + exception.getMessage());
+                }        
+                parallelTasks = new ParallelTasks();
+            }
+        
+            /*String incomingJsonString = "";
+            incomingJsonString = dmaapService.consume();
+            processReceivedJson(incomingJsonString);*/
+        } catch (Exception exception) {
+            LOGGER.error("Reported exception : " + exception.getMessage(), exception);
+        }            
+    }
 
-       /**
-        * It finds mapping file for received json, transforms json to VES format 
-        * and publishes it to outgoing DMaap MR Topic
-        * 
-        * @param incomingJsonString
-        */
-       private void processReceivedJson(String incomingJsonString) {
-               try {
-                       LOGGER.debug("Received incoming message" + incomingJsonString);
-                       if (!"".equals(incomingJsonString)) {
-                               String eventType = adapterService.identifyEventTypeFromIncomingJson(incomingJsonString);
-                               LOGGER.debug("Event identified as " + eventType);
-                               String outgoingJsonString;
-                                       outgoingJsonString = eventAdapter.transform(incomingJsonString, eventType);
-                               LOGGER.debug("Output VES json to be sent " + outgoingJsonString);
-                       } 
-               } catch (ConfigFileReadException | ConfigFileSmooksConversionException | VesException exception) {
-                       LOGGER.error(exception.getMessage());
-               }
-       }
-       
-       /**
-        * method stops universal ves adapter module
-        */
-       public void stop() {
-               
-               isRunning = false;
-       }
+    /**
+     * It finds mapping file for received json, transforms json to VES format 
+     * and publishes it to outgoing DMaap MR Topic
+     * 
+     * @param incomingJsonString
+     */
+    private void processReceivedJson(String incomingJsonString){
+        LOGGER.debug("Received incoming message : " + incomingJsonString);
+        if (!"".equals(incomingJsonString)) {
+            String eventType;
+            try {
+                eventType = adapterService.identifyEventTypeFromIncomingJson(incomingJsonString);
+            
+                LOGGER.debug("Event identified as " + eventType);
+                String outgoingJsonString;
+                    outgoingJsonString = eventAdapter.transform(incomingJsonString, eventType);
+                LOGGER.debug("Output VES json to be sent " + outgoingJsonString);
+                
+//                dmaapService.addMessageInOutgoingQueue(outgoingJsonString);
+//                LOGGER.debug("Added message in outgoing Queue ");
+                
+                dmaapService.publishToDMaap(outgoingJsonString);
+                LOGGER.debug("Sent message in outgoing Queue ");
+                
+                
+            } catch (VesException exception) {
+                LOGGER.error("Received exception : " + exception.getMessage(), exception);
+                
+                //TODO KKM : Do we wish to continue the application with same exception in every thread??
+                LOGGER.error("APPLICATION WILL BE SHUTDOWN UNTIL ABOVE ISSUE IS RESOLVED.");
+                ctx.close();  
+            }
+        } 
+    }
+    
+    /**
+     * method stops universal ves adapter module
+     */
+    public void stop() {
+        
+        isRunning = false;
+    }
 }
diff --git a/UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/AdditionalFieldTest.java b/UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/AdditionalFieldTest.java
new file mode 100644 (file)
index 0000000..c7ba7e0
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : DCAE
+* ================================================================================
+* Copyright 2018 TechMahindra
+*=================================================================================
+* 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.dcaegen2.ves.domain;
+
+import static org.junit.Assert.*;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.onap.dcaegen2.ves.domain.AdditionalField;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class AdditionalFieldTest {
+    
+    @Autowired
+    AdditionalField additionalField = new AdditionalField();
+    Object value1 = new Object();
+    Map<String, Object> map = new HashMap<String, Object>();
+
+    @Test
+    public void test() {
+        additionalField.setAdditionalProperty("name", value1);
+        additionalField.setName("name2");
+        additionalField.setValue("value2");
+        
+        map.put("name", value1);
+        assertEquals(additionalField.getName(),"name2");
+        assertEquals(additionalField.getValue(),"value2");
+        assertEquals(additionalField.getAdditionalProperties(),map);
+        assert (additionalField.toString() != null);
+        assert (additionalField.hashCode() != 0);
+    }
+
+}
diff --git a/UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/AlarmAdditionalInformationTest.java b/UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/AlarmAdditionalInformationTest.java
new file mode 100644 (file)
index 0000000..a481729
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : DCAE
+* ================================================================================
+* Copyright 2018 TechMahindra
+*=================================================================================
+* 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.dcaegen2.ves.domain;
+
+import static org.junit.Assert.*;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class AlarmAdditionalInformationTest {
+
+   @Autowired
+   AlarmAdditionalInformation alarmAdditionalInformation = new AlarmAdditionalInformation();
+   Object value1 = new Object();
+   Map<String, Object> map = new HashMap<String, Object>();
+   
+       
+    
+    @Test
+    public void test() {
+        alarmAdditionalInformation.setAdditionalProperty("name", value1);
+        alarmAdditionalInformation.setName("name2");
+        alarmAdditionalInformation.setValue("value2");
+        
+        map.put("name", value1);
+        assertEquals(alarmAdditionalInformation.getName(),"name2");
+        assertEquals(alarmAdditionalInformation.getValue(),"value2");
+        assertEquals(alarmAdditionalInformation.getAdditionalProperties(),map);
+        assert (alarmAdditionalInformation.toString() != null);
+        assert (alarmAdditionalInformation.hashCode() != 0);
+        
+        
+     }
+
+}
diff --git a/UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/ArrayOfField_Test.java b/UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/ArrayOfField_Test.java
new file mode 100644 (file)
index 0000000..a4cd280
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : DCAE
+* ================================================================================
+* Copyright 2018 TechMahindra
+*=================================================================================
+* 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.dcaegen2.ves.domain;
+
+import static org.junit.Assert.*;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class ArrayOfField_Test {
+    @Autowired
+    ArrayOfField_  arrayOfField = new  ArrayOfField_();
+    Object value1 = new Object();
+    Map<String, Object> map = new HashMap<String, Object>();
+    
+        
+     
+     @Test
+     public void test() {
+         arrayOfField.setAdditionalProperty("name", value1);
+         arrayOfField.setName("name2");
+         arrayOfField.setValue("value2");
+         
+         map.put("name", value1);
+         assertEquals (arrayOfField.getName(),"name2");
+         assertEquals (arrayOfField.getValue(),"value2");
+         assertEquals (arrayOfField.getAdditionalProperties(),map);
+         assert (arrayOfField.toString() != null);
+         assert (arrayOfField.hashCode() != 0);
+         
+}
+}
diff --git a/UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/CommonEventHeaderTest.java b/UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/CommonEventHeaderTest.java
new file mode 100644 (file)
index 0000000..b015d63
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : DCAE
+* ================================================================================
+* Copyright 2018 TechMahindra
+*=================================================================================
+* 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.dcaegen2.ves.domain;
+
+import static org.junit.Assert.*;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.junit.Test;
+import org.mockito.Mock;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class CommonEventHeaderTest {
+
+    @Autowired
+    CommonEventHeader commonEventHeader = new CommonEventHeader();
+    Object value =new Object();
+    private Map<String, Object> map = new HashMap<String, Object>();
+    @Mock
+    InternalHeaderFields internalHeaderFields = new InternalHeaderFields();
+    
+    @Test
+    public void test() {
+        
+        commonEventHeader.setDomain("Domain");
+        commonEventHeader.setEventId("EventID");
+        commonEventHeader.setEventName("EventName");
+        commonEventHeader.setEventType("EventType");
+        commonEventHeader.setLastEpochMicrosec(11.25);
+        commonEventHeader.setAdditionalProperty("name", value);
+        commonEventHeader.setInternalHeaderFields(internalHeaderFields);
+        commonEventHeader.setNfcNamingCode("nfcNamingCode");
+        commonEventHeader.setNfNamingCode("nfNamingCode");
+        commonEventHeader.setPriority("priority");
+        commonEventHeader.setReportingEntityId("reportingEntityId");
+        commonEventHeader.setReportingEntityName("reportingEntityName");
+        commonEventHeader.setSequence(1L);
+        commonEventHeader.setSourceId("sourceId");
+        commonEventHeader.setSourceName("sourceName");
+        commonEventHeader.setStartEpochMicrosec(11.1);
+        commonEventHeader.setVersion(1.2);
+        map.put("name", value);
+        
+        assertEquals (commonEventHeader.getDomain(),"Domain");
+        assertEquals (commonEventHeader.getEventId(),"EventID");
+        assertEquals (commonEventHeader.getEventName(),"EventName");
+        assertEquals (commonEventHeader.getEventType(),"EventType");
+        assertEquals(commonEventHeader.getLastEpochMicrosec(), new Double(11.25));
+       
+        assertEquals (commonEventHeader.getAdditionalProperties(),map);
+        assertEquals (commonEventHeader.getInternalHeaderFields(),internalHeaderFields);
+        assertEquals (commonEventHeader.getNfcNamingCode(),"nfcNamingCode");
+        assertEquals (commonEventHeader.getNfNamingCode(),"nfNamingCode");
+        assertEquals (commonEventHeader.getPriority(),"priority");
+        assertEquals (commonEventHeader.getReportingEntityId(),"reportingEntityId");
+        assertEquals (commonEventHeader.getReportingEntityName(),"reportingEntityName");
+        assertEquals (commonEventHeader.getSequence(),new Long(1L));
+        assertEquals (commonEventHeader.getSourceId(),"sourceId");
+        assertEquals (commonEventHeader.getSourceName(),"sourceName");
+        assertEquals (commonEventHeader.getStartEpochMicrosec(),new Double(11.1));
+        assertEquals (commonEventHeader.getVersion(),new Double(1.2));
+        
+        assert (commonEventHeader.toString() != null);
+        assert (commonEventHeader.hashCode() != 0);
+        
+        
+        
+        
+    }
+
+}
diff --git a/UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/EventTest.java b/UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/EventTest.java
new file mode 100644 (file)
index 0000000..192abfb
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : DCAE
+* ================================================================================
+* Copyright 2018 TechMahindra
+*=================================================================================
+* 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.dcaegen2.ves.domain;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+import org.mockito.Mock;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class EventTest {
+
+    @Autowired
+    Event event = new Event();
+    @Mock
+    CommonEventHeader commonEventHeader = new CommonEventHeader();
+    @Mock
+    FaultFields faultFields = new FaultFields();
+    @Mock
+    HeartbeatFields heartbeatFields = new HeartbeatFields();
+    
+    @Test
+    public void test() {
+       event.setCommonEventHeader(commonEventHeader);
+       event.setFaultFields(faultFields);
+       event.setHeartbeatFields(heartbeatFields);
+       
+       assertEquals (event.getCommonEventHeader(),commonEventHeader);
+       assertEquals (event.getFaultFields(),faultFields);
+       assertEquals (event.getHeartbeatFields(),heartbeatFields);
+       
+       assert (event.toString() != null);
+       assert (event.hashCode() != 0);
+       
+       
+       
+    }
+
+}
diff --git a/UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/FaultFieldsTest.java b/UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/FaultFieldsTest.java
new file mode 100644 (file)
index 0000000..b77480c
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : DCAE
+* ================================================================================
+* Copyright 2018 TechMahindra
+*=================================================================================
+* 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.dcaegen2.ves.domain;
+
+import static org.junit.Assert.*;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.antlr.grammar.v3.ANTLRParser.action_return;
+import org.apache.bcel.generic.NEW;
+import org.junit.Test;
+
+public class FaultFieldsTest {
+
+    FaultFields ff=new FaultFields();
+    Object o=new Object();
+    Object o2=new Object();
+    List<AlarmAdditionalInformation> alarmAdditionalInformation;
+    Map<String, Object> a = new HashMap<String, Object>();
+    @Test
+    public void test() {
+       
+       ff.setAdditionalProperty("name",o);
+       ff.setAlarmAdditionalInformation(alarmAdditionalInformation);
+       ff.setAlarmCondition("alarmCondition");
+       ff.setAlarmInterfaceA("alarmInterfaceA");
+       ff.setEventCategory("eventCategory");
+       ff.setEventSeverity("eventSeverity");
+       ff.setEventSourceType("eventSourceType");
+       ff.setFaultFieldsVersion(11.25);
+       ff.setSpecificProblem("specificProblem");
+       ff.setVfStatus("vfStatus");
+       a.put("name",o);
+       assertEquals(ff.getAdditionalProperties(),a);
+       assertEquals(ff.getAlarmAdditionalInformation(),alarmAdditionalInformation);
+       assertEquals(ff.getAlarmCondition(), "alarmCondition");
+       assertEquals(ff.getAlarmInterfaceA(), "alarmInterfaceA");
+       assertEquals(ff.getEventCategory(), "eventCategory");
+       assertEquals(ff.getEventSeverity(), "eventSeverity");
+       assertEquals(ff.getEventSourceType(), "eventSourceType");
+       assertEquals(ff.getSpecificProblem(), "specificProblem");
+       assert(ff.getFaultFieldsVersion().equals(11.25));
+       assertEquals(ff.getVfStatus(), "vfStatus");
+       assert(ff.toString()!=null);
+       assert(ff.hashCode()!=0);
+      // assert(equals(ff));
+       //assert(ff.equals(o)!=false);
+       //ff.equals(o);
+     // assert(ff.equals(o));
+      //assert(ff.equals(o2));
+   
+    }
+
+}
diff --git a/UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/HeartbeatFieldsTest.java b/UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/HeartbeatFieldsTest.java
new file mode 100644 (file)
index 0000000..3695281
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : DCAE
+* ================================================================================
+* Copyright 2018 TechMahindra
+*=================================================================================
+* 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.dcaegen2.ves.domain;
+
+import static org.junit.Assert.*;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.junit.Test;
+import org.mockito.Mock;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class HeartbeatFieldsTest {
+
+    @Autowired
+    HeartbeatFields heartbeatFields = new HeartbeatFields();
+    Object value = new Object();
+    
+    List<AdditionalField> additionalFields = null;
+    @Mock
+    AdditionalField field = new AdditionalField();
+    
+    Map<String, Object> a = new HashMap<String, Object>();
+    @Test
+    public void test() {
+        //additionalFields.add(field);
+        heartbeatFields.setAdditionalFields(additionalFields);
+        heartbeatFields.setAdditionalProperty("name", value);
+        heartbeatFields.setHeartbeatFieldsVersion(11.1);
+        heartbeatFields.setHeartbeatInterval(1L);
+        a.put("name", value);
+        assertEquals (heartbeatFields.getAdditionalFields(),additionalFields);
+        assertEquals (heartbeatFields.getAdditionalProperties(),a);
+        assertEquals (heartbeatFields.getHeartbeatFieldsVersion(),new Double(11.1));
+        assertEquals (heartbeatFields.getHeartbeatInterval(),new Long(1L));
+        assert (heartbeatFields.toString() != null);
+        assert (heartbeatFields.hashCode() != 0);
+        
+        
+        
+        
+    }
+
+}
diff --git a/UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/InternalHeaderFieldsTest.java b/UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/InternalHeaderFieldsTest.java
new file mode 100644 (file)
index 0000000..c644ba1
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : DCAE
+* ================================================================================
+* Copyright 2018 TechMahindra
+*=================================================================================
+* 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.dcaegen2.ves.domain;
+
+import static org.junit.Assert.*;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class InternalHeaderFieldsTest {
+
+    @Autowired
+    InternalHeaderFields internalHeaderFields = new InternalHeaderFields();
+    Object value = new Object();
+    Map<String, Object> additionalProperties = new HashMap<String, Object>();
+    @Test
+    public void test() {
+        internalHeaderFields.setAdditionalProperty("name", value);
+        additionalProperties.put("name", value);
+        
+        assertEquals (internalHeaderFields.getAdditionalProperties(),additionalProperties);
+        assert (internalHeaderFields.toString() != null);
+        assert (internalHeaderFields.hashCode() != 0);
+        
+        
+    }
+
+}
diff --git a/UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/VesEventTest.java b/UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/VesEventTest.java
new file mode 100644 (file)
index 0000000..97333ba
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : DCAE
+* ================================================================================
+* Copyright 2018 TechMahindra
+*=================================================================================
+* 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.dcaegen2.ves.domain;
+
+import static org.junit.Assert.*;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.junit.Test;
+import org.mockito.Mock;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class VesEventTest {
+
+    @Autowired
+    VesEvent vesEvent = new VesEvent();
+    @Mock
+    Event event = new Event();
+    Object value = new Object();
+    Map<String, Object> additionalProperties = new HashMap<String, Object>();
+    @Test
+    public void test() {
+       vesEvent.setAdditionalProperty("name", value);
+       vesEvent.setEvent(event);
+       additionalProperties.put("name", value);
+       assertEquals(vesEvent.getAdditionalProperties(), additionalProperties);
+       assertEquals(vesEvent.getEvent(), event);
+       assert (vesEvent.toString() != null);
+       assert (vesEvent.hashCode() != 0);
+       
+    }
+
+}
diff --git a/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/controller/VesControllerTest.java b/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/controller/VesControllerTest.java
new file mode 100644 (file)
index 0000000..786c22c
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : DCAE
+* ================================================================================
+* Copyright 2018 TechMahindra
+*=================================================================================
+* 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.universalvesadapter.controller;
+
+import static org.junit.Assert.assertEquals;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.onap.universalvesadapter.Application;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.test.web.servlet.MockMvc;
+import org.springframework.test.web.servlet.MvcResult;
+import org.springframework.test.web.servlet.ResultActions;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes=Application.class)
+@AutoConfigureMockMvc
+public class VesControllerTest {
+
+    @Autowired
+    private MockMvc mockMvc;
+
+    @Test
+    public void startShouldReturnApplicationStartedMessage() throws Exception {
+
+         MvcResult mvcResult = this.mockMvc.perform(get("/start")).andDo(print()).andExpect(status().isOk())
+                .andReturn();//Expect(jsonPath("$.content").value("Application started"));
+         assertEquals("Application started", mvcResult.getResponse().getContentAsString());
+    }
+
+    @Test
+    public void stopShouldReturnApplicationStoppingMessage() throws Exception {
+        
+        MvcResult mvcResult = this.mockMvc.perform(get("/stop")).andDo(print()).andExpect(status().isOk())
+        .andReturn();//.andExpect(jsonPath("$.content").value("Application will be stopped soon"));
+        assertEquals("Application will be stopped soon", mvcResult.getResponse().getContentAsString());
+    }
+
+
+
+}
+*/
\ No newline at end of file
diff --git a/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/domain/ConfigFileDataTest.java b/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/domain/ConfigFileDataTest.java
new file mode 100644 (file)
index 0000000..9f51cae
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : DCAE
+* ================================================================================
+* Copyright 2018 TechMahindra
+*=================================================================================
+* 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.universalvesadapter.domain;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class ConfigFileDataTest {
+
+    @Autowired
+    ConfigFileData configFileData = new ConfigFileData();
+    @Test
+    public void test() {
+        configFileData.setXmlContent("xmlContent");
+        configFileData.setXmlFileName("xmlFileName");
+        
+        assertEquals(configFileData.getXmlContent(), "xmlContent");
+        assertEquals(configFileData.getXmlFileName(), "xmlFileName");
+    }
+
+}
diff --git a/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/mappingconfig/EntryTest.java b/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/mappingconfig/EntryTest.java
new file mode 100644 (file)
index 0000000..d72892b
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : DCAE
+* ================================================================================
+* Copyright 2018 TechMahindra
+*=================================================================================
+* 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.universalvesadapter.mappingconfig;
+
+import static org.junit.Assert.*;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.junit.Test;
+import org.mockito.Mock;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class EntryTest {
+
+    @Autowired
+    Entry entry = new Entry();
+    @Mock
+    Evaluation evaluation = new Evaluation();
+    Object value = new Object();
+    Map<String, Object> additionalProperties = new HashMap<String, Object>();
+    
+    @Test
+    public void test() {
+        entry.setPriority(1);
+        entry.setEvaluation(evaluation);
+        entry.setResult("result");
+        entry.setAdditionalProperty("name", value);
+        
+        additionalProperties.put("name", value);
+        assertEquals(entry.getEvaluation(), evaluation);
+        assertEquals(entry.getPriority(), new Integer(1));
+        assertEquals(entry.getResult(),"result");
+        assertEquals(entry.getAdditionalProperties(), additionalProperties);
+        assert (entry.toString() != null);
+        assert (entry.hashCode() != 0);
+        
+        assert (entry.equals(entry));
+        
+    }
+
+}
diff --git a/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/mappingconfig/EvaluationTest.java b/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/mappingconfig/EvaluationTest.java
new file mode 100644 (file)
index 0000000..a3b9db6
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : DCAE
+* ================================================================================
+* Copyright 2018 TechMahindra
+*=================================================================================
+* 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.universalvesadapter.mappingconfig;
+
+import static org.junit.Assert.*;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class EvaluationTest {
+    
+    @Autowired
+    Evaluation evaluation =new Evaluation();
+    Evaluation lhs =new Evaluation();
+    Evaluation rhs =new Evaluation();
+    Object value = new Object();
+    Map<String, Object> additionalProperties = new HashMap<String, Object>();
+
+    @Test
+    public void test() {
+        evaluation.setAdditionalProperty("name", value);
+        evaluation.setDatatype("datatype");
+        evaluation.setField("field");
+        evaluation.setLhs(lhs);
+        evaluation.setOperand("operand");
+        evaluation.setRhs(rhs);
+        evaluation.setValue("value");
+        additionalProperties.put("name", value);
+        
+        assertEquals(evaluation.getAdditionalProperties(), additionalProperties);
+        assertEquals(evaluation.getDatatype(),"datatype");
+        assertEquals(evaluation.getField(),"field");
+        assertEquals(evaluation.getLhs(),lhs);
+        assertEquals(evaluation.getOperand(),"operand");
+        assertEquals(evaluation.getRhs(),rhs);
+        assertEquals(evaluation.getValue(),"value");
+        
+        assert (evaluation.toString() != null);
+        assert (evaluation.hashCode() != 0);
+        
+        assert (evaluation.equals(evaluation));
+        assertEquals(evaluation.equals(value),false);
+        assertEquals(evaluation.equals(null),false);
+        
+        
+        
+        
+    }
+
+}
diff --git a/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/mappingconfig/MapperConfigTest.java b/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/mappingconfig/MapperConfigTest.java
new file mode 100644 (file)
index 0000000..474ba05
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : DCAE
+* ================================================================================
+* Copyright 2018 TechMahindra
+*=================================================================================
+* 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.universalvesadapter.mappingconfig;
+
+import static org.junit.Assert.*;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class MapperConfigTest {
+    
+    @Autowired
+    MapperConfig mapperConfig = new MapperConfig();
+    Map<String, Object> additionalProperties = new HashMap<String, Object>();
+    Object value = new Object();
+    Set<Entry> entries = null;
+
+    @Test
+    public void test() {
+        mapperConfig.setAdditionalProperty("name", value);
+        mapperConfig.setEntries(entries);
+        additionalProperties.put("name", value);
+        
+        assertEquals(mapperConfig.getAdditionalProperties(),additionalProperties);
+        assertEquals(mapperConfig.getEntries(),entries);
+        assert (mapperConfig.toString() != null);
+        assert (mapperConfig.hashCode() != 0);
+        
+        assert (mapperConfig.equals(mapperConfig));
+        
+    }
+
+}
diff --git a/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/service/AdapterServiceTest.java b/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/service/AdapterServiceTest.java
new file mode 100644 (file)
index 0000000..4bdc7b5
--- /dev/null
@@ -0,0 +1,91 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : DCAE
+* ================================================================================
+* Copyright 2018 TechMahindra
+*=================================================================================
+* 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.universalvesadapter.service;
+
+import static org.junit.Assert.*;
+
+import java.io.FileReader;
+import java.io.IOException;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.onap.universalvesadapter.Application;
+import org.onap.universalvesadapter.exception.MapperConfigException;
+import org.onap.universalvesadapter.service.AdapterService;
+import org.onap.universalvesadapter.utils.MapperConfigUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.util.FileCopyUtils;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes=Application.class)
+public class AdapterServiceTest {
+
+    private final Logger eLOGGER = LoggerFactory.getLogger(this.getClass());
+    
+    @Autowired
+    private AdapterService adapterService;
+    
+    @Value("${mapperConfig.file}")
+    private String mapperConfigFile;    
+    
+    @Test
+    public void identifyEventTypeFromIncomingJson() {
+        
+        String inputJsonString = "{ "
+                + "\"protocol version\":\"v2c\", "
+                + "\"notify OID\":\".1.3.6.1.4.1.74.2.46.12.1.1AAA\", "
+                + "\"cambria.partition\":\"dcae-snmp.client.research.att.com\", "
+                + "\"trap category\":\"UCSNMP-HEARTBEAT\", "
+                + "\"epoch_serno\": 15161177410000, "
+                + "\"community\":\"public\", "
+                + "\"time received\": 1516117741, "
+                + "\"agent name\":\"localhost\", "
+                + "\"agent address\":\"127.0.0.1\", "
+                + "\"community len\": 6, "
+                + "\"notify OID len\": 12, "
+                + "\"varbinds\": [{ "
+                + "    \"varbind_type\":\"octet\", "
+                + "    \"varbind_oid\":\".1.3.6.1.4.1.74.2.46.12.1.1.1\", "
+                + "    \"varbind_value\":\"ucsnmp heartbeat - ignore\" "
+                + " }, { "
+                + "    \"varbind_type\":\"octet\", "
+                + "    \"varbind_oid\":\".1.3.6.1.4.1.74.2.46.12.1.1.2\", "
+                + "    \"varbind_value\":\"Tue Jan 16 10:49:01 EST 2018\" "
+                + " }] "
+                + "}";
+        
+        String domain = "";
+        try {
+            String mappingConfigFileData = FileCopyUtils.copyToString(new FileReader(mapperConfigFile));
+            MapperConfigUtils.readMapperConfigFile(mappingConfigFileData);
+            domain = adapterService.identifyEventTypeFromIncomingJson(inputJsonString);
+        } catch (MapperConfigException | IOException exception) {
+            eLOGGER.error("Error occurred : ", exception );
+        }
+        
+        assertEquals("snmp", domain);
+    }
+
+}*/
diff --git a/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/service/ConfigFileServiceTest.java b/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/service/ConfigFileServiceTest.java
new file mode 100644 (file)
index 0000000..0c7ff37
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : DCAE
+* ================================================================================
+* Copyright 2018 TechMahindra
+*=================================================================================
+* 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.universalvesadapter.service;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+public class ConfigFileServiceTest {
+
+    @Test
+    public void test() {
+        fail("Not yet implemented");
+    }
+
+}
+*/
\ No newline at end of file
diff --git a/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/service/DMaapServiceTest.java b/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/service/DMaapServiceTest.java
new file mode 100644 (file)
index 0000000..7490dda
--- /dev/null
@@ -0,0 +1,143 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : DCAE
+* ================================================================================
+* Copyright 2018 TechMahindra
+*=================================================================================
+* 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.universalvesadapter.service;
+
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.when;
+
+import java.io.IOException;
+import java.util.Arrays;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+import org.mockito.stubbing.OngoingStubbing;
+import org.onap.universalvesadapter.Application;
+import org.onap.universalvesadapter.exception.DMaapException;
+import org.onap.universalvesadapter.service.DMaapService;
+import org.onap.universalvesadapter.service.DiskRepoConfigFileService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import com.att.nsa.mr.client.MRBatchingPublisher;
+import com.att.nsa.mr.client.MRConsumer;
+
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = Application.class)
+public class DMaapServiceTest {
+
+    @Autowired
+    @InjectMocks
+    DMaapService dmaapService;
+    
+    @Mock
+    private MRConsumer consumer; 
+    
+    @Mock    
+    private MRBatchingPublisher publisher;
+    
+    private final Logger eLOGGER = LoggerFactory.getLogger(this.getClass());    
+    
+    @Before
+    public void init() {
+        MockitoAnnotations.initMocks(this);
+    }    
+    
+    
+    
+    @Test
+    public void testConsumeFromDMaap() {
+        String[] iter = {"this ", "is ", "just ", "a ", "test"};
+        try {
+            Mockito.when(consumer.fetch()).thenReturn(Arrays.asList(iter));
+        } catch (IOException e) {
+            eLOGGER.error("Error occurred : " + e.getMessage());
+        } catch (Exception e) {
+            eLOGGER.error("Error occurred : " + e.getMessage());
+        }
+
+        StringBuffer sb = new StringBuffer("");
+        try {
+            for (String string : dmaapService.consumeFromDMaap()) {
+                sb.append(string);
+            }
+        } catch (DMaapException e) {
+            eLOGGER.error("Error occurred : " + e.getMessage());
+        }
+        
+        assertEquals("this is just a test", sb.toString());
+        
+    }
+
+    @Test
+    public void testPublishToDMaap() {
+        
+        dmaapService.addMessageInOutgoingQueue("test");
+        
+        ArgumentCaptor<?> valueCapture = ArgumentCaptor.forClass(String.class);
+        try {
+            int toBeReturned = 1;
+            doReturn(toBeReturned).when(publisher).send((String) valueCapture.capture());
+        } catch (IOException e) {
+            eLOGGER.error("Error occurred : " + e.getMessage());
+        }
+        try {
+            dmaapService.publishToDMaap();
+        } catch (DMaapException e) {
+            eLOGGER.error("Error occurred : " + e.getMessage());
+        }
+        assertEquals("test", valueCapture.getValue());
+        
+    }
+
+    @Test
+    public void testPublishToDMaapString() {
+        ArgumentCaptor<?> valueCapture = ArgumentCaptor.forClass(String.class);
+        try {
+            int toBeReturned = 1;
+            doReturn(toBeReturned).when(publisher).send((String) valueCapture.capture());
+        } catch (IOException e) {
+            eLOGGER.error("Error occurred : " + e.getMessage());
+        }
+        try {
+            dmaapService.publishToDMaap("test");
+        } catch (DMaapException e) {
+            eLOGGER.error("Error occurred : " + e.getMessage());
+        }
+        assertEquals("test", valueCapture.getValue());        
+        
+    }
+
+}
+
+*/
\ No newline at end of file
diff --git a/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/service/DiskRepoConfigFileServiceTest.java b/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/service/DiskRepoConfigFileServiceTest.java
new file mode 100644 (file)
index 0000000..93c9e2f
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : DCAE
+* ================================================================================
+* Copyright 2018 TechMahindra
+*=================================================================================
+* 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.universalvesadapter.service;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.when;
+
+import java.net.URI;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Matchers;
+import org.onap.universalvesadapter.Application;
+import org.onap.universalvesadapter.exception.ConfigFileReadException;
+import org.onap.universalvesadapter.service.DiskRepoConfigFileService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.web.client.RestTemplate;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = Application.class)
+public class DiskRepoConfigFileServiceTest {
+
+    @Autowired
+    DiskRepoConfigFileService diskRepoConfigFileService;
+    
+    private final Logger eLOGGER = LoggerFactory.getLogger(this.getClass());
+    
+    @Test
+    public void testReadConfigFile() {
+        
+        String result = "test file";
+        
+        
+        try {
+            String readConfigFile = diskRepoConfigFileService.readConfigFile("testCase.xml");
+            assertEquals(result, readConfigFile);
+        } catch (ConfigFileReadException exception) {
+            eLOGGER.error("Error occurred : ", exception );
+        }
+        
+    }
+
+}*/
diff --git a/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/service/MongoDbConfigFileServiceTest.java b/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/service/MongoDbConfigFileServiceTest.java
new file mode 100644 (file)
index 0000000..ba70f05
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : DCAE
+* ================================================================================
+* Copyright 2018 TechMahindra
+*=================================================================================
+* 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.universalvesadapter.service;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.onap.universalvesadapter.Application;
+import org.onap.universalvesadapter.service.MongoDbConfigFileService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+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=Application.class)
+public class MongoDbConfigFileServiceTest {
+
+
+    private final Logger eLOGGER = LoggerFactory.getLogger(this.getClass());    
+    
+    
+    @Autowired
+    private MongoDbConfigFileService mongoDbConfigFileService;
+    
+    @Test
+    public void testReadConfigFile() {
+        String configContent = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> "
+                + "<smooks-resource-list   xmlns=\"http://www.milyn.org/xsd/smooks-1.1.xsd\"   "
+                + "xmlns:json=\"http://www.milyn.org/xsd/smooks/json-1.1.xsd\"    "
+                + " xmlns:jb=\"http://www.milyn.org/xsd/smooks/javabean-1.2.xsd\">     "
+                + "     <json:reader rootName=\"simple\"  keyWhitspaceReplacement=\"-\">    "
+                + "     </json:reader>     "
+                + "</smooks-resource-list>";
+        
+        assertEquals(configContent, mongoDbConfigFileService.readConfigFile("sample.xml"));
+    }
+
+}
+*/
\ No newline at end of file
diff --git a/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/service/VesServiceTest.java b/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/service/VesServiceTest.java
new file mode 100644 (file)
index 0000000..bc71834
--- /dev/null
@@ -0,0 +1,143 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : DCAE
+* ================================================================================
+* Copyright 2018 TechMahindra
+*=================================================================================
+* 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.universalvesadapter.service;
+
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
+
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.Collections;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.onap.universalvesadapter.Application;
+import org.onap.universalvesadapter.exception.DMaapException;
+import org.onap.universalvesadapter.service.DMaapService;
+import org.onap.universalvesadapter.service.VesService;
+import org.onap.universalvesadapter.utils.ParallelTasks;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import com.att.nsa.mr.client.MRConsumer;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = Application.class)
+public class VesServiceTest {
+
+    @InjectMocks
+    @Autowired
+    private VesService vesService;
+    
+    @Mock
+    private DMaapService dmaapService;
+    
+    private final Logger eLOGGER = LoggerFactory.getLogger(this.getClass());    
+    
+    @Before
+    public void init() {
+        MockitoAnnotations.initMocks(this);
+    } 
+    
+    
+    @Test
+    public void testStart() {
+        
+        String[] incomingMessages = {"{ "
+                + " \"protocol version \": \"v2c \", "
+                + " \"notify OID \": \".1.3.6.1.4.1.74.2.46.12.1.1AAA \", "
+                + " \"cambria.partition \": \"dcae-snmp.client.research.att.com \", "
+                + " \"trap category \": \"UCSNMP-HEARTBEAT \", "
+                + " \"epoch_serno \": 15161177410000, "
+                + " \"community \": \"public \", "
+                + " \"time received \": 1516117741, "
+                + " \"agent name \": \"localhost \", "
+                + " \"agent address \": \"127.0.0.1 \", "
+                + " \"community len \": 6, "
+                + " \"notify OID len \": 12, "
+                + " \"varbinds \": [{ "
+                + "     \"varbind_type \": \"octet \", "
+                + "     \"varbind_oid \": \".1.3.6.1.4.1.74.2.46.12.1.1.1 \", "
+                + "     \"varbind_value \": \"ucsnmp heartbeat - ignore \" "
+                + " }, { "
+                + "     \"varbind_type \": \"octet \", "
+                + "     \"varbind_oid \": \".1.3.6.1.4.1.74.2.46.12.1.1.2 \", "
+                + "     \"varbind_value \": \"Tue Jan 16 10:49:01 EST 2018 \" "
+                + " }] "
+                + "}"};
+        try {
+            Mockito.when(dmaapService.consumeFromDMaap()).thenReturn(Arrays.asList(incomingMessages)).thenReturn(() -> Collections.emptyIterator());
+        } catch (Exception e) {
+            eLOGGER.error("Error occurred : " + e.getMessage());
+        }
+        
+        ArgumentCaptor<?> valueCapture = ArgumentCaptor.forClass(String.class);
+        try {
+            doNothing().when(dmaapService).publishToDMaap((String) valueCapture.capture());
+        } catch (DMaapException e) {
+            eLOGGER.error("Error occurred : " + e.getMessage());
+        }
+        
+        
+        new Thread(new Runnable() {
+            
+            @Override
+            public void run() {
+                // TODO Auto-generated method stub
+                vesService.start();
+                
+            }
+        }).start();
+        try {
+            Thread.sleep(5000);
+        } catch (InterruptedException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        new Thread(new Runnable() {
+            
+            @Override
+            public void run() {
+                // TODO Auto-generated method stub
+                vesService.stop();
+                
+            }
+        }).start();
+        String result = "{\"event\":{\"commonEventHeader\":{},\"faultFields\":{},\"measurementsForVfScalingFields\":{\"additionalMeasurements\":[]}}}";
+        assertEquals(result, valueCapture.getValue());
+    }
+
+    @Test
+    public void testStop() {
+        fail("Not yet implemented");
+    }
+
+}
+*/
\ No newline at end of file