mongodb: Fixed failing test for `aggregate` method.
[nit.git] / lib / mongodb / mongodb.nit
index 3469976..7db69e7 100644 (file)
@@ -22,7 +22,7 @@
 #
 # ~~~
 # # Opens the connexion with the Mongo server.
-# var client = new MongoClient("mongodb://localhost:27017/")
+# var client = new MongoClient("mongodb://mongo:27017/")
 #
 # # Select the database.
 # var db_suffix = "NIT_TESTING_ID".environ
@@ -96,9 +96,9 @@ private class BSON
        end
 
        redef fun to_s do
-               var ns = native.to_native_string
-               var res = ns.to_s_with_copy
-               ns.free # manual free of gc allocated NativeString
+               var ns = native.to_c_string
+               var res = ns.to_s
+               ns.free # manual free of gc allocated CString
                return res
        end
 
@@ -152,7 +152,7 @@ class MongoError
        # Human readable error message.
        fun message: String do
                var ns = native.message
-               var res = ns.to_s_with_copy
+               var res = ns.to_s
                ns.free
                return res
        end
@@ -197,7 +197,7 @@ end
 # Usage:
 #
 # ~~~
-# var uri = "mongodb://localhost:27017/"
+# var uri = "mongodb://mongo:27017/"
 # var client = new MongoClient(uri)
 # assert client.server_uri == uri
 # ~~~
@@ -216,7 +216,7 @@ class MongoClient
        # Returns `null` if an error occured. See `last_error`.
        #
        # ~~~
-       # var client = new MongoClient("mongodb://localhost:27017/")
+       # var client = new MongoClient("mongodb://mongo:27017/")
        # assert client.server_status["process"] == "mongod"
        # ~~~
        fun server_status: nullable JsonObject do
@@ -230,12 +230,12 @@ class MongoClient
        # Lists available database names.
        #
        # ~~~
-       # var client = new MongoClient("mongodb://localhost:27017/")
+       # var client = new MongoClient("mongodb://mongo:27017/")
        # var db_suffix = "NIT_TESTING_ID".environ
        # var db_name = "test_{db_suffix}"
        # var db = client.database(db_name)
        # db.collection("test").insert(new JsonObject)
-       # assert client.database_names.has("test")
+       # assert client.database_names.has(db_name)
        # ~~~
        fun database_names: Array[String] do
                var res = new Array[String]
@@ -244,7 +244,7 @@ class MongoClient
                var i = 0
                var name = nas[i]
                while not name.address_is_null do
-                       res.add name.to_s_with_copy
+                       res.add name.to_s
                        name.free
                        i += 1
                        name = nas[i]
@@ -259,7 +259,7 @@ class MongoClient
        # There is no need to create a database manually.
        #
        # ~~~
-       # var client = new MongoClient("mongodb://localhost:27017/")
+       # var client = new MongoClient("mongodb://mongo:27017/")
        # var db_suffix = "NIT_TESTING_ID".environ
        # var db_name = "test_{db_suffix}"
        # var db = client.database(db_name)
@@ -321,7 +321,7 @@ class MongoDb
        # Returns `null` if an error occured. See `Sys::last_mongoc_error`.
        #
        # ~~~
-       # var client = new MongoClient("mongodb://localhost:27017/")
+       # var client = new MongoClient("mongodb://mongo:27017/")
        # var db_suffix = "NIT_TESTING_ID".environ
        # var db_name = "test_{db_suffix}"
        # var db = client.database(db_name)
@@ -335,7 +335,7 @@ class MongoDb
                var i = 0
                var name = nas[i]
                while not name.address_is_null do
-                       res.add name.to_s_with_copy
+                       res.add name.to_s
                        name.free
                        i += 1
                        name = nas[i]
@@ -346,7 +346,7 @@ class MongoDb
        # Loads or creates a collection by its `name`.
        #
        # ~~~
-       # var client = new MongoClient("mongodb://localhost:27017/")
+       # var client = new MongoClient("mongodb://mongo:27017/")
        # var db_suffix = "NIT_TESTING_ID".environ
        # var db_name = "test_{db_suffix}"
        # var db = client.database(db_name)
@@ -360,7 +360,7 @@ class MongoDb
        # Checks if a collection named `name` exists.
        #
        # ~~~
-       # var client = new MongoClient("mongodb://localhost:27017/")
+       # var client = new MongoClient("mongodb://mongo:27017/")
        # var db_suffix = "NIT_TESTING_ID".environ
        # var db_name = "test_{db_suffix}"
        # var db = client.database(db_name)
@@ -420,7 +420,7 @@ class MongoCollection
        # Returns `false` if an error occured. See `Sys::last_mongoc_error`.
        #
        # ~~~
