MSC_Tests: add testcase TC_sgsap_impl_imsi_det_noneps

We have a testcase that sends an explicit (UE-Initiated) imsi detach
from non EPS services. Lets also cover the case for an implicit
(Network-initated) detach.

Change-Id: I76049e6717680c54c18f97b7cd51944901a81ae7
Related: OS#3614
diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn
index a15fa57..ca633dc 100644
--- a/msc/MSC_Tests.ttcn
+++ b/msc/MSC_Tests.ttcn
@@ -3854,6 +3854,33 @@
 	vc_conn.done;
 }
 
+private function f_tc_sgsap_impl_imsi_det_noneps(charstring id, BSC_ConnHdlrPars pars)
+runs on BSC_ConnHdlr {
+	f_init_handler(pars);
+	f_sgs_perform_lu();
+	f_sleep(3.0);
+
+	var octetstring mme_name := f_enc_dns_hostname(mp_mme_name);
+	SGsAP.send(ts_SGsAP_IMSI_DETACH_IND(g_pars.imsi, mme_name, implicit_network_initiated));
+	SGsAP.receive(tr_SGsAP_IMSI_DETACH_ACK(g_pars.imsi));
+
+	if (f_ctrl_subscr_in_vlr(hex2str(g_pars.imsi))) {
+		setverdict(fail, "subscriber not removed from VLR");
+	}
+
+	f_sgsap_bssmap_screening();
+
+	setverdict(pass);
+}
+testcase TC_sgsap_impl_imsi_det_noneps() runs on MTC_CT {
+	var BSC_ConnHdlrPars pars;
+	var BSC_ConnHdlr vc_conn;
+	f_init(1, true);
+	pars := f_init_pars(11815, true);
+	vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_impl_imsi_det_noneps), pars);
+	vc_conn.done;
+}
+
 /* Trigger a paging request via VTY and send a paging reject in response */
 private function f_tc_sgsap_paging_rej(charstring id, BSC_ConnHdlrPars pars)
 runs on BSC_ConnHdlr {
@@ -4649,6 +4676,7 @@
 	execute( TC_sgsap_lu_and_nothing() );
 	execute( TC_sgsap_expl_imsi_det_eps() );
 	execute( TC_sgsap_expl_imsi_det_noneps() );
+	execute( TC_sgsap_impl_imsi_det_noneps() );
 	execute( TC_sgsap_paging_rej() );
 	execute( TC_sgsap_paging_subscr_rej() );
 	execute( TC_sgsap_paging_ue_unr() );