コード例 #1
0
        public void AssignValueToNullableFloat()
        {
            var obj = new TypedPropertiesClass();

            _context.SetParameter("obj", obj);
            _context.Run("obj.nullableFloat = 123.45");

            obj.nullableFloat.Should().Be(123.45f);
        }
コード例 #2
0
        public void AssignToDecimal()
        {
            var obj = new TypedPropertiesClass();

            _context.SetParameter("obj", obj);
            _context.Run("obj.decimalValue = 123.45");

            obj.decimalValue.Should().Be(123.45m);
        }
コード例 #3
0
        public void MethodCallWithRequiredAndDefaultParameters_PassingOnlyOneOptionalActualParameterLeavingTheMiddleOneUndefined()
        {
            var obj = new TypedPropertiesClass();

            _context.SetParameter("obj", obj);
            var result = _context.Run("obj.methodWithRequiredAndDefaultParameters(1, undefined, false)");

            result.Should().Be("i: 1, s: abc, b: False");
        }
コード例 #4
0
        public void AssignNullToNullableFloat()
        {
            var obj = new TypedPropertiesClass();

            _context.SetParameter("obj", obj);
            _context.Run("obj.nullableFloat = null");

            obj.nullableFloat.Should().Be(null);
        }
コード例 #5
0
        public void MethodCallWithRequiredAndDefaultParameters_PassingAllActualParameter()
        {
            var obj = new TypedPropertiesClass();

            _context.SetParameter("obj", obj);
            var result = _context.Run("obj.methodWithRequiredAndDefaultParameters(1, 'test', false)");

            result.Should().Be("i: 1, s: test, b: False");
        }
コード例 #6
0
        public void MethodCallWithRequiredAndDefaultParameters_PassingUndefinedForAllOptionalActualParameter()
        {
            var obj = new TypedPropertiesClass();

            _context.SetParameter("obj", obj);
            var result = _context.Run("obj.methodWithRequiredAndDefaultParameters(1, undefined, undefined)");

            result.Should().Be("i: 1, s: abc, b: True");
        }
コード例 #7
0
        public void MethodCallWithDefaultParameter_PassingActualParameter()
        {
            var obj = new TypedPropertiesClass();

            _context.SetParameter("obj", obj);
            var result = _context.Run("obj.methodWithDefaultParameter('foo')");

            result.Should().Be("foo");
        }
コード例 #8
0
        public void MethodCallWithDefaultParameter_PassingExcplicitNullAsActualParameter()
        {
            var obj = new TypedPropertiesClass();

            _context.SetParameter("obj", obj);
            var result = _context.Run("obj.methodWithDefaultParameter(null)");

            result.Should().Be(null);
        }
コード例 #9
0
        public void MethodCallWithMixedParameter()
        {
            var obj = new TypedPropertiesClass();

            _context.SetParameter("obj", obj);
            var result = _context.Run("obj.methodWithMultipleMixedParameters(1, 'test', false)");

            result.Should().Be("i: 1, s: test, b: False");
        }
コード例 #10
0
        public void MethodCallWithParameter()
        {
            var obj = new TypedPropertiesClass();

            _context.SetParameter("obj", obj);
            var result = _context.Run("obj.methodWithOneParameter(1)");

            result.Should().Be(2);
        }
コード例 #11
0
        public void MethodCallWithoutParameters_RedundantArgumentsAreIgnored()
        {
            var obj = new TypedPropertiesClass();

            _context.SetParameter("obj", obj);
            var result = _context.Run("obj.methodWithoutParameters(42)");

            result.Should().Be(1);
        }
コード例 #12
0
        public void MethodCallWithEnumParameter()
        {
            var obj = new TypedPropertiesClass();

            _context.SetParameter("obj", obj);
            var result = _context.Run("obj.methodWithEnumParameter('IPv4')");

            result.Should().Be((int)UriHostNameType.IPv4);
        }
コード例 #13
0
        public void MethodCallWithBadEnumParameter()
        {
            var obj = new TypedPropertiesClass();

            _context.SetParameter("obj", obj);
            Action action = () => _context.Run("obj.methodWithEnumParameter('dog')");

            action.ShouldThrow <JavascriptException>("'dog' is not a member of the required enum")
            .Which.Message.Should().Contain("Argument mismatch");
        }