コード例 #1
0
        public void ConvertFrom_GivenWrongQuantity_ThrowsArgumentException()
        {
            var converter = new QuantityTypeConverter <Length>();
            ITypeDescriptorContext context = new TypeDescriptorContext("SomeMemberName", new Attribute[] { });

            Assert.Throws <ArgumentException>(() => converter.ConvertFrom(context, culture, "1m^2"));
        }
コード例 #2
0
        public void ConvertFrom_GivenEmptyString_ThrowsNotSupportedException()
        {
            var converter = new QuantityTypeConverter <Length>();
            ITypeDescriptorContext context = new TypeDescriptorContext("SomeMemberName", new Attribute[] { });

            Assert.Throws <NotSupportedException>(() => converter.ConvertFrom(context, culture, ""));
        }
コード例 #3
0
        public void ConvertFrom_GivenStringWithPower_4()
        {
            var converter = new QuantityTypeConverter <AreaMomentOfInertia>();
            ITypeDescriptorContext context = new TypeDescriptorContext("SomeMemberName", new Attribute[] { });

            Assert.Equal(AreaMomentOfInertia.FromMetersToTheFourth(1), converter.ConvertFrom(context, culture, "1m⁴"));
            Assert.Equal(AreaMomentOfInertia.FromMetersToTheFourth(1), converter.ConvertFrom(context, culture, "1m^4"));
        }
コード例 #4
0
        public void ConvertFrom_GivenStringWithPower_3()
        {
            var converter = new QuantityTypeConverter <Volume>();
            ITypeDescriptorContext context = new TypeDescriptorContext("SomeMemberName", new Attribute[] { });

            Assert.Equal(Volume.FromCubicMeters(1), converter.ConvertFrom(context, culture, "1m³"));
            Assert.Equal(Volume.FromCubicMeters(1), converter.ConvertFrom(context, culture, "1m^3"));
        }
コード例 #5
0
        public void ConvertFrom_GivenStringWithPower_2()
        {
            var converter = new QuantityTypeConverter <Area>();
            ITypeDescriptorContext context = new TypeDescriptorContext("SomeMemberName", new Attribute[] { });

            Assert.Equal(Area.FromSquareMeters(1), converter.ConvertFrom(context, culture, "1m²"));
            Assert.Equal(Area.FromSquareMeters(1), converter.ConvertFrom(context, culture, "1m^2"));
        }
コード例 #6
0
        public void ConvertFrom_GivenStringWithPower_1()
        {
            var converter = new QuantityTypeConverter <Length>();
            ITypeDescriptorContext context = new TypeDescriptorContext("SomeMemberName", new Attribute[] { });

            Assert.Equal(Length.FromMeters(1), converter.ConvertFrom(context, culture, "1m"));
            Assert.Equal(Length.FromMeters(1), converter.ConvertFrom(context, culture, "1m^1"));
        }
コード例 #7
0
        public void ConvertTo_GivenWrongType_ThrowsNotSupportedException(Type value)
        {
            var converter = new QuantityTypeConverter <Length>();
            ITypeDescriptorContext context = new TypeDescriptorContext("SomeMemberName", new Attribute[] { });
            Length length = Length.FromMeters(1);

            Assert.Throws <NotSupportedException>(() => converter.ConvertTo(length, value));
        }
コード例 #8
0
        public void ConvertFrom_GivenDefaultUnitAttributeWithWrongUnitType_ThrowsArgumentException()
        {
            var converter = new QuantityTypeConverter <Length>();
            ITypeDescriptorContext context = new TypeDescriptorContext("SomeMemberName", new Attribute[]
            {
                new DefaultUnitAttribute(Units.VolumeUnit.CubicMeter)
            });

            Assert.Throws <ArgumentException>(() => converter.ConvertFrom(context, culture, "1"));
        }
コード例 #9
0
        public void ConvertTo_GivenSomeQuantitysAndContextWithNoAttributes_ReturnsQuantityStringInUnitOfQuantity()
        {
            var converter = new QuantityTypeConverter <Length>();
            ITypeDescriptorContext context = new TypeDescriptorContext("SomeMemberName", new Attribute[] { });
            Length length = Length.FromMeters(1);

            string convertedQuantity = (string)converter.ConvertTo(context, culture, length, typeof(string));

            Assert.Equal("1 m", convertedQuantity);
        }
