summaryrefslogtreecommitdiff
path: root/tests/unit/mongo/sync-gridfs-chunk
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/mongo/sync-gridfs-chunk')
-rw-r--r--tests/unit/mongo/sync-gridfs-chunk/sync_gridfs_chunked_file_cursor_get_chunk.c15
-rw-r--r--tests/unit/mongo/sync-gridfs-chunk/sync_gridfs_chunked_file_cursor_new.c19
-rw-r--r--tests/unit/mongo/sync-gridfs-chunk/sync_gridfs_chunked_file_free.c16
-rw-r--r--tests/unit/mongo/sync-gridfs-chunk/sync_gridfs_chunked_file_new_from_buffer.c71
-rw-r--r--tests/unit/mongo/sync-gridfs-chunk/sync_gridfs_chunked_find.c38
5 files changed, 159 insertions, 0 deletions
diff --git a/tests/unit/mongo/sync-gridfs-chunk/sync_gridfs_chunked_file_cursor_get_chunk.c b/tests/unit/mongo/sync-gridfs-chunk/sync_gridfs_chunked_file_cursor_get_chunk.c
new file mode 100644
index 0000000..f16378a
--- /dev/null
+++ b/tests/unit/mongo/sync-gridfs-chunk/sync_gridfs_chunked_file_cursor_get_chunk.c
@@ -0,0 +1,15 @@
+#include "test.h"
+#include "mongo.h"
+
+#include "libmongo-private.h"
+
+void
+test_mongo_sync_gridfs_chunked_file_cursor_get_chunk (void)
+{
+ gint32 size;
+
+ ok (mongo_sync_gridfs_chunked_file_cursor_get_chunk (NULL, &size) == NULL,
+ "mongo_sync_gridfs_file_cursor_get_chunk() fails with a NULL cursor");
+}
+
+RUN_TEST (1, mongo_sync_gridfs_chunked_file_cursor_get_chunk);
diff --git a/tests/unit/mongo/sync-gridfs-chunk/sync_gridfs_chunked_file_cursor_new.c b/tests/unit/mongo/sync-gridfs-chunk/sync_gridfs_chunked_file_cursor_new.c
new file mode 100644
index 0000000..22210f8
--- /dev/null
+++ b/tests/unit/mongo/sync-gridfs-chunk/sync_gridfs_chunked_file_cursor_new.c
@@ -0,0 +1,19 @@
+#include "test.h"
+#include "mongo.h"
+
+#include "libmongo-private.h"
+
+void
+test_mongo_sync_gridfs_chunked_file_cursor_new (void)
+{
+ mongo_sync_gridfs_chunked_file f;
+
+ ok (mongo_sync_gridfs_chunked_file_cursor_new (NULL, 0, 0) == NULL,
+ "mongo_sync_gridfs_file_cursor_new() fails with a NULL file");
+ ok (mongo_sync_gridfs_chunked_file_cursor_new (&f, -1, 0) == NULL,
+ "mongo_sync_gridfs_file_cursor_new() fails with an invalid start position");
+ ok (mongo_sync_gridfs_chunked_file_cursor_new (&f, 0, -1) == NULL,
+ "mongo_sync_gridfs_file_cursor_new() fails with an invalid max number");
+}
+
+RUN_TEST (3, mongo_sync_gridfs_chunked_file_cursor_new);
diff --git a/tests/unit/mongo/sync-gridfs-chunk/sync_gridfs_chunked_file_free.c b/tests/unit/mongo/sync-gridfs-chunk/sync_gridfs_chunked_file_free.c
new file mode 100644
index 0000000..c9fddfa
--- /dev/null
+++ b/tests/unit/mongo/sync-gridfs-chunk/sync_gridfs_chunked_file_free.c
@@ -0,0 +1,16 @@
+#include "test.h"
+#include "mongo.h"
+
+#include <errno.h>
+
+void
+test_mongo_sync_gridfs_chunked_file_free (void)
+{
+ errno = 0;
+ mongo_sync_gridfs_chunked_file_free (NULL);
+
+ cmp_ok (errno, "==", ENOTCONN,
+ "mongo_sync_gridfs_chunked_file_free() fails with a NULL file");
+}
+
+RUN_TEST (1, mongo_sync_gridfs_chunked_file_free);
diff --git a/tests/unit/mongo/sync-gridfs-chunk/sync_gridfs_chunked_file_new_from_buffer.c b/tests/unit/mongo/sync-gridfs-chunk/sync_gridfs_chunked_file_new_from_buffer.c
new file mode 100644
index 0000000..ba3fa2e
--- /dev/null
+++ b/tests/unit/mongo/sync-gridfs-chunk/sync_gridfs_chunked_file_new_from_buffer.c
@@ -0,0 +1,71 @@
+#include "test.h"
+#include "mongo.h"
+
+#define BUFFER_SIZE 256 * 1024 + 42
+
+void
+test_mongo_sync_gridfs_chunked_file_new_from_buffer (void)
+{
+ mongo_sync_connection *conn;
+ mongo_sync_gridfs *gfs;
+ bson *metadata;
+ guint8 *buffer;
+ mongo_sync_gridfs_chunked_file *gfile;
+
+ buffer = g_malloc (BUFFER_SIZE);
+ memset (buffer, 'a', BUFFER_SIZE);
+
+ conn = test_make_fake_sync_conn (4, TRUE);
+ gfs = mongo_sync_gridfs_new (conn, config.gfs_prefix);
+
+ metadata = bson_build (BSON_TYPE_STRING, "filename",
+ "gridfs_file_new_from_buffer", -1,
+ BSON_TYPE_NONE);
+ bson_finish (metadata);
+
+ ok (mongo_sync_gridfs_chunked_file_new_from_buffer (NULL, metadata,
+ buffer, BUFFER_SIZE) == FALSE,
+ "mongo_sync_gridfs_chunked_file_new_from_buffer() fails with a NULL GridFS");
+
+ mongo_sync_gridfs_free (gfs, TRUE);
+
+ begin_network_tests (5);
+
+ conn = mongo_sync_connect (config.primary_host, config.primary_port, FALSE);
+ gfs = mongo_sync_gridfs_new (conn, config.gfs_prefix);
+
+ ok (mongo_sync_gridfs_chunked_file_new_from_buffer (gfs, metadata,
+ NULL, BUFFER_SIZE) == FALSE,
+ "mongo_sync_gridfs_chunked_file_new_from_buffer() fails with NULL data");
+
+ ok (mongo_sync_gridfs_chunked_file_new_from_buffer (gfs, metadata,
+ buffer, 0) == FALSE,
+ "mongo_sync_gridfs_chunked_file_new_from_buffer() fails with an invalid data size");
+
+ ok (mongo_sync_gridfs_chunked_file_new_from_buffer (gfs, metadata, buffer,
+ BUFFER_SIZE) == FALSE,
+ "mongo_sync_gridfs_chunked_file_new_from_buffer() fails with uninitialized OID");
+
+ mongo_util_oid_init (0);
+
+ gfile = mongo_sync_gridfs_chunked_file_new_from_buffer (gfs, metadata,
+ buffer, BUFFER_SIZE);
+ ok (gfile != NULL,
+ "mongo_sync_gridfs_chunked_file_new_from_buffer() works with metadata");
+ mongo_sync_gridfs_chunked_file_free (gfile);
+
+ gfile = mongo_sync_gridfs_chunked_file_new_from_buffer (gfs, NULL,
+ buffer, BUFFER_SIZE);
+ ok (gfile != NULL,
+ "mongo_sync_gridfs_chunked_file_new_from_buffer() works without metadata");
+ mongo_sync_gridfs_chunked_file_free (gfile);
+
+ mongo_sync_gridfs_free (gfs, TRUE);
+
+ end_network_tests ();
+
+ bson_free (metadata);
+ g_free (buffer);
+}
+
+RUN_TEST (6, mongo_sync_gridfs_chunked_file_new_from_buffer);
diff --git a/tests/unit/mongo/sync-gridfs-chunk/sync_gridfs_chunked_find.c b/tests/unit/mongo/sync-gridfs-chunk/sync_gridfs_chunked_find.c
new file mode 100644
index 0000000..91514f9
--- /dev/null
+++ b/tests/unit/mongo/sync-gridfs-chunk/sync_gridfs_chunked_find.c
@@ -0,0 +1,38 @@
+#include "test.h"
+#include "mongo.h"
+
+#include <errno.h>
+
+void
+test_mongo_sync_gridfs_chunked_find (void)
+{
+ mongo_sync_connection *conn;
+ mongo_sync_gridfs *gfs;
+ bson *query;
+
+ query = bson_build (BSON_TYPE_STRING, "filename", "bogus-fn", -1,
+ BSON_TYPE_NONE);
+ bson_finish (query);
+
+ ok (mongo_sync_gridfs_chunked_find (NULL, query) == NULL,
+ "mongo_sync_gridfs_chunked_find() fails with a NULL GridFS");
+
+ begin_network_tests (2);
+
+ conn = mongo_sync_connect (config.primary_host, config.primary_port, FALSE);
+ gfs = mongo_sync_gridfs_new (conn, config.gfs_prefix);
+
+ ok (mongo_sync_gridfs_chunked_find (gfs, NULL) == NULL,
+ "mongo_sync_gridfs_chunked_find() fails with a NULL query");
+
+ ok (mongo_sync_gridfs_chunked_find (gfs, query) == NULL,
+ "mongo_sync_gridfs_chunked_find() fails when the file is not found");
+
+ mongo_sync_gridfs_free (gfs, TRUE);
+
+ end_network_tests ();
+
+ bson_free (query);
+}
+
+RUN_TEST (3, mongo_sync_gridfs_chunked_find);