move tests/rua_helper.[ch] to src directory

The RUA Helper is not test-specific.
diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am
index 122c663..6a4e4dc 100644
--- a/src/tests/Makefile.am
+++ b/src/tests/Makefile.am
@@ -5,7 +5,7 @@
 check_PROGRAMS = test-ranap test-helpers test-hnbap hnb-test dummy-cn
 
 HNBAP_FILES = $(top_srcdir)/src/hnbap_common.c $(top_srcdir)/src/hnbap_decoder.c $(top_srcdir)/src/hnbap_encoder.c
-RUA_FILES = $(top_srcdir)/src/rua_common.c $(top_srcdir)/src/rua_decoder.c $(top_srcdir)/src/rua_encoder.c
+RUA_FILES = $(top_srcdir)/src/rua_common.c $(top_srcdir)/src/rua_decoder.c $(top_srcdir)/src/rua_encoder.c $(top_srcdir)/src/rua_msg_factory.c
 
 test_helpers_SOURCES = test-helpers.c
 test_helpers_LDADD = $(COMMON_LIBS) $(top_builddir)/src/libosmo-ranap.la
@@ -13,7 +13,7 @@
 test_hnbap_SOURCES = $(top_srcdir)/src/hnbap_common.c $(top_srcdir)/src/hnbap_decoder.c test-hnbap.c test_common.c
 test_hnbap_LDADD = $(COMMON_LIBS) $(top_builddir)/src/hnbap/libosmo-asn1-hnbap.a $(top_builddir)/src/libosmo-ranap.la
 
-hnb_test_SOURCES = $(HNBAP_FILES) $(RUA_FILES) hnb-test.c rua_helper.c test_common.c
+hnb_test_SOURCES = $(HNBAP_FILES) $(RUA_FILES) hnb-test.c test_common.c
 hnb_test_LDADD = $(COMMON_LIBS) $(top_builddir)/src/hnbap/libosmo-asn1-hnbap.a $(top_builddir)/src/rua/libosmo-asn1-rua.a $(top_builddir)/src/libosmo-ranap.la
 
 test_ranap_SOURCES = $(RANAP_FILES) test-ranap.c test_common.c
diff --git a/src/tests/hnb-test.c b/src/tests/hnb-test.c
index f26e222..b4a30f8 100644
--- a/src/tests/hnb-test.c
+++ b/src/tests/hnb-test.c
@@ -49,7 +49,7 @@
 #include "hnb-test.h"
 #include "hnbap_common.h"
 #include "hnbap_ies_defs.h"
-#include "rua_helper.h"
+#include "rua_msg_factory.h"
 #include "asn1helpers.h"
 #include "iu_helpers.h"
 #include "test_common.h"
