示例#1
0
        public void WhenObjectValueAssignedIncompatibleNewValue_ThenThrowsArgumentException()
        {
            var parameter = typeof(ArgumentTests).GetMethod(nameof(Arguments)).GetParameters()[0];
            var argument  = new ObjectArgument(parameter, 42);

            Assert.Throws <ArgumentException>(() => argument.WithRawValue("foo"));
        }
示例#2
0
        public void WhenObjectValueIsNullForNullableValueType_ThenSucceeds()
        {
            var parameter = typeof(ArgumentTests).GetMethod(nameof(Arguments)).GetParameters()[1];

            var argument = new ObjectArgument(parameter, null);

            Assert.Null(argument.RawValue);
        }
示例#3
0
        public void WhenObjectValueIsNotNull_ThenSucceedsForOutParameter()
        {
            var parameter = typeof(ArgumentTests).GetMethod(nameof(Arguments)).GetParameters()[5];

            var argument = new ObjectArgument(parameter, PlatformID.Win32NT);

            Assert.Equal(PlatformID.Win32NT, argument.RawValue);
        }
示例#4
0
        public void WhenObjectValueIsCompatible_ThenSucceedsForRefParameter()
        {
            var parameter = typeof(ArgumentTests).GetMethod(nameof(Arguments)).GetParameters()[3];

            var argument = new ObjectArgument(parameter, "foo");

            Assert.Equal("foo", argument.RawValue);
        }
示例#5
0
        public void WhenTypedValueIsNull_ThenSucceedsForReferenceType()
        {
            var parameter = typeof(ArgumentTests).GetMethod(nameof(Arguments)).GetParameters()[2];

            var argument = new ObjectArgument(parameter, null);

            Assert.Null(argument.RawValue);
        }
示例#6
0
        public void WhenObjectValueIsCompatible_ThenRawValueEqualsValue()
        {
            var parameter = typeof(ArgumentTests).GetMethod(nameof(Arguments)).GetParameters()[4];
            var value     = new object();

            var argument = new ObjectArgument(parameter, value);

            Assert.Same(value, argument.RawValue);
        }
示例#7
0
        public void WhenComparingArguments_ThenComparesStructurally()
        {
            var parameter = typeof(ArgumentTests).GetMethod(nameof(Arguments)).GetParameters()[0];
            var first     = new ObjectArgument(parameter, 42);
            var second    = new ObjectArgument(parameter, 42);

            Assert.Equal(first, second);
            Assert.NotEqual(first, second.WithRawValue(24));
        }
示例#8
0
        public void WhenObjectValueAssignedNewValue_ThenNewInstanceReturned()
        {
            var parameter = typeof(ArgumentTests).GetMethod(nameof(Arguments)).GetParameters()[4];
            var value     = new object();

            var argument = new ObjectArgument(parameter, value);

            var updated = argument.WithRawValue(new object());

            Assert.NotSame(argument, updated);
            Assert.NotSame(argument.RawValue, updated.RawValue);
        }