Commit 7cc9cb40 authored by Jon Skeet's avatar Jon Skeet

Move test for standalone BoolValue to JsonParserTest

Also added a standalone formatter test, for confidence.
Have validated that undoing the change in 835fb947 breaks the tests
(i.e. we are still testing that the change is required).
parent cca2d44e
......@@ -512,6 +512,22 @@ namespace Google.Protobuf
Assert.Throws<InvalidOperationException>(() => JsonFormatter.Default.Format(any));
}
[Test]
[TestCase(typeof(BoolValue), true, "true")]
[TestCase(typeof(Int32Value), 32, "32")]
[TestCase(typeof(Int64Value), 32L, "\"32\"")]
[TestCase(typeof(UInt32Value), 32U, "32")]
[TestCase(typeof(UInt64Value), 32UL, "\"32\"")]
[TestCase(typeof(StringValue), "foo", "\"foo\"")]
[TestCase(typeof(FloatValue), 1.5f, "1.5")]
[TestCase(typeof(DoubleValue), 1.5d, "1.5")]
public void Wrappers_Standalone(System.Type wrapperType, object value, string expectedJson)
{
IMessage populated = (IMessage)Activator.CreateInstance(wrapperType);
populated.Descriptor.Fields[WrappersReflection.WrapperValueFieldNumber].Accessor.SetValue(populated, value);
Assert.AreEqual(expectedJson, JsonFormatter.Default.Format(populated));
}
/// <summary>
/// Checks that the actual JSON is the same as the expected JSON - but after replacing
/// all apostrophes in the expected JSON with double quotes. This basically makes the tests easier
......
......@@ -133,9 +133,12 @@ namespace Google.Protobuf
}
[Test]
[TestCase(typeof(BoolValue), "true", true)]
[TestCase(typeof(Int32Value), "32", 32)]
[TestCase(typeof(Int64Value), "32", 32L)]
[TestCase(typeof(Int64Value), "\"32\"", 32L)]
[TestCase(typeof(UInt32Value), "32", 32U)]
[TestCase(typeof(UInt64Value), "\"32\"", 32UL)]
[TestCase(typeof(UInt64Value), "32", 32UL)]
[TestCase(typeof(StringValue), "\"foo\"", "foo")]
[TestCase(typeof(FloatValue), "1.5", 1.5f)]
......
......@@ -417,12 +417,5 @@ namespace Google.Protobuf.WellKnownTypes
TestWellKnownTypes.Descriptor.Fields[TestWellKnownTypes.StringFieldFieldNumber].Accessor.Clear(message);
Assert.IsNull(message.StringField);
}
[Test]
public void GivenBoolValueWhenPerformingRoundTripEncodingViaJsonThenShouldNotExpectObjectAtTopLevel()
{
var value = new BoolValue { Value = true };
Assert.AreEqual(value, JsonParser.Default.Parse<BoolValue>(JsonFormatter.Default.Format(value)));
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment