From 8297bd0760ff3c46ef36d5a6408a757cf36097fe Mon Sep 17 00:00:00 2001 From: Pooja03 Date: Tue, 27 Mar 2018 19:44:23 +0530 Subject: Added UniversalVesAdapter TestCases in the Mapper Adding UniversalVesAdapter TestCases in Mapper Change-Id: I68023d84ada0104ecf46a74e129e104a398543ea Issue-ID: DCAEGEN2-335 Signed-off-by: Pooja03 --- .../exception/ConfigFileReadException.java | 8 +- .../ConfigFileSmooksConversionException.java | 6 +- .../exception/DMaapException.java | 5 +- .../exception/MapperConfigException.java | 12 +- .../exception/VesException.java | 4 + .../service/AdapterService.java | 28 ++- .../service/ConfigFileService.java | 22 +- .../universalvesadapter/service/DMaapService.java | 261 ++++++++++++++------- .../service/DiskRepoConfigFileService.java | 72 +++--- .../service/MongoDbConfigFileService.java | 10 +- .../universalvesadapter/service/VesService.java | 197 ++++++++++------ .../dcaegen2/ves/domain/AdditionalFieldTest.java | 51 ++++ .../ves/domain/AlarmAdditionalInformationTest.java | 55 +++++ .../dcaegen2/ves/domain/ArrayOfField_Test.java | 52 ++++ .../dcaegen2/ves/domain/CommonEventHeaderTest.java | 89 +++++++ .../org/onap/dcaegen2/ves/domain/EventTest.java | 56 +++++ .../onap/dcaegen2/ves/domain/FaultFieldsTest.java | 73 ++++++ .../dcaegen2/ves/domain/HeartbeatFieldsTest.java | 63 +++++ .../ves/domain/InternalHeaderFieldsTest.java | 48 ++++ .../org/onap/dcaegen2/ves/domain/VesEventTest.java | 51 ++++ .../controller/VesControllerTest.java | 66 ++++++ .../domain/ConfigFileDataTest.java | 40 ++++ .../mappingconfig/EntryTest.java | 59 +++++ .../mappingconfig/EvaluationTest.java | 70 ++++++ .../mappingconfig/MapperConfigTest.java | 54 +++++ .../service/AdapterServiceTest.java | 91 +++++++ .../service/ConfigFileServiceTest.java | 34 +++ .../service/DMaapServiceTest.java | 143 +++++++++++ .../service/DiskRepoConfigFileServiceTest.java | 67 ++++++ .../service/MongoDbConfigFileServiceTest.java | 59 +++++ .../service/VesServiceTest.java | 143 +++++++++++ 31 files changed, 1764 insertions(+), 225 deletions(-) create mode 100644 UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/AdditionalFieldTest.java create mode 100644 UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/AlarmAdditionalInformationTest.java create mode 100644 UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/ArrayOfField_Test.java create mode 100644 UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/CommonEventHeaderTest.java create mode 100644 UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/EventTest.java create mode 100644 UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/FaultFieldsTest.java create mode 100644 UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/HeartbeatFieldsTest.java create mode 100644 UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/InternalHeaderFieldsTest.java create mode 100644 UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/VesEventTest.java create mode 100644 UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/controller/VesControllerTest.java create mode 100644 UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/domain/ConfigFileDataTest.java create mode 100644 UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/mappingconfig/EntryTest.java create mode 100644 UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/mappingconfig/EvaluationTest.java create mode 100644 UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/mappingconfig/MapperConfigTest.java create mode 100644 UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/service/AdapterServiceTest.java create mode 100644 UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/service/ConfigFileServiceTest.java create mode 100644 UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/service/DMaapServiceTest.java create mode 100644 UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/service/DiskRepoConfigFileServiceTest.java create mode 100644 UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/service/MongoDbConfigFileServiceTest.java create mode 100644 UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/service/VesServiceTest.java (limited to 'UniversalVesAdapter/src') diff --git a/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/exception/ConfigFileReadException.java b/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/exception/ConfigFileReadException.java index 3a64247..625b021 100644 --- a/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/exception/ConfigFileReadException.java +++ b/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/exception/ConfigFileReadException.java @@ -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); + } + + } diff --git a/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/exception/ConfigFileSmooksConversionException.java b/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/exception/ConfigFileSmooksConversionException.java index 1daa939..7055bc0 100644 --- a/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/exception/ConfigFileSmooksConversionException.java +++ b/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/exception/ConfigFileSmooksConversionException.java @@ -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); + } } diff --git a/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/exception/DMaapException.java b/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/exception/DMaapException.java index 5af0205..7a35f83 100644 --- a/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/exception/DMaapException.java +++ b/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/exception/DMaapException.java @@ -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); + } } diff --git a/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/exception/MapperConfigException.java b/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/exception/MapperConfigException.java index a8414d8..3dfa034 100644 --- a/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/exception/MapperConfigException.java +++ b/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/exception/MapperConfigException.java @@ -19,15 +19,13 @@ */ 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); } } diff --git a/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/exception/VesException.java b/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/exception/VesException.java index 31134c8..fd11b89 100644 --- a/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/exception/VesException.java +++ b/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/exception/VesException.java @@ -37,4 +37,8 @@ public class VesException extends Exception { public VesException(String string) { super(string); } + + public VesException(String string, Exception exception) { + super(string, exception); + } } diff --git a/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/service/AdapterService.java b/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/service/AdapterService.java index 14c5a83..1e6006a 100644 --- a/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/service/AdapterService.java +++ b/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/service/AdapterService.java @@ -17,16 +17,17 @@ * 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); } } diff --git a/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/service/ConfigFileService.java b/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/service/ConfigFileService.java index 09e2592..bf45a1b 100644 --- a/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/service/ConfigFileService.java +++ b/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/service/ConfigFileService.java @@ -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; + } diff --git a/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/service/DMaapService.java b/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/service/DMaapService.java index 0b318eb..e463a28 100644 --- a/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/service/DMaapService.java +++ b/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/service/DMaapService.java @@ -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 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 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 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 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 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> header = urlcon.getHeaderFields(); + + //print all the fields along with their value. + for (Map.Entry> 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> header = urlcon.getHeaderFields(); - - //print all the fields along with their value. - for (Map.Entry> 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(); - } - - - - - - - + + + } diff --git a/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/service/DiskRepoConfigFileService.java b/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/service/DiskRepoConfigFileService.java index c2a30f0..7c05ced 100644 --- a/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/service/DiskRepoConfigFileService.java +++ b/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/service/DiskRepoConfigFileService.java @@ -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 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 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; + } } diff --git a/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/service/MongoDbConfigFileService.java b/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/service/MongoDbConfigFileService.java index bab304a..77769f5 100644 --- a/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/service/MongoDbConfigFileService.java +++ b/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/service/MongoDbConfigFileService.java @@ -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(" "); + configFileData.setXmlFileName(configFileName); + configFileData.setXmlContent(" " + + " " + + " " + + " " + + ""); return configFileData.getXmlContent(); } diff --git a/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/service/VesService.java b/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/service/VesService.java index 81cb4b8..112d1d6 100644 --- a/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/service/VesService.java +++ b/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/service/VesService.java @@ -19,16 +19,28 @@ */ 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 index 0000000..c7ba7e0 --- /dev/null +++ b/UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/AdditionalFieldTest.java @@ -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 map = new HashMap(); + + @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 index 0000000..a481729 --- /dev/null +++ b/UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/AlarmAdditionalInformationTest.java @@ -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 map = new HashMap(); + + + + @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 index 0000000..a4cd280 --- /dev/null +++ b/UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/ArrayOfField_Test.java @@ -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 map = new HashMap(); + + + + @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 index 0000000..b015d63 --- /dev/null +++ b/UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/CommonEventHeaderTest.java @@ -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 map = new HashMap(); + @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 index 0000000..192abfb --- /dev/null +++ b/UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/EventTest.java @@ -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 index 0000000..b77480c --- /dev/null +++ b/UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/FaultFieldsTest.java @@ -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; + Map a = new HashMap(); + @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 index 0000000..3695281 --- /dev/null +++ b/UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/HeartbeatFieldsTest.java @@ -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 additionalFields = null; + @Mock + AdditionalField field = new AdditionalField(); + + Map a = new HashMap(); + @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 index 0000000..c644ba1 --- /dev/null +++ b/UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/InternalHeaderFieldsTest.java @@ -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 additionalProperties = new HashMap(); + @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 index 0000000..97333ba --- /dev/null +++ b/UniversalVesAdapter/src/test/java/org/onap/dcaegen2/ves/domain/VesEventTest.java @@ -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 additionalProperties = new HashMap(); + @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 index 0000000..786c22c --- /dev/null +++ b/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/controller/VesControllerTest.java @@ -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 index 0000000..9f51cae --- /dev/null +++ b/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/domain/ConfigFileDataTest.java @@ -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 index 0000000..d72892b --- /dev/null +++ b/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/mappingconfig/EntryTest.java @@ -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 additionalProperties = new HashMap(); + + @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 index 0000000..a3b9db6 --- /dev/null +++ b/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/mappingconfig/EvaluationTest.java @@ -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 additionalProperties = new HashMap(); + + @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 index 0000000..474ba05 --- /dev/null +++ b/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/mappingconfig/MapperConfigTest.java @@ -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 additionalProperties = new HashMap(); + Object value = new Object(); + Set 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 index 0000000..4bdc7b5 --- /dev/null +++ b/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/service/AdapterServiceTest.java @@ -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 index 0000000..0c7ff37 --- /dev/null +++ b/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/service/ConfigFileServiceTest.java @@ -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 index 0000000..7490dda --- /dev/null +++ b/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/service/DMaapServiceTest.java @@ -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 index 0000000..93c9e2f --- /dev/null +++ b/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/service/DiskRepoConfigFileServiceTest.java @@ -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 index 0000000..ba70f05 --- /dev/null +++ b/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/service/MongoDbConfigFileServiceTest.java @@ -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 = " " + + " " + + " " + + " " + + ""; + + 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 index 0000000..bc71834 --- /dev/null +++ b/UniversalVesAdapter/src/test/java/org/onap/universalvesadapter/service/VesServiceTest.java @@ -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 -- cgit 1.2.3-korg