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
similarity index 99%
rename from ms/neng/src/test/java/org/onap/ccsdk/apps/ms/neng/core/gen/NameGeneratorExcMissingData.java
rename to ms/neng/src/test/java/org/onap/ccsdk/apps/ms/neng/core/gen/NameGeneratorExcMissingDataTest.java
index 4b1d1ea..d05644b 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.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
similarity index 98%
rename from ms/neng/src/test/java/org/onap/ccsdk/apps/ms/neng/core/seq/TestSequenceGenerator.java
rename to ms/neng/src/test/java/org/onap/ccsdk/apps/ms/neng/core/seq/SequenceGeneratorTest.java
index fcee4da..23bbc7c 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 @@
 
 
 @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 a187369..c3815f4 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.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 @@
     }
 
     @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 ca8ac12..ae425c3 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 496a2e9..2826e4d 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 0000000..b98414f
--- /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 0000000..108d0d4
--- /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 0000000..8685bcf
--- /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 0000000..fb106ed
--- /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 0000000..5c7136b
--- /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 0000000..baa5b70
--- /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 0000000..e85bc79
--- /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 0000000..2a6d16d
--- /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 0000000..79d5b41
--- /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
+
