aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2017-10-09 17:36:08 +0200
committerNeels Hofmeyr <neels@hofmeyr.de>2017-10-11 22:32:19 +0200
commitdd783056f7ede461dd27347fa86743a24c4c4eed (patch)
tree52062a5972a2b0255c9c1975ae3116618268f45a /tests
parente8ccd5013abe0e04b2400661405fd9e18e88cd89 (diff)
refactor db_subscr_lu()
Use named parameters in the SQL statement. Use db_bind_* functions to drop some code dup. Use explicit subscriber id arg instead of subscriber struct. Match return values and error logging to other db functions. Change-Id: I35665e84ddbe54a6f218b24033df969ad2e669a0
Diffstat (limited to 'tests')
-rw-r--r--tests/db/db_test.c37
-rw-r--r--tests/db/db_test.err137
2 files changed, 174 insertions, 0 deletions
diff --git a/tests/db/db_test.c b/tests/db/db_test.c
index 30de51d..5acd1e8 100644
--- a/tests/db/db_test.c
+++ b/tests/db/db_test.c
@@ -283,6 +283,43 @@ static void test_subscr_create_update_sel_delete()
ASSERT_RC(db_subscr_nam(dbc, "foobar", false, true), -ENOENT);
ASSERT_RC(db_subscr_nam(dbc, "foobar", false, false), -ENOENT);
+ comment("Record LU for PS and CS (SGSN and VLR names)");
+
+ ASSERT_RC(db_subscr_lu(dbc, id0, "5952", true), 0);
+ ASSERT_SEL(id, id0, 0);
+ ASSERT_RC(db_subscr_lu(dbc, id0, "712", false), 0);
+ ASSERT_SEL(id, id0, 0);
+
+ comment("Record LU for PS and CS (SGSN and VLR names) *again*");
+
+ ASSERT_RC(db_subscr_lu(dbc, id0, "111", true), 0);
+ ASSERT_SEL(id, id0, 0);
+ ASSERT_RC(db_subscr_lu(dbc, id0, "111", true), 0);
+ ASSERT_SEL(id, id0, 0);
+ ASSERT_RC(db_subscr_lu(dbc, id0, "222", false), 0);
+ ASSERT_SEL(id, id0, 0);
+ ASSERT_RC(db_subscr_lu(dbc, id0, "222", false), 0);
+ ASSERT_SEL(id, id0, 0);
+
+ comment("Unset LU info for PS and CS (SGSN and VLR names)");
+ ASSERT_RC(db_subscr_lu(dbc, id0, "", true), 0);
+ ASSERT_SEL(id, id0, 0);
+ ASSERT_RC(db_subscr_lu(dbc, id0, "", false), 0);
+ ASSERT_SEL(id, id0, 0);
+
+ ASSERT_RC(db_subscr_lu(dbc, id0, "111", true), 0);
+ ASSERT_RC(db_subscr_lu(dbc, id0, "222", false), 0);
+ ASSERT_SEL(id, id0, 0);
+ ASSERT_RC(db_subscr_lu(dbc, id0, NULL, true), 0);
+ ASSERT_SEL(id, id0, 0);
+ ASSERT_RC(db_subscr_lu(dbc, id0, NULL, false), 0);
+ ASSERT_SEL(id, id0, 0);
+
+ comment("Record LU for non-existent ID");
+ ASSERT_RC(db_subscr_lu(dbc, 99999, "5952", true), -ENOENT);
+ ASSERT_RC(db_subscr_lu(dbc, 99999, "712", false), -ENOENT);
+ ASSERT_SEL(id, 99999, -ENOENT);
+
comment("Delete non-existent / invalid IDs");
ASSERT_RC(db_subscr_delete_by_id(dbc, 999), -ENOENT);
diff --git a/tests/db/db_test.err b/tests/db/db_test.err
index f7c03d9..6e6a0ac 100644
--- a/tests/db/db_test.err
+++ b/tests/db/db_test.err
@@ -376,6 +376,143 @@ db_subscr_nam(dbc, "foobar", false, false) --> -ENOENT
DAUC Cannot disable CS: no such subscriber: IMSI='foobar'
+--- Record LU for PS and CS (SGSN and VLR names)
+
+db_subscr_lu(dbc, id0, "5952", true) --> 0
+
+db_subscr_get_by_id(dbc, id0, &g_subscr) --> 0
+struct hlr_subscriber {
+ .id = 1,
+ .imsi = '123456789000000',
+ .msisdn = '543210123456789',
+ .sgsn_number = '5952',
+}
+
+db_subscr_lu(dbc, id0, "712", false) --> 0
+
+db_subscr_get_by_id(dbc, id0, &g_subscr) --> 0
+struct hlr_subscriber {
+ .id = 1,
+ .imsi = '123456789000000',
+ .msisdn = '543210123456789',
+ .vlr_number = '712',
+ .sgsn_number = '5952',
+}
+
+
+--- Record LU for PS and CS (SGSN and VLR names) *again*
+
+db_subscr_lu(dbc, id0, "111", true) --> 0
+
+db_subscr_get_by_id(dbc, id0, &g_subscr) --> 0
+struct hlr_subscriber {
+ .id = 1,
+ .imsi = '123456789000000',
+ .msisdn = '543210123456789',
+ .vlr_number = '712',
+ .sgsn_number = '111',
+}
+
+db_subscr_lu(dbc, id0, "111", true) --> 0
+
+db_subscr_get_by_id(dbc, id0, &g_subscr) --> 0
+struct hlr_subscriber {
+ .id = 1,
+ .imsi = '123456789000000',
+ .msisdn = '543210123456789',
+ .vlr_number = '712',
+ .sgsn_number = '111',
+}
+
+db_subscr_lu(dbc, id0, "222", false) --> 0
+
+db_subscr_get_by_id(dbc, id0, &g_subscr) --> 0
+struct hlr_subscriber {
+ .id = 1,
+ .imsi = '123456789000000',
+ .msisdn = '543210123456789',
+ .vlr_number = '222',
+ .sgsn_number = '111',
+}
+
+db_subscr_lu(dbc, id0, "222", false) --> 0
+
+db_subscr_get_by_id(dbc, id0, &g_subscr) --> 0
+struct hlr_subscriber {
+ .id = 1,
+ .imsi = '123456789000000',
+ .msisdn = '543210123456789',
+ .vlr_number = '222',
+ .sgsn_number = '111',
+}
+
+
+--- Unset LU info for PS and CS (SGSN and VLR names)
+
+db_subscr_lu(dbc, id0, "", true) --> 0
+
+db_subscr_get_by_id(dbc, id0, &g_subscr) --> 0
+struct hlr_subscriber {
+ .id = 1,
+ .imsi = '123456789000000',
+ .msisdn = '543210123456789',
+ .vlr_number = '222',
+}
+
+db_subscr_lu(dbc, id0, "", false) --> 0
+
+db_subscr_get_by_id(dbc, id0, &g_subscr) --> 0
+struct hlr_subscriber {
+ .id = 1,
+ .imsi = '123456789000000',
+ .msisdn = '543210123456789',
+}
+
+db_subscr_lu(dbc, id0, "111", true) --> 0
+
+db_subscr_lu(dbc, id0, "222", false) --> 0
+
+db_subscr_get_by_id(dbc, id0, &g_subscr) --> 0
+struct hlr_subscriber {
+ .id = 1,
+ .imsi = '123456789000000',
+ .msisdn = '543210123456789',
+ .vlr_number = '222',
+ .sgsn_number = '111',
+}
+
+db_subscr_lu(dbc, id0, NULL, true) --> 0
+
+db_subscr_get_by_id(dbc, id0, &g_subscr) --> 0
+struct hlr_subscriber {
+ .id = 1,
+ .imsi = '123456789000000',
+ .msisdn = '543210123456789',
+ .vlr_number = '222',
+}
+
+db_subscr_lu(dbc, id0, NULL, false) --> 0
+
+db_subscr_get_by_id(dbc, id0, &g_subscr) --> 0
+struct hlr_subscriber {
+ .id = 1,
+ .imsi = '123456789000000',
+ .msisdn = '543210123456789',
+}
+
+
+--- Record LU for non-existent ID
+
+db_subscr_lu(dbc, 99999, "5952", true) --> -ENOENT
+DAUC Cannot update SGSN number for subscriber ID=99999: no such subscriber
+
+db_subscr_lu(dbc, 99999, "712", false) --> -ENOENT
+DAUC Cannot update VLR number for subscriber ID=99999: no such subscriber
+
+db_subscr_get_by_id(dbc, 99999, &g_subscr) --> -ENOENT
+DAUC Cannot read subscriber from db: ID=99999: No such subscriber
+
+
--- Delete non-existent / invalid IDs
db_subscr_delete_by_id(dbc, 999) --> -ENOENT