diff options
Diffstat (limited to 'ms/neng/src/test')
14 files changed, 348 insertions, 46 deletions
diff --git a/ms/neng/src/test/java/org/onap/ccsdk/apps/ms/neng/core/gen/NameGeneratorExcMissingData.java b/ms/neng/src/test/java/org/onap/ccsdk/apps/ms/neng/core/gen/NameGeneratorExcMissingDataTest.java index 4b1d1eac..d05644b8 100644 --- a/ms/neng/src/test/java/org/onap/ccsdk/apps/ms/neng/core/gen/NameGeneratorExcMissingData.java +++ b/ms/neng/src/test/java/org/onap/ccsdk/apps/ms/neng/core/gen/NameGeneratorExcMissingDataTest.java @@ -44,7 +44,7 @@ import org.onap.ccsdk.apps.ms.neng.core.validator.AaiNameValidator; import org.onap.ccsdk.apps.ms.neng.core.validator.DbNameValidator; @RunWith(MockitoJUnitRunner.class) -public class NameGeneratorExcMissingData { +public class NameGeneratorExcMissingDataTest { @Mock private PolicyParameters policyParams = mock(PolicyParameters.class); @Mock diff --git a/ms/neng/src/test/java/org/onap/ccsdk/apps/ms/neng/core/seq/TestSequenceGenerator.java b/ms/neng/src/test/java/org/onap/ccsdk/apps/ms/neng/core/seq/SequenceGeneratorTest.java index fcee4da0..23bbc7c0 100644 --- a/ms/neng/src/test/java/org/onap/ccsdk/apps/ms/neng/core/seq/TestSequenceGenerator.java +++ b/ms/neng/src/test/java/org/onap/ccsdk/apps/ms/neng/core/seq/SequenceGeneratorTest.java @@ -36,7 +36,7 @@ import org.onap.ccsdk.apps.ms.neng.persistence.repository.ServiceParameterReposi @RunWith(MockitoJUnitRunner.class) -public class TestSequenceGenerator { +public class SequenceGeneratorTest { @Mock private GeneratedNameRespository genNameRepo = mock(GeneratedNameRespository.class); @Mock diff --git a/ms/neng/src/test/java/org/onap/ccsdk/apps/ms/neng/core/service/SpringServiceIntTest.java b/ms/neng/src/test/java/org/onap/ccsdk/apps/ms/neng/core/service/SpringServiceIntTest.java index a1873692..c3815f43 100644 --- a/ms/neng/src/test/java/org/onap/ccsdk/apps/ms/neng/core/service/SpringServiceIntTest.java +++ b/ms/neng/src/test/java/org/onap/ccsdk/apps/ms/neng/core/service/SpringServiceIntTest.java @@ -33,6 +33,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import javax.ws.rs.core.Response; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -195,18 +196,14 @@ public class SpringServiceIntTest { } @Test - public void testRestGetPolicyResponse() throws Exception { - List<Map<String, Object>> policyResponse = - restServiceImpl.getPolicyResponse("JQINSRIOV.Config_MS_SriovBigJson.1.xml"); - assertNotNull(policyResponse); - } - - @Test public void testRestAddPolicyToDb() throws Exception { Map<String, Object> policy = new HashMap<>(); - policy.put("policyName", "policyname"); - policy.put("policyValue", "policyname"); + policy.put("policyName", "JQINSRIOV.Config_MS_SriovBigJson.1.xml"); + policy.put("policyValue", "some policy"); restServiceImpl.addPolicyToDb(policy); + + Response policyResponse = restServiceImpl.getPolicyResponse("JQINSRIOV.Config_MS_SriovBigJson.1.xml"); + assertNotNull(policyResponse); } @Test diff --git a/ms/neng/src/test/resources/application-test.properties b/ms/neng/src/test/resources/application-test.properties index ca8ac129..ae425c38 100644 --- a/ms/neng/src/test/resources/application-test.properties +++ b/ms/neng/src/test/resources/application-test.properties @@ -1,38 +1,13 @@ -info.build.artifact=@project.artifactId@ -info.build.name=@project.name@ -info.build.description=@project.description@ -info.build.version=@project.version@ - -spring.jersey.type=filter - -logging.level.root=info -logging.level.org.glassfish=info -logging.level.org.glassfish.jersey=info - -spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration - -logging.pattern.console=%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr($ threadId: {PID:- }){magenta} %clr(---){faint} %clr([ hostname: %X{hostname} serviceName: %X{serviceName} version: %X{version} transactionId: %X{transactionId} requestTimeStamp: %X{requestTimestamp} responseTimeStamp: %X{responseTimestamp} duration: %X{duration}]){yellow} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wex - -liquibase.changeLog=classpath:/h2db/changelog/h2db.changelog-master.xml -logging.level.liquibase: DEBUG - -spring.jersey.type=filter -spring.mvc.urls=swagger,docs,prometheus,auditevents,info,heapdump,autoconfig,beans,loggers,dump,env,trace,health,configprops,mappings - -server.contextPath=/web - -spring.datasource.driver-class-name=org.h2.Driver -spring.datasource.username=sa -spring.datasource.password=sa -spring.jpa.hibernate.ddl-auto=none -spring.jpa.show-sql=true -spring.datasource.url=jdbc:h2:mem:tests;DB_CLOSE_DELAY=-1; +#========================================================================= +# +# Configuration for the test profile, which is used to run integration +# tests of the application, normally in your IDE. +# +#========================================================================= datasource.db.driver-class-name=org.h2.Driver datasource.db.url=jdbc:h2:mem:tests;DB_CLOSE_DELAY=-1; -datasource.db.username=sa -datasource.db.password=sa -jpa.hibernate.ddl-auto=none -jpa.show-sql=true +datasource.db.username=none +datasource.db.password=none -entitymanager.packagesToScan=org.onap.ccsdk.apps.ms.neng.persistence.entity +liquibase.changeLog=classpath:/h2db/changelog/h2db.changelog-master.xml diff --git a/ms/neng/src/test/resources/h2db/changelog/h2db.changelog-master.xml b/ms/neng/src/test/resources/h2db/changelog/h2db.changelog-master.xml index 496a2e9d..2826e4d4 100644 --- a/ms/neng/src/test/resources/h2db/changelog/h2db.changelog-master.xml +++ b/ms/neng/src/test/resources/h2db/changelog/h2db.changelog-master.xml @@ -1,5 +1,23 @@ <?xml version="1.0" encoding="UTF-8"?> - + <!-- + * ============LICENSE_START======================================================= + * ONAP : CCSDK.apps + * ================================================================================ + * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + --> <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" diff --git a/ms/neng/src/test/sanity/README.txt b/ms/neng/src/test/sanity/README.txt new file mode 100644 index 00000000..b98414f8 --- /dev/null +++ b/ms/neng/src/test/sanity/README.txt @@ -0,0 +1,6 @@ +To run the sanity test, do the following: + + With no DB: + bring up the app with the 'dbless' profile. + Run from shell: + ./suite.sh diff --git a/ms/neng/src/test/sanity/add-policy.sh b/ms/neng/src/test/sanity/add-policy.sh new file mode 100644 index 00000000..108d0d48 --- /dev/null +++ b/ms/neng/src/test/sanity/add-policy.sh @@ -0,0 +1,46 @@ +#!/bin/bash +#============LICENSE_START======================================================= +# ONAP : CCSDK.apps +# ================================================================================ +# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#============LICENSE_END========================================================= + +#================================================================================== +# This script does a sanity test on the add-policy API of the micro-service. +#================================================================================== + +. ./env.sh +URL=web/service/v1/addPolicy +TEMP_FILE=/tmp/add-policy.$$.$RANDOM +EXTERNAL_KEY=${1:-123456789} + +printf '{ ' > $TEMP_FILE +printf '"policyName": "sanity-policy-' >> $TEMP_FILE +printf $EXTERNAL_KEY >> $TEMP_FILE +printf '", "policyValue" : "' >> $TEMP_FILE +cat ./policy-1.json | sed 's/\"/\\\"/g' | tr '\n' ' ' | tr '\r' ' ' >> $TEMP_FILE +echo '"}' >> $TEMP_FILE + +echo "===================================================" +echo "====== Adding Policy: ===========================" +cat $TEMP_FILE +echo "" +echo "===================================================" + +echo "===================================================" +curl -vi -H "Content-Type: application/json" --data @$TEMP_FILE $PROTOCOL://$HOST:$PORT/$URL +echo "===================================================" + +rm -f $TEMP_FILE diff --git a/ms/neng/src/test/sanity/env.sh b/ms/neng/src/test/sanity/env.sh new file mode 100644 index 00000000..8685bcf8 --- /dev/null +++ b/ms/neng/src/test/sanity/env.sh @@ -0,0 +1,26 @@ +#!/bin/bash +#============LICENSE_START======================================================= +# ONAP : CCSDK.apps +# ================================================================================ +# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#============LICENSE_END========================================================= + +#================================================================================== +# Sets up environment for testing. +#================================================================================== + +PORT=8080 +HOST=localhost +PROTOCOL=http diff --git a/ms/neng/src/test/sanity/gen-name.sh b/ms/neng/src/test/sanity/gen-name.sh new file mode 100644 index 00000000..fb106eda --- /dev/null +++ b/ms/neng/src/test/sanity/gen-name.sh @@ -0,0 +1,52 @@ +#!/bin/bash +#============LICENSE_START======================================================= +# ONAP : CCSDK.apps +# ================================================================================ +# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#============LICENSE_END========================================================= + +#================================================================================== +# This script does a sanity test on the generate-name API of this micro-service. +#================================================================================== + +. ./env.sh +URL=web/service/v1/genNetworkElementName +TEMP_FILE=/tmp/gen-name.$$.$RANDOM +EXTERNAL_KEY=${2:-123456789} + +USE_DB=${1:-'Y'} +USE_DB_BOOL=$([ "$USE_DB" == "Y" ] && echo "true" || echo "false") + +printf '{ "UseDb": "' > $TEMP_FILE +printf $USE_DB_BOOL >> $TEMP_FILE +printf '", "elements": [ { "external-key": "sanity-' >> $TEMP_FILE +printf $EXTERNAL_KEY >> $TEMP_FILE +printf '", "policy-instance-name": "sanity-policy-' >> $TEMP_FILE +printf $EXTERNAL_KEY >> $TEMP_FILE +printf '", "NF_NAMING_CODE": "helloname", ' >> $TEMP_FILE +printf '"resource-name": "sanity-1", "naming-type": "sanity-1" } ] }' >> $TEMP_FILE + +echo "===================================================" +echo "======== Generating name with request: ============" +cat $TEMP_FILE +echo "" +echo "===================================================" + +echo "===================================================" +curl -vi -H "Content-Type: application/json" --data @$TEMP_FILE $PROTOCOL://$HOST:$PORT/$URL +echo "===================================================" + +rm -f $TEMP_FILE + diff --git a/ms/neng/src/test/sanity/get-policy.sh b/ms/neng/src/test/sanity/get-policy.sh new file mode 100644 index 00000000..5c7136b6 --- /dev/null +++ b/ms/neng/src/test/sanity/get-policy.sh @@ -0,0 +1,32 @@ +#!/bin/bash +#============LICENSE_START======================================================= +# ONAP : CCSDK.apps +# ================================================================================ +# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#============LICENSE_END========================================================= + +#================================================================================== +# This script does a sanity test on the get-policy API of this micro-service. +# +#================================================================================== + +. ./env.sh +URL=web/service/v1/getpolicyresponse +EXTERNAL_KEY=${1:-123456789} + +echo "===================================================" +echo "====== Finding Policy: ===========================" +curl -vi $PROTOCOL://$HOST:$PORT/$URL?policyName=sanity-policy-$EXTERNAL_KEY +echo "===================================================" diff --git a/ms/neng/src/test/sanity/hello.sh b/ms/neng/src/test/sanity/hello.sh new file mode 100644 index 00000000..baa5b703 --- /dev/null +++ b/ms/neng/src/test/sanity/hello.sh @@ -0,0 +1,38 @@ +#!/bin/bash +#============LICENSE_START======================================================= +# ONAP : CCSDK.apps +# ================================================================================ +# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#============LICENSE_END========================================================= + +#================================================================================== +# This script does a sanity test on the micro-service, by sending the 'hello' message. +# +#================================================================================== +. ./env.sh +URL=web/service/hello + +echo "===================================================" +echo "===================================================" +echo 'This should show {"message":"Hello world!"}' +echo "===================================================" +curl -vi $PROTOCOL://$HOST:$PORT/$URL + +echo "===================================================" +echo "===================================================" +echo 'This should show {"message":"Hello you!"}' +echo "===================================================" +curl -vi $PROTOCOL://$HOST:$PORT/$URL?name=you +echo "===================================================" diff --git a/ms/neng/src/test/sanity/policy-1.json b/ms/neng/src/test/sanity/policy-1.json new file mode 100644 index 00000000..e85bc790 --- /dev/null +++ b/ms/neng/src/test/sanity/policy-1.json @@ -0,0 +1,32 @@ +[ + { + "config": { + "content": { + "naming-models":[ + { + "naming-properties":[ + { "property-name" : "COMPLEX", "property-operation" : "substr(5)" }, + { "property-name" : "SEQUENCE", "increment-sequence":{ + "max" : "zzz" , "scope" : "ENTIRETY" , "start-value" : "001" , "length" : "3", + "increment" : "1" , "sequence-type" : "alpha-numeric"} + }, + {"property-name" : "NF_NAMING_CODE"} + ], + "naming-type" : "VNF", + "nfRole" : "vPE", + "naming-recipe" : "COMPLEX|SEQUENCE|NF_NAMING_CODE" + }, + { + "naming-properties":[ + {"property-name" : "NF_NAMING_CODE"} + ], + "naming-type" : "sanity-1", + "nfRole" : "sanity-1", + "naming-recipe" : "NF_NAMING_CODE" + } + ] + } + }, + "policyName": "sanity-policy-1" + } +] diff --git a/ms/neng/src/test/sanity/release-name.sh b/ms/neng/src/test/sanity/release-name.sh new file mode 100644 index 00000000..2a6d16df --- /dev/null +++ b/ms/neng/src/test/sanity/release-name.sh @@ -0,0 +1,49 @@ +#!/bin/bash +#============LICENSE_START======================================================= +# ONAP : CCSDK.apps +# ================================================================================ +# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#============LICENSE_END========================================================= + +#================================================================================== +# This script does a sanity test on the release-name API of this micro-service. +#================================================================================== + +. ./env.sh +URL=web/service/v1/genNetworkElementName +TEMP_FILE=/tmp/gen-name.$$.$RANDOM +EXTERNAL_KEY=${2:-123456789} + +USE_DB=${1:-'Y'} +USE_DB_BOOL=$([ "$USE_DB" == "Y" ] && echo "true" || echo "false") + +printf '{ "UseDb": "' > $TEMP_FILE +printf $USE_DB_BOOL >> $TEMP_FILE +printf '", "elements": [ { "external-key": "sanity-' >> $TEMP_FILE +printf $EXTERNAL_KEY >> $TEMP_FILE +printf '", "resource-name": "sanity-1" } ] }' >> $TEMP_FILE + +echo "===================================================" +echo "======= Releasing name with request: ==============" +cat $TEMP_FILE +echo "" +echo "===================================================" + +echo "===================================================" +curl -vi -X "DELETE" -H "Content-Type: application/json" --data @$TEMP_FILE $PROTOCOL://$HOST:$PORT/$URL +echo "===================================================" + +rm -f $TEMP_FILE + diff --git a/ms/neng/src/test/sanity/suite.sh b/ms/neng/src/test/sanity/suite.sh new file mode 100644 index 00000000..79d5b414 --- /dev/null +++ b/ms/neng/src/test/sanity/suite.sh @@ -0,0 +1,31 @@ +#!/bin/bash +#============LICENSE_START======================================================= +# ONAP : CCSDK.apps +# ================================================================================ +# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#============LICENSE_END========================================================= + +#================================================================================== +# This script does a sanity test on the APIs of the micro-service. +#================================================================================== + +EXTERNAL_KEY=$(date +%s)$RANDOM + +./hello.sh +./add-policy.sh $EXTERNAL_KEY +./get-policy.sh $EXTERNAL_KEY +./gen-name.sh Y $EXTERNAL_KEY +./release-name.sh Y $EXTERNAL_KEY + |