protected T DeserializeUsingNewtonsoftReader <T>(byte[] bson, bool mustBeNested = false) { using (var memoryStream = new MemoryStream(bson)) //using (var newtonsoftReader = new Newtonsoft.Json.Bson.BsonDataReader(memoryStream)) using (var reader = new BsonBinaryReader(memoryStream)) using (var newtonsoftReader = new BsonReaderAdapter(reader)) { //newtonsoftReader.DateTimeKindHandling = System.DateTimeKind.Utc; newtonsoftReader.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc; if (mustBeNested) { newtonsoftReader.Read(); // StartObject newtonsoftReader.Read(); // PropertyName } newtonsoftReader.Read(); // Json.NET serializers expect caller to have already called Read var newtonsoftSerializer = new Newtonsoft.Json.JsonSerializer(); var value = newtonsoftSerializer.Deserialize <T>(newtonsoftReader); if (mustBeNested) { newtonsoftReader.Read(); // EndObject } return(value); } }
protected T ReadJsonUsingWrappedJsonReader <T>(Newtonsoft.Json.JsonConverter converter, string json, bool mustBeNested = false) { using (var wrappedReader = new JsonReader(json)) using (var reader = new BsonReaderAdapter(wrappedReader)) { return(ReadJson <T>(converter, reader, mustBeNested)); } }
public void constructor_should_initialize_instance() { var wrappedReader = Substitute.For <IBsonReader>(); var result = new BsonReaderAdapter(wrappedReader); result.Should().BeOfType <BsonReaderAdapter>(); }
public void Close_should_close_wrapped_reader_when_CloseInput_is_true(bool closeInput) { var wrappedReader = Substitute.For <IBsonReader>(); var subject = new BsonReaderAdapter(wrappedReader); subject.CloseInput = closeInput; subject.Close(); wrappedReader.Received(closeInput ? 1 : 0).Close(); }
public void constructor_should_initialize_instance() { var wrappedReader = Substitute.For <IBsonReader>(); var result = new BsonReaderAdapter(wrappedReader); result.BsonValue.Should().BeNull(); result.Depth.Should().Be(0); result.TokenType.Should().Be(Newtonsoft.Json.JsonToken.None); result.Value.Should().BeNull(); result.BsonValue.Should().BeNull(); }
protected T ReadJsonUsingWrappedBsonReader <T>(Newtonsoft.Json.JsonConverter converter, byte[] bson, bool mustBeNested = false, GuidRepresentation guidRepresentation = GuidRepresentation.CSharpLegacy) { var readerSettings = new BsonBinaryReaderSettings { GuidRepresentation = guidRepresentation }; using (var stream = new MemoryStream(bson)) using (var wrappedReader = new BsonBinaryReader(stream, readerSettings)) using (var reader = new BsonReaderAdapter(wrappedReader)) { return(ReadJson <T>(converter, reader, mustBeNested)); } }
public void Read_should_return_false_when_wrapped_reader_state_is_Done() { var document = new BsonDocument(); var wrappedReader = new BsonDocumentReader(document); var subject = new BsonReaderAdapter(wrappedReader); subject.Read(); // StartObject subject.Read(); // EndObject wrappedReader.State.Should().Be(BsonReaderState.Done); var result = subject.Read(); result.Should().BeFalse(); }