public void ReadsTypeFromPropertyInfo()
        {
            var    gridUnitExtension = new GridUnitExtension(ValidThicknessMultiplier);
            var    serviceProvider   = MockedServiceProvider.CreateForTargetPropertyType <Thickness>();
            object result            = gridUnitExtension.ProvideValue(serviceProvider);

            Assert.IsType <Thickness>(result);
        }
        public void UsesTargetTypeProperty()
        {
            // We pass in a property of type A,
            // but set the TargetType to type B.
            // Type B is the expected type of the result.
            var gridUnitExtension = new GridUnitExtension(
                ValidThicknessMultiplier, typeof(Thickness));
            var serviceProvider = MockedServiceProvider.CreateForTargetPropertyType <Point>();

            object result = gridUnitExtension.ProvideValue(serviceProvider);

            Assert.IsType <Thickness>(result);
        }
        public void ReadsTypeFromDependencyProperties()
        {
            var gridUnitExtension = new GridUnitExtension(ValidThicknessMultiplier);
            var depProp           = DependencyProperties.ThicknessProperty; // Use a random dep.prop.
            var serviceProvider   = new MockedServiceProvider()
            {
                TargetProperty = depProp
            };

            object result = gridUnitExtension.ProvideValue(serviceProvider);

            Assert.IsType(depProp.PropertyType, result);
        }
        public void ReadsTypeFromSetters()
        {
            var gridUnitExtension = new GridUnitExtension(ValidPointMultiplier);
            var depProp           = DependencyProperties.PointProperty;
            var serviceProvider   = new MockedServiceProvider()
            {
                // Use a setter to a random dependency property.
                // What counts is that it has a supported type.
                TargetObject = new Setter(depProp, new Point(1, 1))
            };

            object result = gridUnitExtension.ProvideValue(serviceProvider);

            Assert.IsType(depProp.PropertyType, result);
        }