Updated function test environment

Added interface stub for MR

Added simulator monitor

Added function test and test cases

Added a server for catching callbacks from the agent

Added test cases for SNDC A1-Controller NB

README files are generally not updated. Will be made in later commits.

Change-Id: Ibf35f70b3e6f2d3f9c117aaf26ecdb03f80158f8
Issue-ID: NONRTRIC-154
Signed-off-by: BjornMagnussonXA <bjorn.magnusson@est.tech>
diff --git a/near-rt-ric-simulator/auto-test/.gitignore b/near-rt-ric-simulator/auto-test/.gitignore
index 1c5ae4e..6215d91 100644
--- a/near-rt-ric-simulator/auto-test/.gitignore
+++ b/near-rt-ric-simulator/auto-test/.gitignore
@@ -1,2 +1,10 @@
 logs
-.tmp_*
\ No newline at end of file
+.tmp_*
+.http*
+.p.json
+.tmp.json
+.docker-images-table
+.image-list
+.tmp.curl.json
+.consul*
+.ext.consul*
diff --git a/near-rt-ric-simulator/auto-test/Dockerize_test.sh b/near-rt-ric-simulator/auto-test/Dockerize_test.sh
index 34532c9..dec3217 100755
--- a/near-rt-ric-simulator/auto-test/Dockerize_test.sh
+++ b/near-rt-ric-simulator/auto-test/Dockerize_test.sh
@@ -16,7 +16,7 @@
 
 consul_config_app         "../simulator-group/consul_cbs/config.json"
 
-start_dashboard
+start_control_panel
 
 start_sdnc
 
