remsim: New TC_slotmap_del_active_client() test
This test verifies that a slotmap delete via REST will not only
delete it from the bankd, but also from the client.
Change-Id: I8c4e53231b5386b00fe2938cde2091aa8b2e2027
Related: OS#4399
diff --git a/remsim/RemsimServer_Tests.ttcn b/remsim/RemsimServer_Tests.ttcn
index f0589ef..f2dbc25 100644
--- a/remsim/RemsimServer_Tests.ttcn
+++ b/remsim/RemsimServer_Tests.ttcn
@@ -390,7 +390,7 @@
f_ensure_slotmaps({});
}
-/* simple delete of a 'ACTIVE' slotmap */
+/* simple delete of a 'ACTIVE' slotmap from server + bankd */
testcase TC_slotmap_del_active() runs on test_CT {
var ComponentIdentity rspro_id := valueof(ts_CompId(remsimBankd, testcasename()));
f_rspro_init(rspro[0], mp_server_ip, mp_server_port, rspro_id, 0);
@@ -429,6 +429,58 @@
}
+/* simple delete of a 'ACTIVE' slotmap from client */
+testcase TC_slotmap_del_active_client() runs on test_CT {
+ var ComponentIdentity rspro_id := valueof(ts_CompId(remsimBankd, testcasename()));
+ f_rspro_init(rspro[0], mp_server_ip, mp_server_port, rspro_id, 0);
+ rspro[0].rspro_bank_id := 1;
+ rspro[0].rspro_bank_nslots := 8;
+
+ rspro_id := valueof(ts_CompId(remsimClient, testcasename()));
+ f_rspro_init(rspro[1], mp_server_ip, mp_server_port, rspro_id, 1);
+ rspro[1].rspro_client_slot := valueof(ts_ClientSlot(3,4));
+
+ f_rsres_init();
+ var JsSlotmap sm := valueof(ts_JsSlotmap(ts_BankSlot(1,2), ts_ClientSlot(3,4)));
+ var HTTPResponse res;
+
+ /* Create a new slotmap via HTTP */
+ res := f_rsres_post_slotmap(sm);
+
+ /* verify that the slotmap exists and is NEW */
+ f_ensure_slotmap_exists_only(sm.client, sm.bank, NEW);
+
+ /* connect a bankd for that slotmap */
+ f_rspro_connect_client(0);
+
+ /* connect a client for that slotmap */
+ f_rspro_connect_client(1);
+
+ /* expect the slotmap to be pushed to bank and ACK it */
+ as_rspro_create_mapping(0, sm.client, sm.bank);
+
+ /* verify that the slotmap exists and is ACTIVE */
+ f_ensure_slotmap_exists_only(sm.client, sm.bank, ACTIVE);
+
+ /* expect the client to be configured with bankd side settings */
+ as_rspro_cfg_client_bank(1, sm.bank, ?/*FIXME*/);
+
+ f_sleep(1.0);
+
+ /* delete the slotmap via REST */
+ res := f_rsres_delete_slotmap(sm.bank);
+
+ /* verify the slotmap is gone from REST interface immediately */
+ f_ensure_slotmaps({});
+
+ /* verify the slotmap is removed from bankd */
+ as_rspro_remove_mapping(0, sm.client, sm.bank);
+
+ /* verify the slotmap is removed from client by setting IP/port to '0' */
+ as_rspro_cfg_client_bank(1, ?, tr_IpPort(ts_IPv4("0.0.0.0"), 0));
+}
+
+
/* Add a slotmap to a currently active bank */
testcase TC_slotmap_add_active_bank() runs on test_CT {
var ComponentIdentity rspro_id := valueof(ts_CompId(remsimBankd, testcasename()));
@@ -478,6 +530,7 @@
execute( TC_slotmap_del_new() );
execute( TC_slotmap_del_unack() );
execute( TC_slotmap_del_active() );
+ execute( TC_slotmap_del_active_client() );
execute( TC_slotmap_add_active_bank() );
}