コード例 #10
0
        public void ConvertTo_GivenStringType_ReturnsQuantityString()
        {
            var converter = new QuantityTypeConverter <Length>(Length.Zero);
            ITypeDescriptorContext context = new TypeDescriptorContext("SomeMemberName", new Attribute[] { });
            Length length = Length.FromMeters(1);

            string convertedQuantity = (string)converter.ConvertTo(length, typeof(string));

            Assert.Equal("1 m", convertedQuantity);
        }
コード例 #11
0
        public void ConvertTo_GivenSomeQuantityAndContextWithoutProperty_ReturnsQuantityStringInUnitOfQuantity()
        {
            var converter = new QuantityTypeConverter <Length>();
            ITypeDescriptorContext context = new TypeDescriptorContext();
            Length length = Length.FromMeters(1);

            string convertedQuantity = (string)converter.ConvertTo(context, culture, length, typeof(string));

            Assert.Equal("1 m", convertedQuantity);
        }
コード例 #12
0
        public void ConvertTo_TestDisplayAsFormattingWithoutDefinedUnit_ReturnsQuantityStringWithQuantetiesUnitAndFormatedAsValueOnly()
        {
            var converter = new QuantityTypeConverter <Length>();
            ITypeDescriptorContext context = new TypeDescriptorContext("SomeMemberName", new Attribute[]
            {
                new DisplayAsUnitAttribute(null, "v")
            });
            Length length = Length.FromMeters(1);

            string convertedQuantity = (string)converter.ConvertTo(context, culture, length, typeof(string));

            Assert.Equal("1", convertedQuantity);
        }
コード例 #13
0
        public void ConvertTo_TestDisplayAsFormatting_ReturnsQuantityStringWithDisplayUnitFormateAsValueOnly()
        {
            var converter = new QuantityTypeConverter <Length>();
            ITypeDescriptorContext context = new TypeDescriptorContext("SomeMemberName", new Attribute[]
            {
                new DisplayAsUnitAttribute(Units.LengthUnit.Decimeter, "v")
            });
            Length length = Length.FromMeters(1);

            string convertedQuantity = (string)converter.ConvertTo(context, culture, length, typeof(string));

            Assert.Equal("10", convertedQuantity);
        }
コード例 #14
0
        public void ConvertFrom_GivenQuantityStringAndContextWithDefaultUnitAttribute_ReturnsQuantityWithGivenDefaultUnitIfNotSpecified(string str, double expectedValue, Enum expectedUnit)
        {
            var converter = new QuantityTypeConverter <Length>(Length.Zero);
            ITypeDescriptorContext context = new TypeDescriptorContext("SomeMemberName", new Attribute[]
            {
                new DefaultUnitAttribute(Units.LengthUnit.Centimeter)
            });

            var convertedValue = (Length)converter.ConvertFrom(context, culture, str);

            Assert.Equal(expectedValue, convertedValue.Value);
            Assert.Equal(expectedUnit, convertedValue.Unit);
        }
コード例 #15
0
        public void ConvertTo_GivenSomeQuantitysAndContextWithDisplayAsUnitAttributes_ReturnsQuantityStringInSpecifiedDisplayUnit()
        {
            var converter = new QuantityTypeConverter <Length>();
            ITypeDescriptorContext context = new TypeDescriptorContext("SomeMemberName", new Attribute[]
            {
                new DisplayAsUnitAttribute(Units.LengthUnit.Decimeter)
            });
            Length length = Length.FromMeters(1);

            string convertedQuantityDefaultCulture  = (string)converter.ConvertTo(length, typeof(string));
            string convertedQuantitySpecificCulture = (string)converter.ConvertTo(context, culture, length, typeof(string));

            Assert.Equal("1 m", convertedQuantityDefaultCulture);
            Assert.Equal("10 dm", convertedQuantitySpecificCulture);
        }