diff --git a/near-rt-ric-simulator/auto-test/FTC1.sh b/near-rt-ric-simulator/auto-test/FTC1.sh
deleted file mode 100755
index 7c614a4..0000000
--- a/near-rt-ric-simulator/auto-test/FTC1.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env bash
-
-TC_ONELINE_DESCR="Auto test for Policy Agent refreshing configurations from consul/cbs"
-
-. ../common/testcase_common.sh $1
-
-#### TEST BEGIN ####
-
-clean_containers
-
-start_simulators
-
-consul_config_app         "../simulator-group/consul_cbs/config.json"
-
-start_policy_agent
-
-check_policy_agent_logs
-
-#### TEST COMPLETE ####
-
-store_logs          END
-
diff --git a/near-rt-ric-simulator/auto-test/FTC10.sh b/near-rt-ric-simulator/auto-test/FTC10.sh
new file mode 100755
index 0000000..8808895
--- /dev/null
+++ b/near-rt-ric-simulator/auto-test/FTC10.sh
@@ -0,0 +1,170 @@
+#!/usr/bin/env bash
+
+#  ============LICENSE_START===============================================
+#  Copyright (C) 2020 Nordix Foundation. 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=================================================
+#
+
+TC_ONELINE_DESCR="Basic use case, register rapp, create/update policy, delete policy, de-register rapp using both STD and OSC interface over REST and Dmaap"
+
+. ../common/testcase_common.sh $@
+. ../common/agent_api_functions.sh
+
+
+#### TEST BEGIN ####
+
+#Local vars in test script
+##########################
+# Path to callback receiver
+CR_PATH="http://$CR_APP_NAME:$CR_EXTERNAL_PORT/callbacks"
+
+clean_containers
+
+start_ric_simulators  ricsim_g1 3 OSC_2.1.0
+
+start_ric_simulators  ricsim_g2 5 STD_1.1.3
+
+start_mr
+
+start_cr
+
+start_consul_cbs
+
+prepare_consul_config      NOSDNC  ".consul_config.json"
+consul_config_app                  ".consul_config.json"
+
+start_control_panel
+
+#start_sdnc
+
+start_policy_agent
+
+use_agent_rest
+
+api_get_status 200
+
+sim_print ricsim_g1_1 interface
+
+sim_print ricsim_g2_1 interface
+
+sim_put_policy_type 201 ricsim_g1_1 1 testdata/OSC/sim_1.json
+
+api_equal json:policy_types 2 60
+
+
+# Create policies
+use_agent_rest
+
+api_put_service 201 "rapp1" 3600 "$CR_PATH/callbacks/1"
+
+api_put_policy 201 "rapp1" ricsim_g1_1 1 2000 testdata/OSC/pi1_template.json 1
+
+sim_equal ricsim_g1_1 num_instances 1
+
+
+use_agent_dmaap
+
+api_put_policy 201 "rapp1" ricsim_g1_1 1 3000 testdata/OSC/pi1_template.json 1
+
+sim_equal ricsim_g1_1 num_instances 2
+
+
+use_agent_rest
+
+api_put_policy 201 "rapp1" ricsim_g2_1 NOTYPE 2100 testdata/STD/pi1_template.json 1
+
+sim_equal ricsim_g2_1 num_instances 1
+
+
+use_agent_dmaap
+
+api_put_policy 201 "rapp1" ricsim_g2_1 NOTYPE 3100 testdata/STD/pi1_template.json 1
+
+sim_equal ricsim_g2_1 num_instances 2
+
+
+#Update policies
+use_agent_rest
+
+api_put_service 200 "rapp1" 3600 "$CR_PATH/callbacks/1"
+
+api_put_policy 200 "rapp1" ricsim_g1_1 1 2000 testdata/OSC/pi1_template.json 1
+
+sim_equal ricsim_g1_1 num_instances 2
+
+
+use_agent_dmaap
+
+api_put_policy 200 "rapp1" ricsim_g1_1 1 3000 testdata/OSC/pi1_template.json 1
+
+sim_equal ricsim_g1_1 num_instances 2
+
+
+use_agent_rest
+
+
+api_put_policy 200 "rapp1" ricsim_g2_1 NOTYPE 2100 testdata/STD/pi1_template.json 1
+
+sim_equal ricsim_g2_1 num_instances 2
+
+
+use_agent_dmaap
+
+api_put_policy 200 "rapp1" ricsim_g2_1 NOTYPE 3100 testdata/STD/pi1_template.json 1
+
+sim_equal ricsim_g2_1 num_instances 2
+
+# Check policies
+api_get_policy 200 2000 testdata/OSC/pi1_template.json
+api_get_policy 200 3000 testdata/OSC/pi1_template.json
+api_get_policy 200 2100 testdata/STD/pi1_template.json
+api_get_policy 200 3100 testdata/STD/pi1_template.json
+
+# Remove policies
+
+use_agent_dmaap
+api_delete_policy 204 2000
+use_agent_rest
+api_delete_policy 204 3000
+use_agent_dmaap
+api_delete_policy 204 2100
+use_agent_rest
+api_delete_policy 204 3100
+
+sim_equal ricsim_g1_1 num_instances 0
+sim_equal ricsim_g2_1 num_instances 0
+
+# Check policy removal
+use_agent_rest
+api_get_policy 404 2000
+api_get_policy 404 3000
+api_get_policy 404 2100
+api_get_policy 404 3100
+
+# Remove the service
+use_agent_dmaap
+api_delete_services 204 "rapp1"
+
+api_get_services 404 "rapp1"
+
+
+
+check_policy_agent_logs
+
+#### TEST COMPLETE ####
+
+store_logs          END
+
+print_result
\ No newline at end of file
diff --git a/near-rt-ric-simulator/auto-test/FTC100.sh b/near-rt-ric-simulator/auto-test/FTC100.sh
new file mode 100755
index 0000000..79fdd49
--- /dev/null
+++ b/near-rt-ric-simulator/auto-test/FTC100.sh
@@ -0,0 +1,324 @@
+#!/usr/bin/env bash
+
+#  ============LICENSE_START===============================================
+#  Copyright (C) 2020 Nordix Foundation. 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=================================================
+#
+
+
+TC_ONELINE_DESCR="Full agent API walk through using agent REST/DMAAP and with/without SDNC A1 Controller"
+
+. ../common/testcase_common.sh  $@
+. ../common/agent_api_functions.sh
+. ../common/ricsimulator_api_functions.sh
+. ../common/controller_api_functions.sh
+
+#### TEST BEGIN ####
+
+#Local vars in test script
+##########################
+
+# Path to callback receiver
+CR_PATH="http://$CR_APP_NAME:$CR_EXTERNAL_PORT/callbacks"
+
+# Tested variants of REST/DMAAP/SDNC config
+TESTED_VARIANTS="REST   DMAAP   REST+SDNC   DMAAP+SDNC"
+
+
+for interface in $TESTED_VARIANTS ; do
+
+    echo "#####################################################################"
+    echo "#####################################################################"
+    echo "### Testing agent: "$interface
+    echo "#####################################################################"
+    echo "#####################################################################"
+
+
+    # Clean container and start all needed containers #
+    clean_containers
+
+    start_ric_simulators ricsim_g1 1  OSC_2.1.0
+    start_ric_simulators ricsim_g2 1  STD_1.1.3
+
+    start_mr
+
+    start_cr
+
+    start_consul_cbs
+
+    if [ $interface == "SDNC" ] || [ $interface == "DMAAP+SDNC" ]; then
+        prepare_consul_config      SDNC    ".consul_config.json"
+    else
+        prepare_consul_config      NOSDNC  ".consul_config.json"
+    fi
+
+    consul_config_app                      ".consul_config.json"
+
+    start_control_panel
+
+    if [ $interface == "SDNC" ] || [ $interface == "DMAAP+SDNC" ]; then
+        start_sdnc
+    fi
+
+    start_policy_agent
+
+    if [ $interface == "DMAAP" ] || [ $interface == "DMAAP+SDNC" ]; then
+        use_agent_dmaap
+    else
+        use_agent_rest
+    fi
+
+
+    cr_equal received_callbacks 0
+    mr_equal requests_submitted 0
+
+    sim_put_policy_type 201 ricsim_g1_1 1 testdata/OSC/sim_1.json
+    sim_put_policy_type 201 ricsim_g1_1 2 testdata/OSC/sim_2.json
+
+    api_equal json:rics 2 60
+
+    api_equal json:policy_schemas 3 120
+
+    api_equal json:policy_types 3
+
+    api_equal json:policies 0
+
+    api_equal json:policy_ids 0
+
+
+
+
+    echo "############################################"
+    echo "############## Health check ################"
+    echo "############################################"
+
+    api_get_status 200
+
+    echo "############################################"
+    echo "##### Service registry and supervision #####"
+    echo "############################################"
+
+    api_get_services 404 "rapp1"
+
+    api_put_service 201 "rapp1" 1000 "$CR_PATH/1"
+
+    api_put_service 200 "rapp1" 2000 "$CR_PATH/1"
+
+
+    api_put_service 400 "rapp2" -1 "$CR_PATH/2"
+
+    api_put_service 400 "rapp2" "wrong" "$CR_PATH/2"
+
+    api_put_service 400 "rapp2" 100 "/test"
+
+    api_put_service 400 "rapp2" 100 "test-path"
+
+    api_put_service 201 "rapp2" 300 "ftp://localhost:80/test"
+
+    api_get_services 200 "rapp1" "rapp1" 2000 "$CR_PATH/1"
+
+    api_get_service_ids 200 "rapp1" "rapp2"
+
+
+    api_put_service 201 "rapp3" 5000 "$CR_PATH/3"
+
+
+    api_get_service_ids 200 "rapp1" "rapp2" "rapp3"
+
+
+    api_get_services 200 "rapp1" "rapp1" 2000 "$CR_PATH/1"
+
+    api_get_services 200 NOSERVICE "rapp1" 2000 "$CR_PATH/1" "rapp2" 300 "ftp://localhost:80/test" "rapp3" 5000 "$CR_PATH/3"
+
+    api_get_services 200
+
+    echo -e $YELLOW"TR2"$EYELLOW
+    api_put_services_keepalive 201 "rapp1"
+    echo -e $YELLOW"TR2"$EYELLOW
+    api_put_services_keepalive 201 "rapp3"
+
+    api_put_services_keepalive 200 "rapp1"
+
+    api_put_services_keepalive 200 "rapp3"
+
+    api_put_services_keepalive 404 "rapp5"
+
+    api_get_service_ids 200 "rapp1" "rapp2" "rapp3"
+
+    api_delete_services 204 "rapp1"
+
+    api_get_service_ids 200 "rapp2" "rapp3"
+
+
+    api_put_service 201 "rapp1" 50 "$CR_PATH/1"
+
+    api_get_service_ids 200 "rapp1" "rapp2" "rapp3"
+
+
+    api_delete_services 204 "rapp1"
+    api_delete_services 204 "rapp3"
+
+    api_equal json:services 1
+
+    api_delete_services 204 "rapp2"
+
+    api_equal json:services 0
+
+
+    echo "############################################"
+    echo "############## RIC Repository ##############"
+    echo "############################################"
+
+    api_get_rics 200 NOTYPE "ricsim_g1_1:me1_ricsim_g1_1,me2_ricsim_g1_1:1,2:AVAILABLE  ricsim_g2_1:me1_ricsim_g2_1,me2_ricsim_g2_1:EMPTYTYPE:AVAILABLE"
+
+    api_get_rics 200 1 "ricsim_g1_1:me1_ricsim_g1_1,me2_ricsim_g1_1:1,2:AVAILABLE"
+
+    api_get_rics 404 47
+
+    api_get_rics 404 "test"
+
+
+    api_get_ric 200 me1_ricsim_g1_1 ricsim_g1_1
+
+    api_get_ric 200 me2_ricsim_g1_1 ricsim_g1_1
+
+    api_get_ric 200 me1_ricsim_g2_1 ricsim_g2_1
+
+    api_get_ric 200 me2_ricsim_g2_1 ricsim_g2_1
+
+    api_get_ric 404 test
+
+
+    echo "############################################"
+    echo "########### A1 Policy Management ###########"
+    echo "############################################"
+    echo -e $YELLOW"TR9"$EYELLOW
+    api_get_policy_schema 200 1 testdata/OSC/1.json
+    echo -e $YELLOW"TR9"$EYELLOW
+    api_get_policy_schema 200 2 testdata/OSC/2.json
+
+    api_get_policy_schema 404 3
+    echo -e $YELLOW"TR9"$EYELLOW
+    api_get_policy_schemas 200 NORIC testdata/OSC/1.json testdata/OSC/2.json NOFILE
+    echo -e $YELLOW"TR9"$EYELLOW
+    api_get_policy_schemas 200 ricsim_g1_1 testdata/OSC/1.json testdata/OSC/2.json
+
+    api_get_policy_schemas 200 ricsim_g2_1 NOFILE
+
+    api_get_policy_schemas 404 test
+
+
+
+    api_get_policy_types 200 NORIC 1 2 EMPTY
+
+    api_get_policy_types 200 ricsim_g1_1 1 2
+
+    api_get_policy_types 200 ricsim_g2_1 EMPTY
+
+    api_get_policy_types 404 dummy-ric
+
+
+
+    api_put_service 201 "rapp10" 3600 "$CR_PATH/1"
+    echo -e $YELLOW"TR10"$EYELLOW
+    api_put_policy 400 "unregistered-r-app" ricsim_g1_1 1 2000 testdata/OSC/pi1_template.json
+
+    api_put_policy 201 "rapp10" ricsim_g1_1 1 5000 testdata/OSC/pi1_template.json
+    api_put_policy 200 "rapp10" ricsim_g1_1 1 5000 testdata/OSC/pi1_template.json
+
+    api_put_policy 201 "rapp10" ricsim_g2_1 NOTYPE 5100 testdata/STD/pi1_template.json
+    api_put_policy 200 "rapp10" ricsim_g2_1 NOTYPE 5100 testdata/STD/pi1_template.json
+
+    VAL='NOT IN EFFECT'
+    api_get_policy_status 200 5000 OSC "$VAL" "false"
+    api_get_policy_status 200 5100 STD "UNDEFINED"
+
+
+    echo -e $YELLOW"TR10"$EYELLOW
+    api_equal json:policies 2
+    echo -e $YELLOW"TR10"$EYELLOW
+    api_equal json:policy_ids 2
+    echo -e $YELLOW"TR10"$EYELLOW
+    api_get_policy_ids 200 NORIC NOSERVICE NOTYPE 5000 5100
+    echo -e $YELLOW"TR10"$EYELLOW
+    api_get_policy_ids 200 ricsim_g1_1 NOSERVICE NOTYPE 5000
+
+    api_get_policy_ids 200 ricsim_g2_1 NOSERVICE NOTYPE 5100
+
+
+    api_get_policy_ids 200 NORIC "rapp10" NOTYPE 5000 5100
+    echo -e $YELLOW"TR10"$EYELLOW
+    api_get_policy_ids 200 NORIC NOSERVICE 1 5000
+
+    api_get_policy_ids 200 NORIC NOSERVICE 2 NOID
+
+    api_get_policy_ids 200 ricsim_g2_1 NOSERVICE 1 NOID
+
+
+    api_get_policy 200 5000 testdata/OSC/pi1_template.json
+
+    api_get_policy 200 5100 testdata/STD/pi1_template.json
+
+
+
+    api_get_policies 200 ricsim_g1_1 "rapp10" 1 5000 ricsim_g1_1 "rapp10" 1 testdata/OSC/pi1_template.json
+
+
+
+
+    echo -e $YELLOW"TR10"$EYELLOW
+    api_delete_policy 404 2000
+
+    api_delete_policy 404 1500
+
+    api_delete_policy 204 5000
+
+    api_equal json:policies 1
+
+    api_equal json:policy_ids 1
+
+    api_delete_policy 204 5100
+
+    api_equal json:policies 0
+
+    api_equal json:policy_ids 0
+
+    cr_equal received_callbacks 0
+
+    if [ $interface == "DMAAP" ] || [ $interface == "DMAAP+SDNC" ]; then
+        mr_greater requests_submitted 0
+        VAL=$(mr_read requests_submitted)
+        mr_equal requests_fetched $VAL
+        mr_equal responses_submitted $VAL
+        mr_equal responses_fetched $VAL
+        mr_equal current_requests 0
+        mr_equal current_responses 0
+    else
+        mr_equal requests_submitted 0
+    fi
+
+    check_policy_agent_logs
+    check_control_panel_logs
+
+    store_logs          $interface
+
+done
+
+#### TEST COMPLETE ####
+
+
+print_result
+
+auto_clean_containers
diff --git a/near-rt-ric-simulator/auto-test/FTC200.sh b/near-rt-ric-simulator/auto-test/FTC200.sh
new file mode 100755
index 0000000..2f62c56
--- /dev/null
+++ b/near-rt-ric-simulator/auto-test/FTC200.sh
@@ -0,0 +1,158 @@
+#!/usr/bin/env bash
+
+#  ============LICENSE_START===============================================
+#  Copyright (C) 2020 Nordix Foundation. 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=================================================
+#
+
+
+TC_ONELINE_DESCR="Testing of service registration timeouts and keepalive"
+
+. ../common/testcase_common.sh  $@
+. ../common/agent_api_functions.sh
+. ../common/ricsimulator_api_functions.sh
+
+
+#Local vars in test script
+##########################
+# Path to callback receiver
+CR_PATH="http://$CR_APP_NAME:$CR_EXTERNAL_PORT/callbacks"
+
+
+#### TEST BEGIN ####
+
+clean_containers
+
+start_ric_simulators ricsim_g1 1  OSC_2.1.0
+
+start_mr
+
+start_cr
+
+start_consul_cbs
+
+prepare_consul_config      NOSDNC  ".consul_config.json"
+consul_config_app                  ".consul_config.json"
+
+start_control_panel
+
+#start_sdnc
+
+start_policy_agent
+
+use_agent_rest
+
+#Verify no callbacks or dmaap messages has been sent
+cr_equal received_callbacks 0
+mr_equal requests_submitted 0
+
+#Check agent alive
+api_get_status 200
+
+#Print simulator interface version
+sim_print ricsim_g1_1 interface
+
+api_put_service 201 "rapp1" 15 "$CR_PATH/rapp1"
+
+api_get_services 200 "rapp1" 15 "$CR_PATH/rapp1"
+
+api_put_service 201 "rapp2" 120 "$CR_PATH/rapp2"
+
+api_get_services 200 "rapp2" 120 "$CR_PATH/rapp2"
+
+api_put_service 200 "rapp1" 50 "$CR_PATH/rapp1"
+api_put_service 200 "rapp2" 180 "$CR_PATH/rapp2"
+
+api_get_services 200 "rapp1" 50 "$CR_PATH/rapp1"
+api_get_services 200 "rapp2" 180 "$CR_PATH/rapp2"
+
+api_get_service_ids 200 "rapp1" "rapp2"
+
+sleep_wait 30 "Waiting for keep alive timeout"
+
+api_get_services 200 "rapp1" 50 "$CR_PATH/rapp1"
+api_get_services 200 "rapp2" 180 "$CR_PATH/rapp2"
+
+sleep_wait 100 "Waiting for keep alive timeout"
+
+api_get_services 404 "rapp1"
+api_get_services 200 "rapp2" 180 "$CR_PATH/rapp2"
+
+api_delete_services 204 "rapp2"
+
+api_get_services 404 "rapp1"
+api_get_services 404 "rapp2"
+
+api_put_service 201 "rapp3" 60 "$CR_PATH/rapp3"
+
+api_get_services 200 "rapp3" 60 "$CR_PATH/rapp3"
+
+sleep_wait 30 "Waiting for keep alive timeout"
+
+api_put_service 200 "rapp3" 60 "$CR_PATH/rapp3"
+
+sleep_wait 100 "Waiting for keep alive timeout"
+
+api_get_services 404 "rapp3"
+
+api_put_service 201 "rapp4" 120 "$CR_PATH/rapp4"
+
+sleep_wait 60 "Waiting for keep alive timeout"
+
+api_get_services 200 "rapp4" 120 "$CR_PATH/rapp4"
+
+api_put_services_keepalive 200 "rapp4"
+
+sleep_wait 90 "Waiting for keep alive timeout"
+
+api_get_services 200 "rapp4" 120 "$CR_PATH/rapp4"
+
+api_delete_services 204 "rapp4"
+
+api_get_services 404 "rapp4"
+
+api_get_services 404 "rapp1"
+api_get_services 404 "rapp2"
+api_get_services 404 "rapp3"
+
+api_get_service_ids 200
+
+api_delete_services 404 "rapp1"
+api_delete_services 404 "rapp2"
+api_delete_services 404 "rapp3"
+api_delete_services 404 "rapp4"
+
+api_put_services_keepalive 404 "rapp1"
+api_put_services_keepalive 404 "rapp2"
+api_put_services_keepalive 404 "rapp3"
+api_put_services_keepalive 404 "rapp4"
+
+api_get_service_ids 200
+
+
+
+cr_equal received_callbacks 0
+mr_equal requests_submitted 0
+
+check_policy_agent_logs
+check_control_panel_logs
+
+#### TEST COMPLETE ####
+
+store_logs          END
+
+print_result
+
+auto_clean_containers
\ No newline at end of file
diff --git a/near-rt-ric-simulator/auto-test/FTC300.sh b/near-rt-ric-simulator/auto-test/FTC300.sh
new file mode 100755
index 0000000..3b07f60
--- /dev/null
+++ b/near-rt-ric-simulator/auto-test/FTC300.sh
@@ -0,0 +1,90 @@
+#!/usr/bin/env bash
+
+#  ============LICENSE_START===============================================
+#  Copyright (C) 2020 Nordix Foundation. 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=================================================
+#
+
+TC_ONELINE_DESCR="Resync 10000 policies using OSC interface over REST"
+
+. ../common/testcase_common.sh  $@
+. ../common/agent_api_functions.sh
+. ../common/ricsimulator_api_functions.sh
+
+#### TEST BEGIN ####
+
+#Local vars in test script
+##########################
+# Path to callback receiver
+CR_PATH="http://$CR_APP_NAME:$CR_EXTERNAL_PORT/callbacks"
+
+clean_containers
+
+start_ric_simulators ricsim_g1 4 OSC_2.1.0
+
+start_mr
+
+start_cr
+
+start_consul_cbs
+
+prepare_consul_config      NOSDNC  ".consul_config.json"
+consul_config_app                  ".consul_config.json"
+
+start_control_panel
+
+
+start_policy_agent
+
+use_agent_rest
+
+api_get_status 200
+
+sim_print ricsim_g1_1 interface
+
+sim_put_policy_type 201 ricsim_g1_1 1 testdata/OSC/sim_1.json
+
+api_equal json:policy_types 1 120  #Wait for the agent to refresh types from the simulator
+
+api_put_service 201 "rapp1" 3600 "$CR_PATH/callbacks/1"
+
+api_put_policy 201 "rapp1" ricsim_g1_1 1 2000 testdata/OSC/pi1_template.json 10000
+
+sim_equal ricsim_g1_1 num_instances 10000
+
+sim_post_delete_instances 200 ricsim_g1_1
+
+sim_equal ricsim_g1_1 num_instances 0
+
+sim_equal ricsim_g1_1 num_instances 10000 300
+
+api_delete_policy 204 2435
+
+api_delete_policy 204 8693
+
+sim_post_delete_instances 200 ricsim_g1_1
+
+sim_post_delete_instances 200 ricsim_g1_1
+
+sim_equal ricsim_g1_1 num_instances 9998 300
+
+
+check_policy_agent_logs
+
+#### TEST COMPLETE ####
+
+store_logs          END
+
+print_result
\ No newline at end of file
diff --git a/near-rt-ric-simulator/auto-test/FTC310.sh b/near-rt-ric-simulator/auto-test/FTC310.sh
new file mode 100755
index 0000000..0edd82e
--- /dev/null
+++ b/near-rt-ric-simulator/auto-test/FTC310.sh
@@ -0,0 +1,172 @@
+#!/usr/bin/env bash
+
+#  ============LICENSE_START===============================================
+#  Copyright (C) 2020 Nordix Foundation. 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=================================================
+#
+
+TC_ONELINE_DESCR="Repeatedly create and delete 10000 policies in each RICs for 24h. Via agent REST"
+
+. ../common/testcase_common.sh  $@
+. ../common/agent_api_functions.sh
+. ../common/ricsimulator_api_functions.sh
+
+#### TEST BEGIN ####
+
+#Local vars in test script
+##########################
+# Path to callback receiver
+CR_PATH="http://$CR_APP_NAME:$CR_EXTERNAL_PORT/callbacks"
+# Number of RICs per interface type (OSC and STD)
+NUM_RICS=4
+# Number of policy instances per RIC
+NUM_INSTANCES=10000
+
+clean_containers
+
+start_ric_simulators ricsim_g1 4 OSC_2.1.0
+
+start_ric_simulators ricsim_g2 4 STD_1.1.3
+
+start_mr
+
+start_cr
+
+start_consul_cbs
+
+prepare_consul_config      NOSDNC  ".consul_config.json"
+consul_config_app                  ".consul_config.json"
+
+start_control_panel
+
+start_policy_agent
+
+use_agent_rest
+
+api_get_status 200
+
+echo "Print the interface for group 1 simulators, shall be OSC"
+for ((i=1; i<=$NUM_RICS; i++))
+do
+   sim_print ricsim_g1_$i interface
+done
+
+echo "Print the interface for group 2 simulators, shall be STD"
+for ((i=1; i<=$NUM_RICS; i++))
+do
+   sim_print ricsim_g2_$i interface
+done
+
+echo "Load policy type in group 1 simulators"
+for ((i=1; i<=$NUM_RICS; i++))
+do
+   sim_put_policy_type 201 ricsim_g1_$i 1 testdata/OSC/sim_1.json
+done
+
+echo "Check the number of instances in  group 1 simulators, shall be 0"
+for ((i=1; i<=$NUM_RICS; i++))
+do
+   sim_equal ricsim_g1_$i num_instances 0
+done
+
+echo "Check the number of instances in  group 2 simulators, shall be 0"
+for ((i=1; i<=$NUM_RICS; i++))
+do
+   sim_equal ricsim_g2_$i num_instances 0
+done
+
+echo "Wait for the agent to refresh types from the simulator"
+api_equal json:policy_types 2 120
+
+echo "Check the number of types in the agent for each ric is 1"
+for ((i=1; i<=$NUM_RICS; i++))
+do
+   api_equal json:policy_types?ric=ricsim_g1_$i 1 120
+done
+
+echo "Register a service"
+api_put_service 201 "rapp1" 0 "$CR_PATH/1"
+
+TEST_DURATION=$((24*3600))
+TEST_START=$SECONDS
+
+while [ $(($SECONDS-$TEST_START)) -lt $TEST_DURATION ]; do
+
+    echo ""
+    echo "#########################################################################################################"
+    echo -e $BOLD"INFO: Test executed for: "$(($SECONDS-$TEST_START)) "seconds. Target is: "$TEST_DURATION" seconds (24h)."$EBOLD
+    echo "#########################################################################################################"
+    echo ""
+
+
+    echo "Create 10000 instances in each OSC RIC"
+    INSTANCE_ID=200000
+    INSTANCES=0
+    for ((i=1; i<=$NUM_RICS; i++))
+    do
+        api_put_policy 201 "rapp1" ricsim_g1_$i 1 $INSTANCE_ID testdata/OSC/pi1_template.json $NUM_INSTANCES
+        sim_equal ricsim_g1_$i num_instances $NUM_INSTANCES
+        INSTANCE_ID=$(($INSTANCE_ID+$NUM_INSTANCES))
+        INSTANCES=$(($INSTANCES+$NUM_INSTANCES))
+    done
+
+    api_equal json:policy_ids $INSTANCES
+
+    echo "Create 10000 instances in each OSC RIC"
+    for ((i=1; i<=$NUM_RICS; i++))
+    do
+        api_put_policy 201 "rapp1" ricsim_g2_$i NOTYPE $INSTANCE_ID testdata/STD/pi1_template.json $NUM_INSTANCES
+        sim_equal ricsim_g2_$i num_instances $NUM_INSTANCES
+        INSTANCE_ID=$(($INSTANCE_ID+$NUM_INSTANCES))
+        INSTANCES=$(($INSTANCES+$NUM_INSTANCES))
+    done
+
+    api_equal json:policy_ids $INSTANCES
+
+
+    echo "Delete all instances in each OSC RIC"
+
+    INSTANCE_ID=200000
+    for ((i=1; i<=$NUM_RICS; i++))
+    do
+        api_delete_policy 204 $INSTANCE_ID $NUM_INSTANCES
+        INSTANCES=$(($INSTANCES-$NUM_INSTANCES))
+        sim_equal ricsim_g1_$i num_instances $NUM_INSTANCES
+        INSTANCE_ID=$(($INSTANCE_ID+$NUM_INSTANCES))
+    done
+
+    api_equal json:policy_ids $INSTANCES
+
+    echo "Delete all instances in each STD RIC"
+    INSTANCE_ID=200000
+    for ((i=1; i<=$NUM_RICS; i++))
+    do
+        api_delete_policy 204 $INSTANCE_ID $NUM_INSTANCES
+        INSTANCES=$(($INSTANCES-$NUM_INSTANCES))
+        sim_equal ricsim_g2_$i num_instances $NUM_INSTANCES
+        INSTANCE_ID=$(($INSTANCE_ID+$NUM_INSTANCES))
+    done
+
+    api_equal json:policy_ids 0
+done
+
+
+check_policy_agent_logs
+
+#### TEST COMPLETE ####
+
+store_logs          END
+
+print_result
\ No newline at end of file
diff --git a/near-rt-ric-simulator/auto-test/FTC320.sh b/near-rt-ric-simulator/auto-test/FTC320.sh
new file mode 100755
index 0000000..2b1b96a
--- /dev/null
+++ b/near-rt-ric-simulator/auto-test/FTC320.sh
@@ -0,0 +1,202 @@
+#!/usr/bin/env bash
+
+#  ============LICENSE_START===============================================
+#  Copyright (C) 2020 Nordix Foundation. 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=================================================
+#
+
+TC_ONELINE_DESCR="Create and delete 50 policies in each 50 RICs, 25 STD version, 25 OSC version. Via agent REST"
+
+. ../common/testcase_common.sh  $@
+. ../common/agent_api_functions.sh
+. ../common/ricsimulator_api_functions.sh
+
+#### TEST BEGIN ####
+
+#Local vars in test script
+##########################
+# Path to callback receiver
+CR_PATH="http://$CR_APP_NAME:$CR_EXTERNAL_PORT/callbacks"
+# Number of RICs
+NUM_RICS=25
+# Number of instances per RIC
+NUM_INST=50
+
+# Clean and start all containers
+clean_containers
+
+start_ric_simulators ricsim_g1 $NUM_RICS OSC_2.1.0
+
+start_ric_simulators ricsim_g2 $NUM_RICS STD_1.1.3
+
+start_mr
+
+start_cr
+
+start_consul_cbs
+
+prepare_consul_config      NOSDNC  ".consul_config.json"
+consul_config_app                  ".consul_config.json"
+
+start_control_panel
+
+start_policy_agent
+
+use_agent_rest
+
+set_agent_debug
+
+# Main tests
+
+echo "Checking agent is alive"
+api_get_status 200
+
+
+echo "Print the interface for group 1 simulators, shall be OSC"
+for ((i=1; i<=$NUM_RICS; i++))
+do
+   sim_print ricsim_g1_$i interface
+done
+
+echo "Print the interface for group 2 simulators, shall be STD"
+for ((i=1; i<=$NUM_RICS; i++))
+do
+   sim_print ricsim_g2_$i interface
+done
+
+echo "Checking the number of policy instances in each group 1 simulator, shall be 0"
+for ((i=1; i<=$NUM_RICS; i++))
+do
+   sim_equal ricsim_g1_$i num_instances 0
+done
+
+echo "Checking the number of policy instances in each group 2 simulator, shall be 0"
+for ((i=1; i<=$NUM_RICS; i++))
+do
+   sim_equal ricsim_g1_$i num_instances 0
+done
+
+echo "Load policy type 1 in each group 1 simulator"
+for ((i=1; i<=$NUM_RICS; i++))
+do
+   sim_put_policy_type 201 ricsim_g1_$i 1 testdata/OSC/sim_1.json
+done
+
+echo "Checking the number of policy types in each group 1 simulator, shall be 1"
+for ((i=1; i<=$NUM_RICS; i++))
+do
+   sim_equal ricsim_g1_$i num_types 1
+done
+
+echo "Checking the number of policy types in each group 2 simulator, shall be 0"
+for ((i=1; i<=$NUM_RICS; i++))
+do
+   sim_equal ricsim_g2_$i num_types 0
+done
+
+echo "Check the number of rics, shall be the configured number: ""$(($NUM_RICS*2))"
+api_equal json:rics "$(($NUM_RICS*2))" 120
+
+api_equal json:policy_types 2 120  #Wait for the agent to refresh types from the simulator
+
+sleep_wait 120 "Wait for the agent to refresh the types from all rics"
+
+echo "Check the number of types in the agent for each group 1 rics, shall be 1"
+for ((i=1; i<=$NUM_RICS; i++))
+do
+   api_equal json:policy_types?ric=ricsim_g1_$i 1
+done
+
+echo "Check the number of types in the agent for each group 2 rics, shall be 1"
+for ((i=1; i<=$NUM_RICS; i++))
+do
+   api_equal json:policy_types?ric=ricsim_g2_$i 1
+done
+
+echo "Register the service"
+api_put_service 201 "rapp1" 0 "$CR_PATH/1"
+
+echo "Loading "$NUM_INST" policies in each group 1 ric"
+for ((i=1; i<=$NUM_RICS; i++))
+do
+   inst=$((1000000+$i*$NUM_INST))
+   api_put_policy 201 "rapp1" ricsim_g1_$i 1 $inst testdata/OSC/pi1_template.json $NUM_INST
+done
+
+echo "Loading "$NUM_INST" policies in each group 2 ric"
+for ((i=1; i<=$NUM_RICS; i++))
+do
+   inst=$((2000000+$i*$NUM_INST))
+   api_put_policy 201 "rapp1" ricsim_g2_$i NOTYPE $inst testdata/STD/pi1_template.json $NUM_INST
+done
+
+echo "Check the number of types in the agent for each group 1 rics, shall be 1"
+for ((i=1; i<=$NUM_RICS; i++))
+do
+   api_equal json:policy_types?ric=ricsim_g1_$i 1
+done
+
+echo "Check the number of types in the agent for each group 2 rics, shall be 1"
+for ((i=1; i<=$NUM_RICS; i++))
+do
+   api_equal json:policy_types?ric=ricsim_g2_$i 1
+done
+
+echo "Checking the number of policy instances in each group 1 simulator, shall be "$NUM_INST
+for ((i=1; i<=$NUM_RICS; i++))
+do
+   sim_equal ricsim_g1_$i num_instances 50
+done
+
+echo "Checking the number of policy instances in each group 2 simulator, shall be "$NUM_INST
+for ((i=1; i<=$NUM_RICS; i++))
+do
+   sim_equal ricsim_g2_$i num_instances 50
+done
+
+echo "Deleting "$NUM_INST" policies in each group 1 ric"
+for ((i=1; i<=$NUM_RICS; i++))
+do
+   inst=$((1000000+$i*$NUM_INST))
+   api_delete_policy 201 $NUM_INST
+done
+
+echo "Deleting "$NUM_INST" policies in each group 2 ric"
+for ((i=1; i<=$NUM_RICS; i++))
+do
+   inst=$((2000000+$i*$NUM_INST))
+   api_delete_policy 201 $NUM_INST
+done
+
+echo "Checking the number of policy instances in each group 1 simulator, shall be 0"
+for ((i=1; i<=$NUM_RICS; i++))
+do
+   sim_equal ricsim_g1_$i num_instances 50
+done
+
+echo "Checking the number of policy instances in each group 1 simulator, shall be 0"
+for ((i=1; i<=$NUM_RICS; i++))
+do
+   sim_equal ricsim_g2_$i num_instances 50
+done
+
+
+check_policy_agent_logs
+
+#### TEST COMPLETE ####
+
+store_logs          END
+
+print_result
\ No newline at end of file
diff --git a/near-rt-ric-simulator/auto-test/FTC500.sh b/near-rt-ric-simulator/auto-test/FTC500.sh
new file mode 100755
index 0000000..41c0824
--- /dev/null
+++ b/near-rt-ric-simulator/auto-test/FTC500.sh
@@ -0,0 +1,74 @@
+#!/usr/bin/env bash
+
+#  ============LICENSE_START===============================================
+#  Copyright (C) 2020 Nordix Foundation. 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=================================================
+#
+
+
+TC_ONELINE_DESCR="Sample tests of the SDNC A1 controller restconf API"
+
+. ../common/testcase_common.sh  $@
+. ../common/controller_api_functions.sh
+. ../common/ricsimulator_api_functions.sh
+
+#### TEST BEGIN ####
+
+# Clean container and start all needed containers #
+clean_containers
+
+start_ric_simulators ricsim_g1 1  OSC_2.1.0
+start_ric_simulators ricsim_g2 1  STD_1.1.3
+
+start_sdnc
+
+# API tests
+echo -e $YELLOW"TR13"$EYELLOW
+controller_api_get_A1_policy_type 404 OSC ricsim_g1_1 1
+
+sim_put_policy_type 201 ricsim_g1_1 1 testdata/OSC/sim_1.json
+
+
+controller_api_get_A1_policy_ids 200 OSC ricsim_g1_1 1
+controller_api_get_A1_policy_ids 200 STD ricsim_g2_1
+
+controller_api_get_A1_policy_type 200 OSC ricsim_g1_1 1
+controller_api_get_A1_policy_type 200 OSC ricsim_g1_1 1 testdata/OSC/sim_1.json
+
+controller_api_put_A1_policy 202 OSC ricsim_g1_1 1 4000 testdata/OSC/pi1_template.json
+controller_api_put_A1_policy 201 STD ricsim_g2_1 5000   testdata/STD/pi1_template.json
+
+controller_api_get_A1_policy_ids 200 OSC ricsim_g1_1 1 4000
+controller_api_get_A1_policy_ids 200 STD ricsim_g2_1 5000
+
+controller_api_get_A1_policy_status 200 OSC ricsim_g1_1 1 4000
+controller_api_get_A1_policy_status 200 STD ricsim_g2_1 5000
+
+VAL='NOT IN EFFECT'
+controller_api_get_A1_policy_status 200 OSC ricsim_g1_1 1 4000 "$VAL" "false"
+controller_api_get_A1_policy_status 200 STD ricsim_g2_1 5000 "UNDEFINED"
+
+controller_api_delete_A1_policy 202 OSC ricsim_g1_1 1 4000
+controller_api_delete_A1_policy 204 STD ricsim_g2_1 5000
+
+
+
+store_logs          END
+
+#### TEST COMPLETE ####
+
+print_result
+
+auto_clean_containers
\ No newline at end of file
diff --git a/near-rt-ric-simulator/auto-test/FTC_SDNC.sh b/near-rt-ric-simulator/auto-test/FTC_SDNC.sh
new file mode 100755
index 0000000..0a8dce5
--- /dev/null
+++ b/near-rt-ric-simulator/auto-test/FTC_SDNC.sh
@@ -0,0 +1,94 @@
+#!/usr/bin/env bash
+
+#  ============LICENSE_START===============================================
+#  Copyright (C) 2020 Nordix Foundation. 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=================================================
+#
+
+TC_ONELINE_DESCR="Create 1 policy with SDNC and 1 policy without SDNC over agent REST"
+
+. ../common/testcase_common.sh  $@
+. ../common/agent_api_functions.sh
+
+#### TEST BEGIN ####
+
+VARIANTS="NOSDNC SDNC"
+
+for TEST in $VARIANTS ; do
+
+
+    clean_containers
+
+    start_ric_simulators ricsim_g1 1 OSC_2.1.0
+    start_ric_simulators ricsim_g2 1 STD_1.1.3
+
+    start_mr
+
+    start_cr
+
+    start_consul_cbs
+
+    prepare_consul_config      $TEST  ".consul_config.json"
+    consul_config_app                  ".consul_config.json"
+
+    start_control_panel
+
+    if [ $TEST == "SDNC" ]; then
+        start_sdnc
+    fi
+
+    start_policy_agent
+
+
+    set_agent_debug
+
+    use_agent_rest
+
+    echo "Using: "$TEST
+
+    api_get_status 200
+
+    sim_print ricsim_g1_1 interface
+    sim_print ricsim_g2_1 interface
+
+    sim_put_policy_type 201 ricsim_g1_1 1 testdata/OSC/sim_1.json
+
+    api_equal json:policy_types 2 120  #Wait for the agent to refresh types from the simulator
+
+    api_put_service 201 "rapp1" 3600 "http://callback-receiver:8090/callbacks/1"
+
+    api_put_policy 201 "rapp1" ricsim_g1_1 1 2000 testdata/OSC/pi1_template.json 10
+
+    api_put_policy 201 "rapp1" ricsim_g2_1 NOTYPE 3000 testdata/STD/pi1_template.json 10
+
+    sim_equal ricsim_g1_1 num_instances 10
+    sim_equal ricsim_g2_1 num_instances 10
+
+
+    check_policy_agent_logs
+    check_control_panel_logs
+
+    store_logs          $TEST
+
+    echo ""
+    echo -e $BOLD"Test complete for variant: "$TEST $EBOLD
+    echo ""
+
+done
+
+#### TEST COMPLETE ####
+
+print_result
+
diff --git a/near-rt-ric-simulator/auto-test/Suite-interfaces.sh b/near-rt-ric-simulator/auto-test/Suite-interfaces.sh
new file mode 100755
index 0000000..38eb83a
--- /dev/null
+++ b/near-rt-ric-simulator/auto-test/Suite-interfaces.sh
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+TS_ONELINE_DESCR="Test suite - interface testing. Agent REST and SNDC controller resconf"
+
+. ../common/testsuite_common.sh
+
+suite_setup
+
+############# TEST CASES #################
+
+./FTC10.sh $1
+./FTC500.sh $1
+
+##########################################
+
+suite_complete
\ No newline at end of file
diff --git a/near-rt-ric-simulator/auto-test/testdata/OSC/1.json b/near-rt-ric-simulator/auto-test/testdata/OSC/1.json
new file mode 100644
index 0000000..5fe68ce
--- /dev/null
+++ b/near-rt-ric-simulator/auto-test/testdata/OSC/1.json
@@ -0,0 +1,40 @@
+{
+  "$schema": "http://json-schema.org/draft-07/schema#",
+  "title": "OSC_Type1_1.0.0",
+  "description": "Type 1 policy type",
+  "type": "object",
+  "properties": {
+    "scope": {
+      "type": "object",
+      "properties": {
+        "ueId": {
+          "type": "string"
+        },
+        "qosId": {
+          "type": "string"
+        }
+      },
+      "additionalProperties": false,
+      "required": [
+        "ueId",
+        "qosId"
+      ]
+    },
+    "qosObjective": {
+      "type": "object",
+      "properties": {
+        "priorityLevel": {
+          "type": "number"
+        }
+      },
+      "additionalProperties": false,
+      "required": [
+        "priorityLevel"
+      ]
+    }
+  },
+  "additionalProperties": false,
+  "required": [
+    "scope", "qosObjective"
+  ]
+}
diff --git a/near-rt-ric-simulator/auto-test/testdata/OSC/2.json b/near-rt-ric-simulator/auto-test/testdata/OSC/2.json
new file mode 100644
index 0000000..9f8a4d4
--- /dev/null
+++ b/near-rt-ric-simulator/auto-test/testdata/OSC/2.json
@@ -0,0 +1,36 @@
+{
+  "$schema": "http://json-schema.org/draft-07/schema#",
+  "title": "OSC_Type2_1.0.0",
+  "description": "Type 2 policy type",
+  "type": "object",
+  "properties": {
+    "scope": {
+      "type": "object",
+      "properties": {
+        "sliceId": {
+          "type": "string"
+        }
+      },
+      "additionalProperties": false,
+      "required": [
+        "sliceId"
+      ]
+    },
+    "qoeObjectives": {
+      "type": "object",
+      "properties": {
+        "qoeScore": {
+          "type": "number"
+        }
+      },
+      "additionalProperties": false,
+      "required": [
+        "qoeScore"
+      ]
+    }
+  },
+  "additionalProperties": false,
+  "required": [
+    "scope", "qoeObjectives"
+  ]
+}
diff --git a/near-rt-ric-simulator/auto-test/testdata/OSC/pi1_template.json b/near-rt-ric-simulator/auto-test/testdata/OSC/pi1_template.json
new file mode 100644
index 0000000..7795808
--- /dev/null
+++ b/near-rt-ric-simulator/auto-test/testdata/OSC/pi1_template.json
@@ -0,0 +1,9 @@
+{
+    "scope": {
+      "ueId": "ueXXX",
+      "qosId": "qosXXX"
+    },
+    "qosObjective": {
+      "priorityLevel": XXX
+    }
+  }
\ No newline at end of file
diff --git a/near-rt-ric-simulator/auto-test/testdata/OSC/pi2_template.json b/near-rt-ric-simulator/auto-test/testdata/OSC/pi2_template.json
new file mode 100644
index 0000000..c8ac887
--- /dev/null
+++ b/near-rt-ric-simulator/auto-test/testdata/OSC/pi2_template.json
@@ -0,0 +1,8 @@
+{
+    "scope": {
+      "sliceId": "sliceXXX"
+    },
+    "qoeObjectives": {
+      "qoeScore": XXX
+    }
+  }
\ No newline at end of file
diff --git a/near-rt-ric-simulator/auto-test/testdata/OSC/sim_1.json b/near-rt-ric-simulator/auto-test/testdata/OSC/sim_1.json
new file mode 100644
index 0000000..537d86f
--- /dev/null
+++ b/near-rt-ric-simulator/auto-test/testdata/OSC/sim_1.json
@@ -0,0 +1,45 @@
+{
+  "name": "pt1",
+  "description": "pt1 policy type",
+  "policy_type_id": 1,
+  "create_schema": {
+    "$schema": "http://json-schema.org/draft-07/schema#",
+    "title": "OSC_Type1_1.0.0",
+    "description": "Type 1 policy type",
+    "type": "object",
+    "properties": {
+      "scope": {
+        "type": "object",
+        "properties": {
+          "ueId": {
+            "type": "string"
+          },
+          "qosId": {
+            "type": "string"
+          }
+        },
+        "additionalProperties": false,
+        "required": [
+          "ueId",
+          "qosId"
+        ]
+      },
+      "qosObjective": {
+        "type": "object",
+        "properties": {
+          "priorityLevel": {
+            "type": "number"
+          }
+        },
+        "additionalProperties": false,
+        "required": [
+          "priorityLevel"
+        ]
+      }
+    },
+    "additionalProperties": false,
+    "required": [
+      "scope", "qosObjective"
+    ]
+  }
+}
diff --git a/near-rt-ric-simulator/auto-test/testdata/OSC/sim_2.json b/near-rt-ric-simulator/auto-test/testdata/OSC/sim_2.json
new file mode 100644
index 0000000..a9eb8f3
--- /dev/null
+++ b/near-rt-ric-simulator/auto-test/testdata/OSC/sim_2.json
@@ -0,0 +1,41 @@
+{
+  "name": "pt2",
+  "description": "Pt2 policy type",
+  "policy_type_id": 1,
+  "create_schema": {
+    "$schema": "http://json-schema.org/draft-07/schema#",
+    "title": "OSC_Type2_1.0.0",
+    "description": "Type 2 policy type",
+    "type": "object",
+    "properties": {
+      "scope": {
+        "type": "object",
+        "properties": {
+          "sliceId": {
+            "type": "string"
+          }
+        },
+        "additionalProperties": false,
+        "required": [
+          "sliceId"
+        ]
+      },
+      "qoeObjectives": {
+        "type": "object",
+        "properties": {
+          "qoeScore": {
+            "type": "number"
+          }
+        },
+        "additionalProperties": false,
+        "required": [
+          "qoeScore"
+        ]
+      }
+    },
+    "additionalProperties": false,
+    "required": [
+      "scope", "qoeObjectives"
+    ]
+  }
+}
diff --git a/near-rt-ric-simulator/auto-test/testdata/STD/EMPTYTYPE.json b/near-rt-ric-simulator/auto-test/testdata/STD/EMPTYTYPE.json
new file mode 100644
index 0000000..9e26dfe
--- /dev/null
+++ b/near-rt-ric-simulator/auto-test/testdata/STD/EMPTYTYPE.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/near-rt-ric-simulator/auto-test/testdata/STD/pi1_template.json b/near-rt-ric-simulator/auto-test/testdata/STD/pi1_template.json
new file mode 100644
index 0000000..2a87513
--- /dev/null
+++ b/near-rt-ric-simulator/auto-test/testdata/STD/pi1_template.json
@@ -0,0 +1,9 @@
+{
+  "scope": {
+    "ueId": "ueXXX",
+    "qosId": "qosXXX"
+  },
+  "qosObjective": {
+    "priorityLevel": XXX
+  }
+}
\ No newline at end of file
diff --git a/near-rt-ric-simulator/auto-test/utils/pa-logviewer.sh b/near-rt-ric-simulator/auto-test/utils/pa-logviewer.sh
new file mode 100755
index 0000000..562bbea
--- /dev/null
+++ b/near-rt-ric-simulator/auto-test/utils/pa-logviewer.sh
@@ -0,0 +1,24 @@
+#!/usr/bin/env bash
+
+#  ============LICENSE_START===============================================
+#  Copyright (C) 2020 Nordix Foundation. 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=================================================
+#
+
+#Setup trace on
+
+curl http://localhost:8081/actuator/loggers/org.oransc.policyagent.clients.AsyncRestClient -X POST  -H 'Content-Type: application/json' -d '{"configuredLevel":"debug"}'
+
+docker logs -f policy-agent-container
\ No newline at end of file