public void GetReactivePropertyTypeArgumentsWhenNull()
        {
            var mock = new ReactivePropertyFixtureMock();

            var nullPropertyInfo = typeof(ReactivePropertyFixtureMock).GetProperty("NullProperty");
            var nullProperty     = nullPropertyInfo.GetValue(mock);

            Assert.Throws <ArgumentNullException>(() => nullProperty.GetReactivePropertyTypeArguments());
        }
        public void GetReactivePropertyTypeArgumentsWhenClass()
        {
            var mock = new ReactivePropertyFixtureMock();

            var classPropertyInfo  = typeof(ReactivePropertyFixtureMock).GetProperty("ClassProperty");
            var classeProperty     = classPropertyInfo.GetValue(mock);
            var classTypeArguments = classeProperty.GetReactivePropertyTypeArguments();

            Assert.NotNull(classTypeArguments);
            Assert.Single(classTypeArguments);
            Assert.Equal(typeof(string), classTypeArguments[0]);
        }
        public void GetReactivePropertyTypeArgumentsWhenInterface()
        {
            var mock = new ReactivePropertyFixtureMock();

            var interfacePropertyInfo  = typeof(ReactivePropertyFixtureMock).GetProperty("InterfaceProperty");
            var interfaceProperty      = interfacePropertyInfo.GetValue(mock);
            var interfaceTypeArguments = interfaceProperty.GetReactivePropertyTypeArguments();

            Assert.NotNull(interfaceTypeArguments);
            Assert.Single(interfaceTypeArguments);
            Assert.Equal(typeof(int), interfaceTypeArguments[0]);
        }