]> granicus.if.org Git - check/commitdiff
* Added revision 6 of money example.
authorcpickett <cpickett@64e312b2-a51f-0410-8e61-82d0ca0eb02a>
Fri, 13 Oct 2006 03:55:47 +0000 (03:55 +0000)
committercpickett <cpickett@64e312b2-a51f-0410-8e61-82d0ca0eb02a>
Fri, 13 Oct 2006 03:55:47 +0000 (03:55 +0000)
* Fixed some whitespace errors in other revisions.

git-svn-id: svn+ssh://svn.code.sf.net/p/check/code/trunk@322 64e312b2-a51f-0410-8e61-82d0ca0eb02a

doc/example/src/money.6.c [new file with mode: 0644]
doc/example/src/money.c
doc/example/tests/check_money.2.c
doc/example/tests/check_money.3.c
doc/example/tests/check_money.6.c [new file with mode: 0644]

diff --git a/doc/example/src/money.6.c b/doc/example/src/money.6.c
new file mode 100644 (file)
index 0000000..47f09bb
--- /dev/null
@@ -0,0 +1,46 @@
+#include <stdlib.h>
+#include "money.h"
+
+struct Money
+{
+  int amount;
+  char *currency;
+};
+
+Money *
+money_create (int amount, char *currency)
+{
+  if (amount < 0)
+    {
+      return NULL;
+    }
+
+  Money *m = malloc (sizeof (Money));
+  if (m == NULL)
+    {
+      return NULL;
+    }
+
+  m->amount = amount;
+  m->currency = currency;
+  return m;
+}
+
+int
+money_amount (Money * m)
+{
+  return m->amount;
+}
+
+char *
+money_currency (Money * m)
+{
+  return m->currency;
+}
+
+void
+money_free (Money * m)
+{
+  free (m);
+  return;
+}
index 1b8af581102763536fb323438bcb53f0dccd73a7..47f09bb68827553e34a9c035b91e9ae47a198161 100644 (file)
@@ -42,4 +42,5 @@ void
 money_free (Money * m)
 {
   free (m);
+  return;
 }
index b3ae7e8b7762c6097c2739ff192a6702f20c998f..1234765aae7ef0cb4d46b6f06ac493c0c31e7088 100644 (file)
@@ -5,13 +5,13 @@ START_TEST (test_money_create)
 {
   Money *m;
   m = money_create (5, "USD");
-  fail_unless (money_amount (m) == 5,
-               "Amount not set correctly on creation");
+  fail_unless (money_amount (m) == 5, 
+              "Amount not set correctly on creation");
   fail_unless (strcmp (money_currency (m), "USD") == 0,
-               "Currency not set correctly on creation");
-  money_free(m);
+              "Currency not set correctly on creation");
+  money_free (m);
 }
-END_TEST
+END_TEST 
 
 int
 main (void)
index 52e448de6e7eb3da3f828c935e04f156d40c1336..1d8c7ba0b978399d4d6fe524e10916ce8ca93c45 100644 (file)
@@ -6,13 +6,13 @@ START_TEST (test_money_create)
 {
   Money *m;
   m = money_create (5, "USD");
-  fail_unless (money_amount (m) == 5,
-               "Amount not set correctly on creation");
+  fail_unless (money_amount (m) == 5, 
+              "Amount not set correctly on creation");
   fail_unless (strcmp (money_currency (m), "USD") == 0,
-               "Currency not set correctly on creation");
-  money_free(m);
+              "Currency not set correctly on creation");
+  money_free (m);
 }
-END_TEST
+END_TEST 
 
 Suite * money_suite (void)
 {
diff --git a/doc/example/tests/check_money.6.c b/doc/example/tests/check_money.6.c
new file mode 100644 (file)
index 0000000..9d2debb
--- /dev/null
@@ -0,0 +1,62 @@
+#include <stdlib.h>
+#include <check.h>
+#include "../src/money.h"
+
+START_TEST (test_money_create)
+{
+  Money *m;
+  m = money_create (5, "USD");
+  fail_unless (money_amount (m) == 5, 
+              "Amount not set correctly on creation");
+  fail_unless (strcmp (money_currency (m), "USD") == 0,
+              "Currency not set correctly on creation");
+  money_free (m);
+}
+END_TEST 
+
+START_TEST (test_money_create_neg)
+{
+  Money *m = money_create (-1, "USD");
+  fail_unless (m == NULL,
+              "NULL should be returned on attempt to create with "
+              "a negative amount");
+}
+END_TEST
+
+START_TEST (test_money_create_zero)
+{
+  Money *m = money_create (0, "USD");
+  fail_unless (money_amount (m) == 0, 
+              "Zero is a valid amount of money");
+}
+END_TEST
+
+Suite * money_suite (void)
+{
+  Suite *s = suite_create ("Money");
+
+  /* Core test case */
+  TCase *tc_core = tcase_create ("Core");
+  tcase_add_test (tc_core, test_money_create);
+  suite_add_tcase (s, tc_core);
+
+  /* Limits test case */
+  TCase *tc_limits = tcase_create ("Limits");
+  tcase_add_test (tc_limits, test_money_create_neg);
+  tcase_add_test (tc_limits, test_money_create_zero);
+  suite_add_tcase (s, tc_limits);
+
+  return s;
+}
+
+int
+main (void)
+{
+  int number_failed;
+  Suite *s = money_suite ();
+  SRunner *sr = srunner_create (s);
+  srunner_run_all (sr, CK_NORMAL);
+  number_failed = srunner_ntests_failed (sr);
+  srunner_free (sr);
+  return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
+}