bsc: Add tests for CBSP MESSAGE STATUS QUERY procedure

Change-Id: I124a69c515d634bc054ed35e430af6b3c11ad46e
Related: SYS#5909
diff --git a/library/CBSP_Templates.ttcn b/library/CBSP_Templates.ttcn
index 5da2958..f86241e 100644
--- a/library/CBSP_Templates.ttcn
+++ b/library/CBSP_Templates.ttcn
@@ -667,6 +667,85 @@
 	return tr_CBSP(CBSP_MSGT_KILL_FAIL, ies);
 }
 
+/* 8.1.3.10 MESSAGE STATUS QUERY */
+template (value) CBSP_PDU
+ts_CBSP_MSG_STATUS_QUERY(template (value) uint16_t msg_id,
+			 template (value) uint16_t old_ser_nr,
+			 template (value) BSSMAP_FIELD_CellIdentificationList cell_list,
+			 template (value) uint8_t channel_ind) :=
+	ts_CBSP(CBSP_MSGT_MSG_STATUS_QUERY, {
+			ts_CbspMsgId(msg_id),
+			ts_OldSerNo(old_ser_nr),
+			ts_CbspCellList(cell_list),
+			ts_CbspChannelInd(channel_ind)});
+template (present) CBSP_PDU
+tr_CBSP_MSG_STATUS_QUERY(template (present) uint16_t msg_id := ?,
+			 template (present) uint16_t old_ser_nr := ?,
+			 template (present) BSSMAP_FIELD_CellIdentificationList cell_list := ?,
+			 template (present) uint8_t channel_ind := ?) :=
+	ts_CBSP(CBSP_MSGT_MSG_STATUS_QUERY, {
+			ts_CbspMsgId(msg_id),
+			ts_OldSerNo(old_ser_nr),
+			ts_CbspCellList(cell_list),
+			ts_CbspChannelInd(channel_ind)});
+
+/* 8.1.3.11 MESSAGE STATUS QUERY COMPLETE */
+template (value) CBSP_PDU
+ts_CBSP_MSG_STATUS_QUERY_COMPL(template (value) uint16_t msg_id, template (value) uint16_t old_ser_nr,
+			       template (value) CBSP_IE_NumBcastComplList compl_list,
+			       template (value) uint8_t channel_ind) :=
+	ts_CBSP(CBSP_MSGT_MSG_STATUS_QUERY_COMPL, {
+		ts_CbspMsgId(msg_id),
+		ts_OldSerNo(old_ser_nr),
+		ts_CbspNumComplList(valueof(compl_list)),
+		ts_CbspChannelInd(channel_ind)});
+template (present) CBSP_PDU
+tr_CBSP_MSG_STATUS_QUERY_COMPL(template (present) uint16_t msg_id, template (present) uint16_t old_ser_nr,
+				template (present) CBSP_IE_NumBcastComplList compl_list,
+				template (present) uint8_t channel_ind) :=
+	tr_CBSP(CBSP_MSGT_MSG_STATUS_QUERY_COMPL, {
+		tr_CbspMsgId(msg_id),
+		tr_OldSerNo(old_ser_nr),
+		tr_CbspNumComplList(compl_list),
+		tr_CbspChannelInd(channel_ind)});
+
+/* 8.1.3.12 MESSAGE STATUS QUERY FAILURE */
+function ts_CBSP_MSG_STATUS_QUERY_FAIL(template (value) uint16_t msg_id, template (value) uint16_t old_ser_nr,
+				       template (value) CBSP_FailureListItems fail_list,
+				       template (value) uint8_t channel_ind,
+				       template (omit) CBSP_IE_NumBcastComplList compl_list)
+return template (value) CBSP_PDU {
+	var template (value) CBSP_IEs ies := {
+		ts_CbspMsgId(msg_id),
+		ts_OldSerNo(old_ser_nr),
+		ts_CbspFailList(fail_list),
+		ts_CbspChannelInd(channel_ind)
+	};
+	if (not istemplatekind(compl_list, "omit")) {
+		ies[lengthof(ies)] := ts_CbspNumComplList(valueof(compl_list));
+	}
+	return ts_CBSP(CBSP_MSGT_MSG_STATUS_QUERY_FAIL, ies);
+}
+function tr_CBSP_MSG_STATUS_QUERY_FAIL(template (present) uint16_t msg_id := ?, template (present) uint16_t old_ser_nr := ?,
+				       template (present) CBSP_FailureListItems fail_list := ?,
+				       template (present) uint8_t channel_ind := ?,
+				       template CBSP_IE_NumBcastComplList compl_list := *)
+return template (present) CBSP_PDU {
+	var template (present) CBSP_IEs ies := {
+		tr_CbspMsgId(msg_id),
+		tr_OldSerNo(old_ser_nr),
+		tr_CbspFailList(fail_list),
+		tr_CbspChannelInd(channel_ind)
+	};
+	if (istemplatekind(compl_list, "*")) {
+		testcase.stop("TITAN > 6.5.0 doesn't support this");
+		//ies[lengthof(ies)] := ts_CbspNumComplList(valueof(compl_list));
+	} else if (not istemplatekind(compl_list, "omit")) {
+		ies[lengthof(ies)] := tr_CbspNumComplList(compl_list);
+	}
+	return tr_CBSP(CBSP_MSGT_MSG_STATUS_QUERY_FAIL, ies);
+}
+
 
 /* 8.1.3.16 RESET */
 template (value) CBSP_PDU ts_CBSP_RESET(template (value) BSSMAP_FIELD_CellIdentificationList cell_list) :=