public void IsValid() { Assert.IsTrue(FieldMask.IsValid <NestedTestAllTypes>("payload")); Assert.IsFalse(FieldMask.IsValid <NestedTestAllTypes>("nonexist")); Assert.IsTrue(FieldMask.IsValid <NestedTestAllTypes>("payload.single_int32")); Assert.IsTrue(FieldMask.IsValid <NestedTestAllTypes>("payload.repeated_int32")); Assert.IsTrue(FieldMask.IsValid <NestedTestAllTypes>("payload.single_nested_message")); Assert.IsTrue(FieldMask.IsValid <NestedTestAllTypes>("payload.repeated_nested_message")); Assert.IsFalse(FieldMask.IsValid <NestedTestAllTypes>("payload.nonexist")); Assert.IsTrue(FieldMask.IsValid <NestedTestAllTypes>(FieldMask.FromString("payload"))); Assert.IsFalse(FieldMask.IsValid <NestedTestAllTypes>(FieldMask.FromString("nonexist"))); Assert.IsFalse(FieldMask.IsValid <NestedTestAllTypes>(FieldMask.FromString("payload,nonexist"))); Assert.IsTrue(FieldMask.IsValid(NestedTestAllTypes.Descriptor, "payload")); Assert.IsFalse(FieldMask.IsValid(NestedTestAllTypes.Descriptor, "nonexist")); Assert.IsTrue(FieldMask.IsValid(NestedTestAllTypes.Descriptor, FieldMask.FromString("payload"))); Assert.IsFalse(FieldMask.IsValid(NestedTestAllTypes.Descriptor, FieldMask.FromString("nonexist"))); Assert.IsTrue(FieldMask.IsValid <NestedTestAllTypes>("payload.single_nested_message.bb")); // Repeated fields cannot have sub-paths. Assert.IsFalse(FieldMask.IsValid <NestedTestAllTypes>("payload.repeated_nested_message.bb")); // Non-message fields cannot have sub-paths. Assert.IsFalse(FieldMask.IsValid <NestedTestAllTypes>("payload.single_int32.bb")); }
public void Merge() { // Only test a simple case here and expect // {@link FieldMaskTreeTest#Merge} to cover all scenarios. FieldMask fieldMask = FieldMask.FromString("payload"); NestedTestAllTypes source = new NestedTestAllTypes { Payload = new TestAllTypes { SingleInt32 = 1234, SingleFixed64 = 4321 } }; NestedTestAllTypes destination = new NestedTestAllTypes(); fieldMask.Merge(source, destination); Assert.AreEqual(1234, destination.Payload.SingleInt32); Assert.AreEqual(4321, destination.Payload.SingleFixed64); destination = new NestedTestAllTypes { Payload = new TestAllTypes { SingleInt32 = 4321, SingleInt64 = 5678 } }; fieldMask.Merge(source, destination); Assert.AreEqual(1234, destination.Payload.SingleInt32); Assert.AreEqual(5678, destination.Payload.SingleInt64); Assert.AreEqual(4321, destination.Payload.SingleFixed64); }
public void FromString(string input, string[] expectedOutput) { FieldMask mask = FieldMask.FromString(input); Assert.AreEqual(expectedOutput.Length, mask.Paths.Count); for (int i = 0; i < expectedOutput.Length; i++) { Assert.AreEqual(expectedOutput[i], mask.Paths[i]); } }
public void Union_UsingVarArgs() { FieldMask mask1 = FieldMask.FromString("foo"); FieldMask mask2 = FieldMask.FromString("foo.bar,bar.quz"); FieldMask mask3 = FieldMask.FromString("bar.quz"); FieldMask mask4 = FieldMask.FromString("bar"); FieldMask result = mask1.Union(mask2, mask3, mask4); Assert.AreEqual(2, result.Paths.Count); Assert.Contains("bar", result.Paths); Assert.Contains("foo", result.Paths); Assert.That(result.Paths, Has.No.Member("foo.bar")); Assert.That(result.Paths, Has.No.Member("bar.quz")); }
public void Intersection() { // Only test a simple case here and expect // {@link FieldMaskTreeTest#IntersectFieldPath} to cover all scenarios. FieldMask mask1 = FieldMask.FromString("foo,bar.baz,bar.quz"); FieldMask mask2 = FieldMask.FromString("foo.bar,bar"); FieldMask result = mask1.Intersection(mask2); Assert.AreEqual(3, result.Paths.Count); Assert.Contains("foo.bar", result.Paths); Assert.Contains("bar.baz", result.Paths); Assert.Contains("bar.quz", result.Paths); Assert.That(result.Paths, Has.No.Member("foo")); Assert.That(result.Paths, Has.No.Member("bar")); }
public void FromString_Validated() { // Check whether the field paths are valid if a class parameter is provided. Assert.DoesNotThrow(() => FieldMask.FromString <NestedTestAllTypes>(",payload")); Assert.Throws <InvalidProtocolBufferException>(() => FieldMask.FromString <NestedTestAllTypes>("payload,nonexist")); }