Index: uspace/srv/net/udp/test/assoc.c
===================================================================
--- uspace/srv/net/udp/test/assoc.c	(revision 16b0ac3f2a8983b30bbfaa3e03d69893943945c4)
+++ uspace/srv/net/udp/test/assoc.c	(revision 255251333a4297ae92eaac46deaff207b5dcca67)
@@ -31,6 +31,8 @@
 #include <io/log.h>
 #include <pcut/pcut.h>
+#include <str.h>
 
 #include "../assoc.h"
+#include "../msg.h"
 
 PCUT_INIT;
@@ -93,11 +95,37 @@
 }
 
+/** Test adding, removing a reference to association */
 PCUT_TEST(addref_delref)
 {
+	udp_assoc_t *assoc;
+	inet_ep2_t epp;
+
+	inet_ep2_init(&epp);
+
+	assoc = udp_assoc_new(&epp, &test_assoc_cb, NULL);
+	PCUT_ASSERT_NOT_NULL(assoc);
+
+	udp_assoc_addref(assoc);
+	udp_assoc_delref(assoc);
+
+	udp_assoc_delete(assoc);
 }
 
+/** Test setting IP link in association */
 PCUT_TEST(set_iplink)
 {
-}
+	udp_assoc_t *assoc;
+	inet_ep2_t epp;
+
+	inet_ep2_init(&epp);
+
+	assoc = udp_assoc_new(&epp, &test_assoc_cb, NULL);
+	PCUT_ASSERT_NOT_NULL(assoc);
+
+	udp_assoc_set_iplink(assoc, 42);
+	PCUT_ASSERT_INT_EQUALS(42, assoc->ident.local_link);
+
+	udp_assoc_delete(assoc);
+ }
 
 PCUT_TEST(send_recv)
@@ -105,14 +133,58 @@
 }
 
+/** Test udp_assoc_received() */
 PCUT_TEST(received)
 {
+	udp_assoc_t *assoc;
+	inet_ep2_t epp;
+	errno_t rc;
+	udp_msg_t *msg;
+	const char *msgstr = "Hello";
+	bool received;
+
+	msg = udp_msg_new();
+	PCUT_ASSERT_NOT_NULL(msg);
+	msg->data_size = str_size(msgstr) + 1;
+	msg->data = str_dup(msgstr);
+
+	inet_ep2_init(&epp);
+	inet_addr(&epp.remote.addr, 127, 0, 0, 1);
+	epp.remote.port = 1;
+	inet_addr(&epp.local.addr, 127, 0, 0, 1);
+	epp.local.port = 2;
+
+	assoc = udp_assoc_new(&epp, &test_assoc_cb, (void *) &received);
+	PCUT_ASSERT_NOT_NULL(assoc);
+
+	rc = udp_assoc_add(assoc);
+	PCUT_ASSERT_ERRNO_VAL(EOK, rc);
+
+	received = false;
+	udp_assoc_received(&epp, msg);
+	PCUT_ASSERT_TRUE(received);
+
+	udp_assoc_remove(assoc);
+	udp_assoc_delete(assoc);
 }
 
+/** Test udp_assoc_reset() */
 PCUT_TEST(reset)
 {
+	udp_assoc_t *assoc;
+	inet_ep2_t epp;
+
+	inet_ep2_init(&epp);
+	assoc = udp_assoc_new(&epp, &test_assoc_cb, NULL);
+	PCUT_ASSERT_NOT_NULL(assoc);
+
+	udp_assoc_reset(assoc);
+	udp_assoc_delete(assoc);
 }
 
 static void test_recv_msg(void *arg, inet_ep2_t *epp, udp_msg_t *msg)
 {
+	bool *received = (bool *) arg;
+
+	*received = true;
 }
 
