cbc: Introduce test TC_cell_failure_restart_idle_mme

Related: OS#4945
Change-Id: Ie0ab3d4fbe1d9a824b1f69ceacbf7dfd4f0d9728
diff --git a/cbc/CBC_Tests.ttcn b/cbc/CBC_Tests.ttcn
index f8d04fe..aff5359 100644
--- a/cbc/CBC_Tests.ttcn
+++ b/cbc/CBC_Tests.ttcn
@@ -762,6 +762,31 @@
 	f_shutdown_helper();
 }
 
+/* Test cell in MME going unavailable for broadcasting and going available again */
+private function f_mme_TC_cell_failure_restart_idle_mme() runs on MME_ConnHdlr {
+	var template (value) Global_ENB_ID enb_id := ts_Global_ENB_ID_MACRO(f_enc_mcc_mnc('901'H, '70'H), 90);
+	var template (value) Failed_Cell_List fail_list := {
+		ts_SBCAP_ECGI(f_enc_mcc_mnc('901'H, '70'H), 1234),
+		ts_SBCAP_ECGI(f_enc_mcc_mnc('901'H, '70'H), 5678)
+	};
+	f_SBC_AP_send(ts_SBCAP_PWS_FAILURE(fail_list, enb_id));
+
+	f_sleep(1.0);
+
+	var template (value) Restarted_Cell_List cell_list;
+	cell_list := {
+		ts_SBCAP_ECGI(f_enc_mcc_mnc('901'H, '70'H), 1234),
+		ts_SBCAP_ECGI(f_enc_mcc_mnc('901'H, '70'H), 5678)
+	};
+	f_SBC_AP_send(ts_SBCAP_PWS_RESTART(cell_list, enb_id));
+}
+testcase TC_cell_failure_restart_idle_mme() runs on test_CT {
+	f_init(num_bsc := 0, num_mme := 1);
+	g_pars_MME[0].start_fn := refers(f_mme_TC_cell_failure_restart_idle_mme);
+	f_start();
+	f_shutdown_helper();
+}
+
 control {
 	execute( TC_rx_keepalive() );
 	execute( TC_rx_keepalive_timeout() );
@@ -784,6 +809,7 @@
 	execute( TC_create_nack_mme() );
 
 	execute( TC_cell_failure_restart_idle_bsc() );
+	execute( TC_cell_failure_restart_idle_mme() );
 }
 
 }
diff --git a/library/sbcap/SBC_AP_Templates.ttcn b/library/sbcap/SBC_AP_Templates.ttcn
index 68afb58..b002286 100644
--- a/library/sbcap/SBC_AP_Templates.ttcn
+++ b/library/sbcap/SBC_AP_Templates.ttcn
@@ -40,6 +40,17 @@
 	iE_Extensions := omit
 }
 
+template (value) Global_ENB_ID ts_Global_ENB_ID_MACRO(PLMNidentity plmn_id,
+						      integer macro_enb_id)
+
+:= {
+	pLMNidentity := plmn_id,
+	eNB_ID := {
+		macroENB_ID := int2bit(macro_enb_id, 20)
+	},
+	iE_Extensions := omit
+}
+
 template (value) SBC_AP_PDU
 ts_SBCAP_PWS_RESTART(
 			template (value) Restarted_Cell_List restart_cl,