-       # var client = new MongoClient("mongodb://localhost:27017/")
+       # var client = new MongoClient("mongodb://mongo:27017/")
        # var db_suffix = "NIT_TESTING_ID".environ
        # var db_name = "test_{db_suffix}"
        # var db = client.database(db_name)
@@ -455,7 +455,7 @@ class MongoCollection
        # Returns `false` if an error occured. See `Sys::last_mongoc_error`.
        #
        # ~~~
-       # var client = new MongoClient("mongodb://localhost:27017/")
+       # var client = new MongoClient("mongodb://mongo:27017/")
        # var db_suffix = "NIT_TESTING_ID".environ
        # var db_name = "test_{db_suffix}"
        # var db = client.database(db_name)
@@ -488,7 +488,7 @@ class MongoCollection
        # Returns `false` if an error occured. See `Sys::last_mongoc_error`.
        #
        # ~~~
-       # var client = new MongoClient("mongodb://localhost:27017/")
+       # var client = new MongoClient("mongodb://mongo:27017/")
        # var db_suffix = "NIT_TESTING_ID".environ
        # var db_name = "test_{db_suffix}"
        # var db = client.database(db_name)
@@ -513,7 +513,7 @@ class MongoCollection
        # No upsert is done, see `save` instead.
        #
        # ~~~
-       # var client = new MongoClient("mongodb://localhost:27017/")
+       # var client = new MongoClient("mongodb://mongo:27017/")
        # var db_suffix = "NIT_TESTING_ID".environ
        # var db_name = "test_{db_suffix}"
        # var db = client.database(db_name)
@@ -544,7 +544,7 @@ class MongoCollection
        # Returns `-1` if an error occured. See `Sys::last_mongoc_error`.
        #
        # ~~~
-       # var client = new MongoClient("mongodb://localhost:27017/")
+       # var client = new MongoClient("mongodb://mongo:27017/")
        # var db_suffix = "NIT_TESTING_ID".environ
        # var db_name = "test_{db_suffix}"
        # var db = client.database(db_name)
@@ -566,7 +566,7 @@ class MongoCollection
        # Returns `null` if an error occured. See `Sys::last_mongoc_error`.
        #
        # ~~~
-       # var client = new MongoClient("mongodb://localhost:27017/")
+       # var client = new MongoClient("mongodb://mongo:27017/")
        # var db_suffix = "NIT_TESTING_ID".environ
        # var db_name = "test_{db_suffix}"
        # var db = client.database(db_name)
@@ -599,7 +599,7 @@ class MongoCollection
        # * `limit` number of documents to return
        #
        # ~~~
-       # var client = new MongoClient("mongodb://localhost:27017/")
+       # var client = new MongoClient("mongodb://mongo:27017/")
        # var db_suffix = "NIT_TESTING_ID".environ
        # var db_name = "test_{db_suffix}"
        # var db = client.database(db_name)
@@ -625,7 +625,7 @@ class MongoCollection
        # Applies an aggregation `pipeline` over the collection.
        #
        # ~~~
-       # var client = new MongoClient("mongodb://localhost:27017/")
+       # var client = new MongoClient("mongodb://mongo:27017/")
        # var db_suffix = "NIT_TESTING_ID".environ
        # var db_name = "test_{db_suffix}"
        # var db = client.database(db_name)
@@ -640,11 +640,12 @@ class MongoCollection
        #
        # var res = col.aggregate("""[
        #       { "$match": { "status": "A" } },
-       #       { "$group": { "_id": "$cust_id", "total": { "$sum": "$amount" } } }
+       #       { "$group": { "_id": "$cust_id", "total": { "$sum": "$amount" } } },
+        #       { "$sort" : { "_id": 1 } }
        # ]""".parse_json.as(JsonArray))
        #
-       # assert res[0].to_json == """{"_id":"B212","total":200}"""
-       # assert res[1].to_json == """{"_id":"A123","total":750}"""
+        # assert res[0].to_json == """{"_id":"A123","total":750}"""
+       # assert res[1].to_json == """{"_id":"B212","total":200}"""
        # ~~~
        fun aggregate(pipeline: JsonArray): Array[JsonObject] do
                var q = new JsonObject
@@ -665,7 +666,7 @@ class MongoCollection
        # Returns `null` if an error occured. See `Sys::last_mongoc_error`.
        #
        # ~~~
-       # var client = new MongoClient("mongodb://localhost:27017/")
+       # var client = new MongoClient("mongodb://mongo:27017/")
        # var db_suffix = "NIT_TESTING_ID".environ
        # var db_name = "test_{db_suffix}"
        # var db = client.database(db_name)