Beispiel #1
0
        public async void When_RequestPipelineParallel_ExecPipeLine_Parallel_With_MoreThanOne_Handler()
        {
            Mock <IHandlersServiceProvider> providerMock = new Mock <IHandlersServiceProvider>();
            TestRequest1 testRequest1 = new TestRequest1();

            testRequest1.text = "1";
            TestRequest2 testRequest2 = new TestRequest2();

            testRequest2.text = "1";
            providerMock.Setup(o => o.GetHandlers(testRequest1)).Returns(new List <IBaseHandler> {
                new HandlersSample1()
            });
            providerMock.Setup(o => o.GetHandlers(testRequest2)).Returns(new List <IBaseHandler> {
                new HandlersSample2()
            });
            RequestPipelineParallel provider = new RequestPipelineParallel(providerMock.Object);


            var res = await provider.ExecPipeline(testRequest1);

            var res2 = await provider.ExecPipeline(testRequest2);

            res.GetResponse <TestResponse1>().ShouldNotBeNull();
            res.ResponseHasErros().ShouldBeFalse();
            ((TestResponse1)res.FirstOrDefault()).text.ShouldBe(testRequest1.text);
            res.Count.ShouldBe(1);

            res2.GetResponse <TestResponse2>().ShouldNotBeNull();
            res2.ResponseHasErros().ShouldBeFalse();
            ((TestResponse2)res2.FirstOrDefault()).text.ShouldBe(testRequest2.text);
            res2.Count.ShouldBe(1);
        }
