Added test code for lm-data-objects
authorMikael Hallendal <micke@imendio.com>
Wed, 22 Oct 2008 13:12:40 +0200
changeset 536 d2e9e1df6d82
parent 535 65e61128ef18
child 537 bdc5234550d2
Added test code for lm-data-objects
docs/reference/loudmouth-undeclared.txt
loudmouth/lm-data-objects.c
loudmouth/lm-data-objects.h
tests/Makefile.am
tests/test-data-objects.c
--- a/loudmouth/lm-data-objects.c	Tue Oct 21 15:47:01 2008 +0200
+++ b/loudmouth/lm-data-objects.c	Wed Oct 22 13:12:40 2008 +0200
@@ -22,7 +22,8 @@
 
 #include "lm-data-objects.h"
 
-static void auth_parameters_free (LmAuthParameters *params);
+static void auth_parameters_free      (LmAuthParameters    *params);
+static void connect_parameters_free   (LmConnectParameters *params);
 
 struct LmAuthParameters {
     gchar *username;
@@ -32,6 +33,14 @@
     guint  ref_count;
 };
 
+struct LmConnectParameters {
+    gchar *domain;
+    gchar *host;
+    guint  port;
+    
+    guint  ref_count;
+};
+
 static void
 auth_parameters_free (LmAuthParameters *params)
 {
@@ -42,6 +51,15 @@
     g_slice_free (LmAuthParameters, params);
 }
 
+static void
+connect_parameters_free (LmConnectParameters *params)
+{
+    g_free (params->domain);
+    g_free (params->host);
+    
+    g_slice_free (LmConnectParameters, params);
+}
+
 LmAuthParameters *
 lm_auth_parameters_new (const gchar *username,
                         const gchar *password,
@@ -106,4 +124,68 @@
     if (params->ref_count == 0) {
         auth_parameters_free (params);
     }
+}
+
+LmConnectParameters *
+lm_connect_parameters_new (const gchar *domain,
+                           const gchar *host,
+                           guint        port)
+{
+    LmConnectParameters *params;
+    
+    params = g_slice_new0 (LmConnectParameters);
+    
+    params->domain = g_strdup (domain);
+    params->host   = g_strdup (host);
+    params->port   = port;
+    
+    params->ref_count = 1;
+    
+    return params;
+}
+
+const gchar *
+lm_connect_parameters_get_domain (LmConnectParameters *params)
+{
+    g_return_val_if_fail (params != NULL, NULL);
+    
+    return params->domain;
+}
+
+const gchar *
+lm_connect_parameters_get_host (LmConnectParameters *params)
+{
+    g_return_val_if_fail (params != NULL, NULL);
+    
+    return params->host;
+}
+
+guint
+lm_connect_parameters_get_port (LmConnectParameters *params)
+{
+    g_return_val_if_fail (params != NULL, 0);
+    
+    return params->port;
+}
+
+LmConnectParameters *
+lm_connect_parameters_ref (LmConnectParameters *params)
+{
+    g_return_val_if_fail (params != NULL, NULL);
+    
+    params->ref_count++;
+    
+    return params;
+}
+
+void
+lm_connect_parameters_unref (LmConnectParameters *params)
+{
+    g_return_if_fail (params != NULL);
+    
+    params->ref_count--;
+    
+    if (params->ref_count == 0) {
+        connect_parameters_free (params);
+    }
 }
\ No newline at end of file
--- a/loudmouth/lm-data-objects.h	Tue Oct 21 15:47:01 2008 +0200
+++ b/loudmouth/lm-data-objects.h	Wed Oct 22 13:12:40 2008 +0200
@@ -20,7 +20,8 @@
 
 #include <glib.h>
 
