示例#1
0
        public void InvokeOperation_VariousParameterTypes()
        {
            TestProvider_Scenarios provider = new TestProvider_Scenarios(TestURIs.TestProvider_Scenarios);

            InvokeOperation invoke = provider.VariousParameterTypes("hello", 2, true, TestHelperMethods.DefaultOperationAction, null);

            EnqueueConditional(() => invoke.IsComplete);
            EnqueueCallback(delegate
            {
                // 8 because "hello".Length (5) + 2 + true (1) = 8.
                Assert.AreEqual("VariousParameterTypes", invoke.OperationName);
                Assert.AreEqual(3, invoke.Parameters.Count);
                Assert.AreEqual("hello", invoke.Parameters["str"]);
                Assert.AreEqual(2, invoke.Parameters["integer"]);
                Assert.AreEqual(true, invoke.Parameters["boolean"]);
                Assert.AreEqual(8, (int)invoke.Value);
            });
            EnqueueTestComplete();
        }
示例#2
0
        public void InvokeOperation_VariousParameterTypes_WithInvalidParameter()
        {
            TestProvider_Scenarios provider = new TestProvider_Scenarios(TestURIs.TestProvider_Scenarios);

            ValidationException expectedException = null;

            try
            {
                InvokeOperation invoke = provider.VariousParameterTypes(null, 2, true, TestHelperMethods.DefaultOperationAction, null);
            }
            catch (ValidationException e)
            {
                expectedException = e;
            }

            Assert.IsNotNull(expectedException);
            Assert.AreEqual(typeof(RequiredAttribute), expectedException.ValidationAttribute.GetType());
            Assert.AreEqual("The str field is required.", expectedException.Message);

            EnqueueTestComplete();
        }