public void TestWriteObject() { // Test writing with the value to write being ignored being null. // ToString cases are tested to a degree with non-constant structs. var testProperties = new TestFlagProperties(); var mockPacketProperty = new MockPacketProperty(typeof(TestFlagProperties).GetProperty("TestProperty4")); var flagPacketProperty = new FlagPacketProperty(mockPacketProperty, null); var writtenProperties = new Dictionary <string, object>(); var bitWriter = new BitWriter(new MemoryStream()); flagPacketProperty.Write(testProperties, bitWriter, writtenProperties); Assert.IsFalse(mockPacketProperty.DataWritten); testProperties.TestProperty4 = new TestFlagProperties(); flagPacketProperty.Write(testProperties, bitWriter, writtenProperties); Assert.IsTrue(mockPacketProperty.DataWritten); }
public void TestWriteEnum() { // Test writing with the value to write being ignored being null. var testProperties = new TestFlagProperties(); var mockPacketProperty = new MockPacketProperty(typeof(TestFlagProperties).GetProperty("TestProperty3")); var flagPacketProperty = new FlagPacketProperty(mockPacketProperty, null); var writtenProperties = new Dictionary <string, object>(); var bitWriter = new BitWriter(new MemoryStream()); flagPacketProperty.Write(testProperties, bitWriter, writtenProperties); Assert.IsFalse(mockPacketProperty.DataWritten); testProperties.TestProperty3 = TestFlagEnum.TestValue3; flagPacketProperty.Write(testProperties, bitWriter, writtenProperties); Assert.IsTrue(mockPacketProperty.DataWritten); mockPacketProperty.DataWritten = false; // Test writing with the value to write being ignored being defined. flagPacketProperty = new FlagPacketProperty(mockPacketProperty, TestFlagEnum.TestValue3); flagPacketProperty.Write(testProperties, bitWriter, writtenProperties); Assert.IsFalse(mockPacketProperty.DataWritten); testProperties.TestProperty3 = TestFlagEnum.TestValue2; flagPacketProperty.Write(testProperties, bitWriter, writtenProperties); Assert.IsTrue(mockPacketProperty.DataWritten); }
public void TestWriteNonConstantProperty() { // Test writing with the value to write being ignored being null. var testProperties = new TestFlagProperties(); var mockPacketProperty = new MockPacketProperty(typeof(TestFlagProperties).GetProperty("TestProperty2")); var flagPacketProperty = new FlagPacketProperty(mockPacketProperty, null); var writtenProperties = new Dictionary <string, object>(); var bitWriter = new BitWriter(new MemoryStream()); flagPacketProperty.Write(testProperties, bitWriter, writtenProperties); Assert.IsFalse(mockPacketProperty.DataWritten); testProperties.TestProperty2 = new Vector3(2, 2, 2); flagPacketProperty.Write(testProperties, bitWriter, writtenProperties); Assert.IsTrue(mockPacketProperty.DataWritten); mockPacketProperty.DataWritten = false; // Test writing with the value to write being ignored being defined. flagPacketProperty = new FlagPacketProperty(mockPacketProperty, "<2, 2, 2>"); flagPacketProperty.Write(testProperties, bitWriter, writtenProperties); Assert.IsFalse(mockPacketProperty.DataWritten); testProperties.TestProperty2 = new Vector3(3, 3, 3); flagPacketProperty.Write(testProperties, bitWriter, writtenProperties); Assert.IsTrue(mockPacketProperty.DataWritten); }
public void TestWrite() { // Create the test properties. var mockPacketProperty = new MockPacketProperty(typeof(TestRequiredProperties).GetProperty("TestProperty1")); var requiredPacketProperty = new RequiredPacketProperty(mockPacketProperty, "TestProperty"); var bitWriter = new BitWriter(new MemoryStream()); // Test writing single properties options. requiredPacketProperty.RequiredValues.Add(2); requiredPacketProperty.Write(mockPacketProperty, bitWriter, new Dictionary <string, object>()); Assert.IsFalse(mockPacketProperty.DataWritten); requiredPacketProperty.Write(mockPacketProperty, bitWriter, new Dictionary <string, object>() { { "TestProperty", 1 }, }); Assert.IsFalse(mockPacketProperty.DataWritten); requiredPacketProperty.Write(mockPacketProperty, bitWriter, new Dictionary <string, object>() { { "TestProperty", 2 }, }); Assert.IsTrue(mockPacketProperty.DataWritten); mockPacketProperty.DataWritten = false; requiredPacketProperty.RequiredValues[0] = true; requiredPacketProperty.Write(mockPacketProperty, bitWriter, new Dictionary <string, object>() { { "TestProperty", false }, }); Assert.IsFalse(mockPacketProperty.DataWritten); requiredPacketProperty.Write(mockPacketProperty, bitWriter, new Dictionary <string, object>() { { "TestProperty", true }, }); Assert.IsTrue(mockPacketProperty.DataWritten); mockPacketProperty.DataWritten = false; requiredPacketProperty.RequiredValues[0] = TestRequiredEnum.TestValue3; requiredPacketProperty.Write(mockPacketProperty, bitWriter, new Dictionary <string, object>() { { "TestProperty", TestRequiredEnum.TestValue1 }, }); Assert.IsFalse(mockPacketProperty.DataWritten); requiredPacketProperty.Write(mockPacketProperty, bitWriter, new Dictionary <string, object>() { { "TestProperty", TestRequiredEnum.TestValue3 }, }); Assert.IsTrue(mockPacketProperty.DataWritten); mockPacketProperty.DataWritten = false; // Test writing multiple properties options. requiredPacketProperty.RequiredValues[0] = 2; requiredPacketProperty.RequiredValues.Add(3); requiredPacketProperty.Write(mockPacketProperty, bitWriter, new Dictionary <string, object>() { { "TestProperty", 1 }, }); Assert.IsFalse(mockPacketProperty.DataWritten); requiredPacketProperty.Write(mockPacketProperty, bitWriter, new Dictionary <string, object>() { { "TestProperty", 2 }, }); Assert.IsTrue(mockPacketProperty.DataWritten); mockPacketProperty.DataWritten = false; requiredPacketProperty.RequiredValues[0] = TestRequiredEnum.TestValue2; requiredPacketProperty.RequiredValues[0] = TestRequiredEnum.TestValue3; requiredPacketProperty.Write(mockPacketProperty, bitWriter, new Dictionary <string, object>() { { "TestProperty", TestRequiredEnum.TestValue1 }, }); Assert.IsFalse(mockPacketProperty.DataWritten); requiredPacketProperty.Write(mockPacketProperty, bitWriter, new Dictionary <string, object>() { { "TestProperty", TestRequiredEnum.TestValue3 }, }); Assert.IsTrue(mockPacketProperty.DataWritten); }