-typedef struct LmAuthParameters LmAuthParameters;
+typedef struct LmAuthParameters    LmAuthParameters;
+typedef struct LmConnectParameters LmConnectParameters;
 
 LmAuthParameters * lm_auth_parameters_new (const gchar *username,
                                            const gchar *password,
@@ -31,4 +32,15 @@
 const gchar *      lm_auth_parameters_get_resource (LmAuthParameters *params);
 
 LmAuthParameters * lm_auth_parameters_ref          (LmAuthParameters *params);
-void               lm_auth_parameters_unref        (LmAuthParameters *params);
\ No newline at end of file
+void               lm_auth_parameters_unref        (LmAuthParameters *params);
+
+LmConnectParameters * lm_connect_parameters_new        (const gchar            *domain,
+                                                        const gchar            *host,
+                                                        guint                   port);
+
+const gchar *         lm_connect_parameters_get_domain (LmConnectParameters *params);
+const gchar *         lm_connect_parameters_get_host   (LmConnectParameters *params);
+guint                 lm_connect_parameters_get_port   (LmConnectParameters *params);
+
+LmConnectParameters * lm_connect_parameters_ref        (LmConnectParameters *params);
+void                  lm_connect_parameters_unref      (LmConnectParameters *params);
\ No newline at end of file
--- a/tests/Makefile.am	Tue Oct 21 15:47:01 2008 +0200
+++ b/tests/Makefile.am	Wed Oct 22 13:12:40 2008 +0200
@@ -5,19 +5,25 @@
 noinst_PROGRAMS = $(TEST_PROGS)
 TEST_PROGS = 
 
-TEST_PROGS += test-parser
+TEST_PROGS += test-parser                       \
+			  test-data-objects
+
 test_parser_SOURCES =                           \
-    test-parser.c
+	test-parser.c
+	
+test_data_objects_SOURCES =                     \
+	test-data-objects.c                         \
+	$(top_srcdir)/loudmouth/lm-data-objects.c
 
 AM_CPPFLAGS =                                   \
-    -I.                                         \
-    -I$(top_srcdir)                             \
-    -DLM_COMPILATION                            \
-    -DRUNTIME_ENDIAN                            \
-    $(LOUDMOUTH_CFLAGS)                         \
-    -DPARSER_TEST_DIR="\"$(top_srcdir)/tests/parser-tests\""
+	-I.                                         \
+	-I$(top_srcdir)                             \
+	-DLM_COMPILATION                            \
+	-DRUNTIME_ENDIAN                            \
+	$(LOUDMOUTH_CFLAGS)                         \
+	-DPARSER_TEST_DIR="\"$(top_srcdir)/tests/parser-tests\""
 
 LIBS =                                          \
-    $(LOUDMOUTH_LIBS)                           \
-    $(top_builddir)/loudmouth/libloudmouth-1.la
+	$(LOUDMOUTH_LIBS)                           \
+	$(top_builddir)/loudmouth/libloudmouth-1.la
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-data-objects.c	Wed Oct 22 13:12:40 2008 +0200
@@ -0,0 +1,62 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * Copyright (C) 2008 Imendio AB
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include <stdlib.h>
+#include <glib.h>
+
+#include "loudmouth/lm-data-objects.h"
+
+static void
+test_auth_parameters ()
+{
+    LmAuthParameters *params;
+    
+    params = lm_auth_parameters_new ("my_user", "my_pass", "my_resource");
+    g_assert (g_strcmp0 ("my_user", lm_auth_parameters_get_username (params)) == 0);
+    g_assert (g_strcmp0 ("my_pass", lm_auth_parameters_get_password (params)) == 0);
+    g_assert (g_strcmp0 ("my_resource", lm_auth_parameters_get_resource (params)) == 0);
+    
+    lm_auth_parameters_unref (params);
+}
+
+static void
+test_connect_parameters ()
+{
+    LmConnectParameters *params;
+    
+    params = lm_connect_parameters_new ("my_domain", "my_host", 5223);
+    g_assert (g_strcmp0 ("my_domain", lm_connect_parameters_get_domain (params)) == 0);
+    g_assert (g_strcmp0 ("my_host", lm_connect_parameters_get_host (params)) == 0);
+    g_assert (5223 == lm_connect_parameters_get_port (params));
+    
+    lm_connect_parameters_unref (params);
+}
+
+int 
+main (int argc, char **argv)
+{
+    g_test_init (&argc, &argv, NULL);
+
+    g_test_add_func ("/data_objects/auth_paramters", test_auth_parameters);
+    g_test_add_func ("/data_objects/connect_parameters", test_connect_parameters);
+
+    return g_test_run ();
+}
+