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); }
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")); }