public void ReadJson_should_throw_when_token_type_is_invalid()
        {
            var subject = new BsonStringConverter();
            var json    = "undefined";

            Action action = () => { var _ = ReadJsonUsingNativeJsonReader <BsonString>(subject, json); };

            action.ShouldThrow <Newtonsoft.Json.JsonReaderException>();
        }
        public void ReadJson_should_return_expected_result_when_using_native_bson_reader(string json, string nullableString)
        {
            var subject        = new BsonStringConverter();
            var expectedResult = nullableString == null ? null : (BsonString)nullableString;

            var result = ReadJsonUsingNativeBsonReader <BsonString>(subject, ToBson(json), mustBeNested: true);

            result.Should().Be(expectedResult);
        }
        public void ReadJson_should_return_expected_result_when_using_wrapped_json_reader(string json, string nullableString)
        {
            var subject        = new BsonStringConverter();
            var expectedResult = nullableString == null ? null : (BsonString)nullableString;

            var result = ReadJsonUsingWrappedJsonReader <BsonString>(subject, json);

            result.Should().Be(expectedResult);
        }
        public void WriteJson_should_have_expected_result_when_using_wrapped_bson_writer(string nullableString, string expectedResult)
        {
            var subject = new BsonStringConverter();
            var value   = nullableString == null ? null : (BsonString)nullableString;

            var result = WriteJsonUsingWrappedBsonWriter(subject, value, mustBeNested: true);

            result.Should().Equal(ToBson(expectedResult));
        }
        public void WriteJson_should_have_expected_result_when_using_wrapped_json_writer(string nullableString, string expectedResult)
        {
            var subject = new BsonStringConverter();
            var value   = nullableString == null ? null : (BsonString)nullableString;

            var result = WriteJsonUsingWrappedJsonWriter(subject, value);

            result.Should().Be(expectedResult);
        }
        public void ReadJson_should_return_expected_result_when_using_wrapped_bson_reader(string json, string nullableString)
        {
            var subject = new BsonStringConverter();
            var expectedResult = nullableString == null ? null : (BsonString)nullableString;

            var result = ReadJsonUsingWrappedBsonReader<BsonString>(subject, ToBson(json), mustBeNested: true);

            result.Should().Be(expectedResult);
        }
        public void ReadJson_should_return_expected_result_when_using_native_json_reader(string json, string nullableString)
        {
            var subject = new BsonStringConverter();
            var expectedResult = nullableString == null ? null : (BsonString)nullableString;

            var result = ReadJsonUsingNativeJsonReader<BsonString>(subject, json);

            result.Should().Be(expectedResult);
        }
        public void WriteJson_should_have_expected_result_when_using_wrapped_json_writer(string nullableString, string expectedResult)
        {
            var subject = new BsonStringConverter();
            var value = nullableString == null ? null : (BsonString)nullableString;

            var result = WriteJsonUsingWrappedJsonWriter(subject, value);

            result.Should().Be(expectedResult);
        }
        public void WriteJson_should_have_expected_result_when_using_wrapped_bson_writer(string nullableString, string expectedResult)
        {
            var subject = new BsonStringConverter();
            var value = nullableString == null ? null : (BsonString)nullableString;

            var result = WriteJsonUsingWrappedBsonWriter(subject, value, mustBeNested: true);

            result.Should().Equal(ToBson(expectedResult));
        }
        public void ReadJson_should_throw_when_token_type_is_invalid()
        {
            var subject = new BsonStringConverter();
            var json = "undefined";

            Action action = () => { var _ = ReadJsonUsingNativeJsonReader<BsonString>(subject, json); };

            action.ShouldThrow<Newtonsoft.Json.JsonReaderException>();
        }