summaryrefslogtreecommitdiff
path: root/tests/unit/mongo/client/connection_get_requestid.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/mongo/client/connection_get_requestid.c')
-rw-r--r--tests/unit/mongo/client/connection_get_requestid.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/unit/mongo/client/connection_get_requestid.c b/tests/unit/mongo/client/connection_get_requestid.c
new file mode 100644
index 0000000..9232689
--- /dev/null
+++ b/tests/unit/mongo/client/connection_get_requestid.c
@@ -0,0 +1,44 @@
+#include "test.h"
+#include "mongo.h"
+
+#include "libmongo-private.h"
+
+void
+test_mongo_connection_get_requestid (void)
+{
+ mongo_connection c, *conn;
+ mongo_packet *p;
+ bson *b;
+ gint reqid;
+
+ c.request_id = 42;
+
+ ok (mongo_connection_get_requestid (NULL) == -1,
+ "mongo_connection_get_requestid() fails with a NULL connection");
+ ok (mongo_connection_get_requestid (&c) == 42,
+ "mongo_connection_get_requestid() works");
+
+ begin_network_tests (2);
+
+ b = bson_new ();
+ bson_append_int32 (b, "getnonce", 1);
+ bson_finish (b);
+
+ p = mongo_wire_cmd_custom (42, config.db, 0, b);
+ bson_free (b);
+
+ conn = mongo_connect (config.primary_host, config.primary_port);
+ cmp_ok ((reqid = mongo_connection_get_requestid (conn)), "==", 0,
+ "Initial request id is 0");
+ mongo_packet_send (conn, p);
+ mongo_wire_packet_free (p);
+
+ cmp_ok (reqid, "<", mongo_connection_get_requestid (conn),
+ "Old request ID is smaller than the new one");
+
+ mongo_disconnect (conn);
+
+ end_network_tests ();
+}
+
+RUN_TEST (4, mongo_connection_get_requestid);