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).
This commit is contained in:
Jon Skeet 2016-05-11 18:07:03 +01:00
parent cca2d44ef1
commit 7cc9cb407b
3 changed files with 19 additions and 7 deletions

View File

@ -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

View File

@ -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)]

View File

@ -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)));
}
}
}