Beispiel #2
0
            public override async Task ExecuteAsync(
                IActivityContext <TestRequest1> activityContext,
                CancellationToken cancellationToken)
            {
                var request  = activityContext.Request;
                var request2 = new TestRequest2()
                {
                    A = request.A, B = request.B
                };
                ActivityId activityId = ActivityId.NewId();

                using var connectedClient = await activityContext.ConnectAndSendAsync(
                          activityId,
                          request2,
                          null,   // activityExecutionConfiguration,
                          cancellationToken);

                var response2 = await connectedClient.WaitForAsync(null, cancellationToken);

                if (response2.TryGetResult <TestResponse2>(out var result2))
                {
                    var response = new TestResponse1()
                    {
                        R = result2.R + 1
                    };
                    await this.SetResponseAsync(activityContext, response);

                    return;
                }
                else
                {
                    await activityContext.SetActivityResponseAsync(response2);

                    return;
                }
            }
        public void EnumerateItemsTest()
        {
            // Arrange.
            var typeResolver = Mock.Create<ITypeResolver>(Behavior.Loose);
            var role1 = new TestRole { Name = "Role 1" };
            var role2 = new TestRole { Name = "Role 2" };
            var role3 = new TestRole { Name = "Role 3" };
            var businessUnit1 = new TestBusinessUnit { Name = "BU 1" };
            var businessUnit2 = new TestBusinessUnit { Name = "BU 2" };

            var employee1 = new TestEmployee { FirstName = "aaa", LastName = "AAA", BusinessUnit = businessUnit1, Roles = new[] { role1 } };
            var employee2 = new TestEmployee { FirstName = "bbb", LastName = "BBB", BusinessUnit = businessUnit2, Roles = new[] { role2, role3 } };
            var request = new TestRequest2 { Employees = new[] { employee1, employee2 } };

            var context = new WebMethodResultDataContext(request, typeResolver);

            // Act / Assert.
            var employees = context.EnumerateItems("Employees");
            var employeeEnumerator = employees.GetEnumerator();

            Assert.IsNull(context.GetPropertyValue("Employees|Item[]|FirstName"));
            Assert.IsNull(context.GetPropertyValue("Employees|Item[]|LastName"));
            Assert.IsNull(context.GetPropertyValue("Employees|Item[]|BusinessUnit|Name"));
            Assert.IsNull(context.GetPropertyValue("Employees|Item[]|Roles|Name"));

            Assert.IsTrue(employeeEnumerator.MoveNext());
            Assert.AreEqual("aaa", context.GetPropertyValue("Employees|Item[]|FirstName"));
            Assert.AreEqual("AAA", context.GetPropertyValue("Employees|Item[]|LastName"));
            Assert.AreEqual("BU 1", context.GetPropertyValue("Employees|Item[]|BusinessUnit|Name"));
            Assert.IsNull(context.GetPropertyValue("Employees|Item[]|Roles|Item[]|Name"));

            var roles = context.EnumerateItems("Employees|Item[]|Roles");
            var rolesEnumerator = roles.GetEnumerator();

            Assert.IsTrue(rolesEnumerator.MoveNext());
            Assert.AreEqual("aaa", context.GetPropertyValue("Employees|Item[]|FirstName"));
            Assert.AreEqual("AAA", context.GetPropertyValue("Employees|Item[]|LastName"));
            Assert.AreEqual("BU 1", context.GetPropertyValue("Employees|Item[]|BusinessUnit|Name"));
            Assert.AreEqual("Role 1", context.GetPropertyValue("Employees|Item[]|Roles|Item[]|Name"));

            Assert.IsFalse(rolesEnumerator.MoveNext());
            Assert.AreEqual("aaa", context.GetPropertyValue("Employees|Item[]|FirstName"));
            Assert.AreEqual("AAA", context.GetPropertyValue("Employees|Item[]|LastName"));
            Assert.AreEqual("BU 1", context.GetPropertyValue("Employees|Item[]|BusinessUnit|Name"));
            Assert.IsNull(context.GetPropertyValue("Employees|Item[]|Roles|Item[]|Name"));

            Assert.IsTrue(employeeEnumerator.MoveNext());
            Assert.AreEqual("bbb", context.GetPropertyValue("Employees|Item[]|FirstName"));
            Assert.AreEqual("BBB", context.GetPropertyValue("Employees|Item[]|LastName"));
            Assert.AreEqual("BU 2", context.GetPropertyValue("Employees|Item[]|BusinessUnit|Name"));
            Assert.IsNull(context.GetPropertyValue("Employees|Item[]|Roles|Item[]|Name"));

            roles = context.EnumerateItems("Employees|Item[]|Roles");
            rolesEnumerator = roles.GetEnumerator();

            Assert.IsTrue(rolesEnumerator.MoveNext());
            Assert.AreEqual("bbb", context.GetPropertyValue("Employees|Item[]|FirstName"));
            Assert.AreEqual("BBB", context.GetPropertyValue("Employees|Item[]|LastName"));
            Assert.AreEqual("BU 2", context.GetPropertyValue("Employees|Item[]|BusinessUnit|Name"));
            Assert.AreEqual("Role 2", context.GetPropertyValue("Employees|Item[]|Roles|Item[]|Name"));

            Assert.IsTrue(rolesEnumerator.MoveNext());
            Assert.AreEqual("bbb", context.GetPropertyValue("Employees|Item[]|FirstName"));
            Assert.AreEqual("BBB", context.GetPropertyValue("Employees|Item[]|LastName"));
            Assert.AreEqual("BU 2", context.GetPropertyValue("Employees|Item[]|BusinessUnit|Name"));
            Assert.AreEqual("Role 3", context.GetPropertyValue("Employees|Item[]|Roles|Item[]|Name"));

            Assert.IsFalse(rolesEnumerator.MoveNext());
            Assert.AreEqual("bbb", context.GetPropertyValue("Employees|Item[]|FirstName"));
            Assert.AreEqual("BBB", context.GetPropertyValue("Employees|Item[]|LastName"));
            Assert.AreEqual("BU 2", context.GetPropertyValue("Employees|Item[]|BusinessUnit|Name"));
            Assert.IsNull(context.GetPropertyValue("Employees|Item[]|Roles|Item[]|Name"));

            Assert.IsFalse(employeeEnumerator.MoveNext());
            Assert.IsNull(context.GetPropertyValue("Employees|Item[]|FirstName"));
            Assert.IsNull(context.GetPropertyValue("Employees|Item[]|LastName"));
            Assert.IsNull(context.GetPropertyValue("Employees|Item[]|BusinessUnit|Name"));
            Assert.IsNull(context.GetPropertyValue("Employees|Item[]|Roles|Item[]|Name"));
        }