예제 #1
0
 public void TestSingleString()
 {
     BsonDocument document = new BsonDocument() { { "abc", "xyz" } };
     using (var bsonReader = new BsonDocumentReader(document))
     {
         var rehydrated = DeserializeBsonDocument(bsonReader);
         Assert.True(document.Equals(rehydrated));
     }
 }
예제 #2
0
 public void TestEmptyDocument()
 {
     BsonDocument document = new BsonDocument();
     using (var bsonReader = new BsonDocumentReader(document))
     {
         var rehydrated = DeserializeBsonDocument(bsonReader);
         Assert.True(document.Equals(rehydrated));
     }
 }
예제 #3
0
 public void TestArray()
 {
     BsonDocument document = new BsonDocument
     {
         { "array", new BsonArray { 1, 2, 3 } }
     };
     using (var bsonReader = new BsonDocumentReader(document))
     {
         var rehydrated = DeserializeBsonDocument(bsonReader);
         Assert.True(document.Equals(rehydrated));
     }
 }
예제 #4
0
 public void TestEmbeddedDocument()
 {
     BsonDocument document = new BsonDocument
     {
         { "doc", new BsonDocument { { "a", 1 }, { "b", 2 } } }
     };
     using (var bsonReader = new BsonDocumentReader(document))
     {
         var rehydrated = DeserializeBsonDocument(bsonReader);
         Assert.True(document.Equals(rehydrated));
     }
 }
        public void Read_should_return_false_when_wrapped_reader_state_is_Done()
        {
            var document = new BsonDocument();
            var wrappedReader = new BsonDocumentReader(document);
            var subject = new JsonReaderAdapter(wrappedReader);
            subject.Read(); // StartObject
            subject.Read(); // EndObject
            wrappedReader.State.Should().Be(BsonReaderState.Done);

            var result = subject.Read();

            result.Should().BeFalse();
        }
예제 #6
0
 public void TestDateTime()
 {
     DateTime jan_1_2010 = DateTime.SpecifyKind(new DateTime(2010, 1, 1), DateTimeKind.Utc);
     BsonDocument document = new BsonDocument
     {
         { "date", jan_1_2010 }
     };
     using (var bsonReader = new BsonDocumentReader(document))
     {
         var rehydrated = DeserializeBsonDocument(bsonReader);
         Assert.True(document.Equals(rehydrated));
     }
 }
 /// <summary>
 /// Deserializes the value.
 /// </summary>
 /// <param name="value">The value.</param>
 /// <returns>The deserialized value.</returns>
 public object DeserializeValue(BsonValue value)
 {
     var tempDocument = new BsonDocument("value", value);
     using (var reader = new BsonDocumentReader(tempDocument))
     {
         var context = BsonDeserializationContext.CreateRoot<BsonDocument>(reader);
         reader.ReadStartDocument();
         reader.ReadName("value");
         var deserializedValue = context.DeserializeWithChildContext(_serializer);
         reader.ReadEndDocument();
         return deserializedValue;
     }
 }
예제 #8
0
        public void TestSerializeDeserialize()
        {
            var path = "c:/a/b/c/f.txt";
            var data = new Data
            {
                Path = new ParsedPath(path, PathType.File)
            };

            var doc = new BsonDocument();

            using (var writer = new BsonDocumentWriter(doc, new BsonDocumentWriterSettings()))
            {
                BsonSerializer.Serialize(writer, data);
            }

            Assert.AreEqual(doc["Path"], new BsonString(path));

            using (var reader = new BsonDocumentReader(doc, new BsonDocumentReaderSettings()))
            {
                data = BsonSerializer.Deserialize<Data>(doc);
            }

            Assert.AreEqual(data.Path, new ParsedPath(path, PathType.File));
        }
예제 #9
0
 public void TestBinary()
 {
     var document = new BsonDocument
     {
         { "bin", new BsonBinaryData(new byte[] { 1, 2, 3 }) }
     };
     using (var bsonReader = new BsonDocumentReader(document))
     {
         var rehydrated = DeserializeBsonDocument(bsonReader);
         Assert.True(document.Equals(rehydrated));
     }
 }
예제 #10
0
 public void TestTimestamp()
 {
     var document = new BsonDocument
     {
         { "timestamp", new BsonTimestamp(1234567890) }
     };
     using (var bsonReader = new BsonDocumentReader(document))
     {
         var rehydrated = DeserializeBsonDocument(bsonReader);
         Assert.True(document.Equals(rehydrated));
     }
 }
예제 #11
0
 public void TestSymbol()
 {
     var document = new BsonDocument
     {
         { "symbol", BsonSymbolTable.Lookup("name") }
     };
     using (var bsonReader = new BsonDocumentReader(document))
     {
         var rehydrated = DeserializeBsonDocument(bsonReader);
         Assert.True(document.Equals(rehydrated));
     }
 }
예제 #12
0
 public void TestNull()
 {
     var document = new BsonDocument
     {
         { "maxkey", BsonNull.Value }
     };
     using (var bsonReader = new BsonDocumentReader(document))
     {
         var rehydrated = DeserializeBsonDocument(bsonReader);
         Assert.True(document.Equals(rehydrated));
     }
 }
예제 #13
0
        public void TestIsAtEndOfFile()
        {
            var expected = new BsonDocument("x", 1);

            using (var reader = new BsonDocumentReader(expected))
            {
                var count = 0;
                while (!reader.IsAtEndOfFile())
                {
                    var document = BsonSerializer.Deserialize<BsonDocument>(reader);
                    Assert.Equal(expected, document);
                    count++;
                }
                Assert.Equal(1, count);
            }
        }
예제 #14
0
 public void TestGuid()
 {
     var document = new BsonDocument
     {
         { "guid", new Guid("B5F21E0C2A0D42d6AD03D827008D8AB6") }
     };
     using (var bsonReader = new BsonDocumentReader(document))
     {
         var rehydrated = DeserializeBsonDocument(bsonReader);
         Assert.True(document.Equals(rehydrated));
     }
 }
예제 #15
0
 public void TestJavaScriptWithScope()
 {
     var document = new BsonDocument
     {
         { "f", new BsonJavaScriptWithScope("function f() { return n; }", new BsonDocument("n", 1)) }
     };
     using (var bsonReader = new BsonDocumentReader(document))
     {
         var rehydrated = DeserializeBsonDocument(bsonReader);
         Assert.True(document.Equals(rehydrated));
     }
 }
 public void TestMinKey()
 {
     var document = new BsonDocument
     {
         { "minkey", BsonMinKey.Value }
     };
     using (var bsonReader = new BsonDocumentReader(document))
     {
         var rehydrated = DeserializeBsonDocument(bsonReader);
         Assert.IsTrue(document.Equals(rehydrated));
     }
 }