cbc: Introduce test TC_cell_failure_restart_idle_bsc

Change-Id: Ia868bf739c29d5b4548bbd1417c352ee6400f501
diff --git a/cbc/CBC_Tests.ttcn b/cbc/CBC_Tests.ttcn
index 3394bed..f8d04fe 100644
--- a/cbc/CBC_Tests.ttcn
+++ b/cbc/CBC_Tests.ttcn
@@ -735,6 +735,33 @@
 	f_shutdown_helper();
 }
 
+
+/* Test cell in BSC going unavailable for broadcasting and going available again */
+private function f_bsc_TC_cell_failure_restart_idle_bsc() runs on BSC_ConnHdlr {
+	var template (value) CBSP_FailureListItems fail_list := {
+		CBSP_FailureListItem_CGI(ts_BSSMAP_CI_CGI('901'H, '70'H, 23, 42), CBSP_CAUSE_CB_NOT_OPERATIONAL),
+		CBSP_FailureListItem_CGI(ts_BSSMAP_CI_CGI('901'H, '70'H, 24, 42), CBSP_CAUSE_CB_NOT_OPERATIONAL)
+	};
+	f_cbsp_send(ts_CBSP_FAILURE(fail_list, CBSP_BC_MSGT_CBS));
+	f_cbsp_send(ts_CBSP_FAILURE(fail_list, CBSP_BC_MSGT_EMERG));
+
+	f_sleep(1.0);
+
+	var template (value) BSSMAP_FIELD_CellIdentificationList cell_list;
+	cell_list := ts_BSSMAP_CIL_CGI({
+		ts_BSSMAP_CI_CGI('901'H, '70'H, 23, 42),
+		ts_BSSMAP_CI_CGI('901'H, '70'H, 24, 42)
+	});
+	f_cbsp_send(ts_CBSP_RESTART(cell_list, CBSP_BC_MSGT_CBS, CBSP_RI_DATA_LOST));
+	f_cbsp_send(ts_CBSP_RESTART(cell_list, CBSP_BC_MSGT_EMERG, CBSP_RI_DATA_LOST));
+}
+testcase TC_cell_failure_restart_idle_bsc() runs on test_CT {
+	f_init(num_bsc := 1, num_mme := 0);
+	g_pars_BSC[0].start_fn := refers(f_bsc_TC_cell_failure_restart_idle_bsc);
+	f_start();
+	f_shutdown_helper();
+}
+
 control {
 	execute( TC_rx_keepalive() );
 	execute( TC_rx_keepalive_timeout() );
@@ -755,6 +782,8 @@
 
 	execute( TC_create_nack_bsc() );
 	execute( TC_create_nack_mme() );
+
+	execute( TC_cell_failure_restart_idle_bsc() );
 }
 
 }