public void TestCastsToDocument()
 {
     var ogen = new OidGenerator();
     var dref = new DBRef("tests.dbrefs", ogen.Generate());
     var doc = (Document)dref;
     Assert.AreEqual(dref.CollectionName, doc[DBRef.RefName]);
 }
        public void TestGenerate(){
            OidGenerator ogen = new OidGenerator();
            Oid oid = ogen.Generate();
            
            String hex = BitConverter.ToString(oid.ToByteArray()).Replace("-","");
            Assert.IsTrue(hex.EndsWith("000001"), "Increment didn't start with 1.");

            oid = ogen.Generate();
            hex = BitConverter.ToString(oid.ToByteArray()).Replace("-","");
            Assert.IsTrue(hex.EndsWith("000002"), "Next increment should have been 2");

            
            DateTime created = oid.Created;
            DateTime now = DateTime.UtcNow;
            Console.Out.WriteLine(oid.Created);
            Assert.AreEqual(now.Year, created.Year);
            Assert.AreEqual(now.Month, created.Month);
        }
        public void TestInsertOfArray()
        {
            var ogen = new OidGenerator();
            var inserts = DB["inserts"];
            var album = new Document();
            album["_id"] = ogen.Generate();
            album["artist"] = "Popa Chubby";
            album["title"] = "Deliveries After Dark";
            album["songs"] = new[]
            {
                new Document().Add("title", "Let The Music Set You Free").Add("length", "5:15").Add("_id", ogen.Generate()),
                new Document().Add("title", "Sally Likes to Run").Add("length", "4:06").Add("_id", ogen.Generate()),
                new Document().Add("title", "Deliveries After Dark").Add("length", "4:17").Add("_id", ogen.Generate()),
                new Document().Add("title", "Theme From The Godfather").Add("length", "3:06").Add("_id", ogen.Generate()),
                new Document().Add("title", "Grown Man Crying Blues").Add("length", "8:09").Add("_id", ogen.Generate()),
            };
            inserts.Insert(album);

            var result = inserts.FindOne(new Document().Add("songs.title", "Deliveries After Dark"));
            Assert.IsNotNull(result);

            Assert.AreEqual(album.ToString(), result.ToString());
        }
        public void TestInsertOfArray(){
            var ogen = new OidGenerator();
            var inserts = DB.GetCollection<Album>("inserts");
            var album = new Album {Title = "Deliveries After Dark", Artist = "Popa Chubby"};
            album.Songs = new List<Song>
            {
                new Song {Title = "Let The Music Set You Free", Length = "5:15"},
                new Song {Title = "Sally Likes to Run", Length = "4:06"},
                new Song {Title = "Deliveries After Dark", Length = "4:17"},
                new Song {Title = "Theme From The Godfather", Length = "3:06"},
                new Song {Title = "Grown Man Crying Blues", Length = "8:09"}
            };
            inserts.Insert(album);

            var result = inserts.FindOne(new Document().Add("Songs.Title", "Deliveries After Dark"));
            Assert.IsNotNull(result);

            Assert.AreEqual(album.Songs.Count, result.Songs.Count);
        }