Example #1
0
        public void Test_PropertyHelpers()
        {
            // Verify that the property helper methods work as expected.

            var message = new ProxyMessage();

            // Verify that non-existant property values return the default for the requested type.

            var fooProperty = new PropertyNameUtf8("foo");

            Assert.Null(message.GetStringProperty(fooProperty));
            Assert.Equal(0, message.GetIntProperty(fooProperty));
            Assert.Equal(0L, message.GetLongProperty(fooProperty));
            Assert.False(message.GetBoolProperty(fooProperty));
            Assert.Equal(0.0, message.GetDoubleProperty(fooProperty));
            Assert.Equal(DateTime.MinValue, message.GetDateTimeProperty(fooProperty));
            Assert.Equal(TimeSpan.Zero, message.GetTimeSpanProperty(fooProperty));

            // Verify that we can override default values for non-existant properties.

            Assert.Equal("bar", message.GetStringProperty(fooProperty, "bar"));
            Assert.Equal(123, message.GetIntProperty(fooProperty, 123));
            Assert.Equal(456L, message.GetLongProperty(fooProperty, 456L));
            Assert.True(message.GetBoolProperty(fooProperty, true));
            Assert.Equal(123.456, message.GetDoubleProperty(fooProperty, 123.456));
            Assert.Equal(new DateTime(2019, 4, 14), message.GetDateTimeProperty(fooProperty, new DateTime(2019, 4, 14)));
            Assert.Equal(TimeSpan.FromSeconds(123), message.GetTimeSpanProperty(fooProperty, TimeSpan.FromSeconds(123)));

            // Verify that we can write and then read properties.

            message.SetStringProperty(fooProperty, "bar");
            Assert.Equal("bar", message.GetStringProperty(fooProperty));

            message.SetIntProperty(fooProperty, 123);
            Assert.Equal(123, message.GetIntProperty(fooProperty));

            message.SetLongProperty(fooProperty, 456L);
            Assert.Equal(456L, message.GetLongProperty(fooProperty));

            message.SetBoolProperty(fooProperty, true);
            Assert.True(message.GetBoolProperty(fooProperty));

            message.SetDoubleProperty(fooProperty, 123.456);
            Assert.Equal(123.456, message.GetDoubleProperty(fooProperty));

            var date = new DateTime(2019, 4, 14).ToUniversalTime();

            message.SetDateTimeProperty(fooProperty, date);
            Assert.Equal(date, message.GetDateTimeProperty(fooProperty));

            message.SetTimeSpanProperty(fooProperty, TimeSpan.FromSeconds(123));
            Assert.Equal(TimeSpan.FromSeconds(123), message.GetTimeSpanProperty(fooProperty));
        }