diff --git a/src/tests/rua_helper.c b/src/tests/rua_helper.c
deleted file mode 100644
index d1dcbf6..0000000
--- a/src/tests/rua_helper.c
+++ /dev/null
@@ -1,151 +0,0 @@
-#include "rua_common.h"
-#include "rua_ies_defs.h"
-#include <osmocom/netif/stream.h>
-
-#include "hnbgw.h"
-#include "asn1helpers.h"
-
-struct msgb *rua_new_udt(struct msgb *inmsg)
-{
-	RUA_ConnectionlessTransfer_t out;
-	RUA_ConnectionlessTransferIEs_t ies;
-	struct msgb *msg;
-	int rc;
-
-	memset(&ies, 0, sizeof(ies));
-	OCTET_STRING_fromBuf(&ies.ranaP_Message.buf, inmsg->data, msgb_length(inmsg));
-	msgb_free(inmsg);
-
-	memset(&out, 0, sizeof(out));
-	rc = rua_encode_connectionlesstransferies(&out, &ies);
-	if (rc < 0)
-		return NULL;
-
-	msg = rua_generate_initiating_message(RUA_ProcedureCode_id_ConnectionlessTransfer,
-					      RUA_Criticality_reject,
-					      &asn_DEF_RUA_ConnectionlessTransfer,
-					      &out);
-
-	ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RUA_ConnectionlessTransfer, &out);
-
-	DEBUGP(DMAIN, "transmitting RUA payload of %u bytes\n", msgb_length(msg));
-
-	msgb_sctp_ppid(msg) = IUH_PPI_RUA;
-
-	return msg;
-}
-
-struct msgb *rua_new_conn(int is_ps, uint32_t context_id, struct msgb *inmsg)
-{
-	RUA_Connect_t out;
-	RUA_ConnectIEs_t ies;
-	struct msgb *msg;
-	uint32_t ctxidbuf;
-	int rc;
-
-	memset(&ies, 0, sizeof(ies));
-	if (is_ps)
-		ies.cN_DomainIndicator = RUA_CN_DomainIndicator_ps_domain;
-	else
-		ies.cN_DomainIndicator = RUA_CN_DomainIndicator_cs_domain;
-	asn1_u24_to_bitstring(&ies.context_ID, &ctxidbuf, context_id);
-	ies.establishment_Cause = RUA_Establishment_Cause_normal_call;
-	OCTET_STRING_fromBuf(&ies.ranaP_Message.buf, inmsg->data, msgb_length(inmsg));
-	msgb_free(inmsg);
-
-	memset(&out, 0, sizeof(out));
-	rc = rua_encode_connecties(&out, &ies);
-	if (rc < 0)
-		return NULL;
-
-	msg = rua_generate_initiating_message(RUA_ProcedureCode_id_Connect,
-					      RUA_Criticality_reject,
-					      &asn_DEF_RUA_Connect,
-					      &out);
-
-	ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RUA_Connect, &out);
-
-	DEBUGP(DMAIN, "transmitting RUA payload of %u bytes\n", msgb_length(msg));
-
-	msgb_sctp_ppid(msg) = IUH_PPI_RUA;
-
-	return msg;
-}
-
-struct msgb *rua_new_dt(int is_ps, uint32_t context_id, struct msgb *inmsg)
-{
-	RUA_DirectTransfer_t out;
-	RUA_DirectTransferIEs_t ies;
-	struct msgb *msg;
-	uint32_t ctxidbuf;
-	int rc;
-
-	memset(&ies, 0, sizeof(ies));
-	if (is_ps)
-		ies.cN_DomainIndicator = RUA_CN_DomainIndicator_ps_domain;
-	else
-		ies.cN_DomainIndicator = RUA_CN_DomainIndicator_cs_domain;
-	asn1_u24_to_bitstring(&ies.context_ID, &ctxidbuf, context_id);
-	OCTET_STRING_fromBuf(&ies.ranaP_Message.buf, inmsg->data, msgb_length(inmsg));
-	msgb_free(inmsg);
-
-	memset(&out, 0, sizeof(out));
-	rc = rua_encode_directtransferies(&out, &ies);
-	if (rc < 0)
-		return NULL;
-
-	msg = rua_generate_initiating_message(RUA_ProcedureCode_id_DirectTransfer,
-					      RUA_Criticality_reject,
-					      &asn_DEF_RUA_DirectTransfer,
-					      &out);
-
-	ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RUA_DirectTransfer, &out);
-
-	DEBUGP(DMAIN, "transmitting RUA payload of %u bytes\n", msgb_length(msg));
-
-	msgb_sctp_ppid(msg) = IUH_PPI_RUA;
-
-	return msg;
-}
-
-struct msgb *rua_new_disc(int is_ps, uint32_t context_id, struct msgb *inmsg)
-{
-	RUA_Disconnect_t out;
-	RUA_DisconnectIEs_t ies;
-	struct msgb *msg;
-	uint32_t ctxidbuf;
-	int rc;
-
-	memset(&ies, 0, sizeof(ies));
-	if (is_ps)
-		ies.cN_DomainIndicator = RUA_CN_DomainIndicator_ps_domain;
-	else
-		ies.cN_DomainIndicator = RUA_CN_DomainIndicator_cs_domain;
-	asn1_u24_to_bitstring(&ies.context_ID, &ctxidbuf, context_id);
-	/* FIXME: make cause configurable */
-	ies.cause.present = RUA_Cause_PR_radioNetwork;
-	ies.cause.choice.radioNetwork = RUA_CauseRadioNetwork_normal;
-	if (inmsg && inmsg->data&& msgb_length(inmsg)) {
-		ies.presenceMask |= DISCONNECTIES_RUA_RANAP_MESSAGE_PRESENT;
-		OCTET_STRING_fromBuf(&ies.ranaP_Message.buf, inmsg->data, msgb_length(inmsg));
-	}
-	msgb_free(inmsg);
-
-	memset(&out, 0, sizeof(out));
-	rc = rua_encode_disconnecties(&out, &ies);
-	if (rc < 0)
-		return NULL;
-
-	msg = rua_generate_initiating_message(RUA_ProcedureCode_id_Disconnect,
-					      RUA_Criticality_reject,
-					      &asn_DEF_RUA_Disconnect,
-					      &out);
-
-	ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RUA_Disconnect, &out);
-
-	DEBUGP(DMAIN, "transmitting RUA payload of %u bytes\n", msgb_length(msg));
-
-	msgb_sctp_ppid(msg) = IUH_PPI_RUA;
-
-	return msg;
-}
diff --git a/src/tests/rua_helper.h b/src/tests/rua_helper.h
deleted file mode 100644
index ca2f4e8..0000000
--- a/src/tests/rua_helper.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#pragma once
-
-#include <stdint.h>
-#include <osmocom/core/msgb.h>
-
-struct msgb *rua_new_udt(struct msgb *inmsg);
-struct msgb *rua_new_conn(int is_ps, uint32_t context_id, struct msgb *inmsg);
-struct msgb *rua_new_dt(int is_ps, uint32_t context_id, struct msgb *inmsg);
-struct msgb *rua_new_disc(int is_ps, uint32_t context_id, struct msgb *inmsg);