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 BaseResponse TestPost2([FromBody] TestRequest1 request)
 {
     try
     {
         var response = new BaseResponse()
         {
             Result = $"Ok2. A={request.A}"
         };
         return(response);
     }
     catch (Exception ex)
     {
         return(new BaseResponse()
         {
             Result = ex.ToString()
         });
     }
 }
Beispiel #3
0
 public IActionResult TestPost1([FromBody] TestRequest1 request)
 {
     try
     {
         var response = new BaseResponse()
         {
             Result = $"Ok1. A={request.A}"
         };
         return(new JsonResult(response));
     }
     catch (Exception ex)
     {
         return(new JsonResult(new BaseResponse()
         {
             Result = ex.ToString()
         }));
     }
 }
Beispiel #4
0
 public BaseResponse TestGet1(TestRequest1 request)
 {
     try
     {
         var response = new BaseResponse()
         {
             Result = $"Ok1. A={request.A}"
         };
         return(response);
     }
     catch (Exception ex)
     {
         return(new BaseResponse()
         {
             Result = ex.ToString()
         });
     }
 }
Beispiel #5
0
        public async void When_RequestPipelineParallel_ExecPipeLine_Parallel_With_MoreThanOne_Execpetion()
        {
            Mock <IHandlersServiceProvider> providerMock = new Mock <IHandlersServiceProvider>();
            TestRequest1 testRequest1 = new TestRequest1();

            testRequest1.text = "1";
            providerMock.Setup(o => o.GetHandlers(testRequest1)).Returns(new List <IBaseHandler> {
                new HandlersSample1(), new HandlersSampleWithErrorExecption()
            });

            RequestPipelineParallel provider = new RequestPipelineParallel(providerMock.Object);


            var res = await provider.ExecPipeline(testRequest1);


            res.ResponseHasErros().ShouldBeTrue();
            res.GetErrorResponse <DefaultResponseError>().ShouldNotBeNull();
        }
Beispiel #6
0
        public async void When_RequestPipelineParallel_ExecPipeLine_Parallel_With_MoreThanOne_PreHandler_Error()
        {
            Mock <IHandlersServiceProvider> providerMock = new Mock <IHandlersServiceProvider>();
            TestRequest1 testRequest1 = new TestRequest1();

            testRequest1.text = "1";
            providerMock.Setup(o => o.GetHandlers(testRequest1)).Returns(new List <IBaseHandler> {
                new HandlersSample1(), new HandlersSampleWithError()
            });

            RequestPipelineParallel provider = new RequestPipelineParallel(providerMock.Object);


            var res = await provider.ExecPipeline(testRequest1);

            res.FirstOrDefault().ShouldNotBeNull();
            res.Count.ShouldBe(1);
            res.Any(o => o.AnyError).ShouldBeTrue();
        }
Beispiel #7
0
        public async void When_RequestPipeline_ExecPipeLine_With_MoreThanOne_Handler_Error()
        {
            Mock <IHandlersServiceProvider> providerMock = new Mock <IHandlersServiceProvider>();
            TestRequest1 testRequest1 = new TestRequest1();

            testRequest1.text = "1";
            providerMock.Setup(o => o.GetHandlers(testRequest1)).Returns(new List <IBaseHandler> {
                new HandlersSample1(), new HandlersSample1Error()
            });

            RequestPipeline provider = new RequestPipeline(providerMock.Object);


            var res = await provider.ExecPipeline(testRequest1);

            res.GetResponse <TestResponse1>().ShouldNotBeNull();
            res.ResponseHasErros().ShouldBeTrue();
            res.Count.ShouldBe(2);
        }
Beispiel #8
0
        public async Task Medaitor_4WaitForAsync()
        {
            var servicesWebApp   = new Microsoft.Extensions.DependencyInjection.ServiceCollection();
            var servicesMediator = new Microsoft.Extensions.DependencyInjection.ServiceCollection();

            servicesWebApp.AddLatransMedaitor()
            .AddActivityHandler <TestActivityHandler1>()
            .AddActivityHandler <TestActivityHandler2>()
            .Build();

            ActivityId activityId = ActivityId.NewId();

            using (var serviceProviderMediator = servicesMediator.BuildServiceProvider()) {
                using (var serviceProviderWebApp = servicesWebApp.BuildServiceProvider()) {
                    using (var scopeWebApp = serviceProviderWebApp.CreateScope()) {
                        var scopedProviderWebApp = scopeWebApp.ServiceProvider;
                        var medaitorClient       = scopedProviderWebApp.GetRequiredService <IMediatorClientFactory>().GetMedaitorClient();

                        var activityExecutionConfiguration = scopedProviderWebApp.GetRequiredService <ActivityExecutionConfigurationDefaults>().ForQueryCancelable;
                        var request = new TestRequest1()
                        {
                            A = 6, B = 7
                        };
                        var connectedClient = await medaitorClient.ConnectAndSendAsync(
                            activityId,
                            request,
                            activityExecutionConfiguration,
                            CancellationToken.None);

                        var activityResponse = await connectedClient.WaitForAsync(activityExecutionConfiguration, CancellationToken.None);

                        var status = await connectedClient.GetStatusAsync();

                        Assert.Equal(ActivityStatus.Completed, status.Status);
                        Assert.NotNull(activityResponse);
                        Assert.NotNull(activityResponse as OkResultActivityResponse <TestResponse1>);
                        Assert.Equal(6 * 7 + 1, ((OkResultActivityResponse <TestResponse1>)activityResponse).Result.R);
                    }
                }
            }
        }
        public void GetPropertyValueTest()
        {
            // Arrange.
            var typeResolver = Mock.Create<ITypeResolver>(Behavior.Loose);
            var role1 = new TestRole { Name = "Test Role 1" };
            var role2 = new TestRole { Name = "Test Role 2", ParentRole = new TestRole { Name = "Parent Role" } };
            var businessUnit = new TestBusinessUnit { Name = "Test BU", ParentBusinessUnit = new TestBusinessUnit { Name = "Parent BU" } };
            var employee = new TestEmployee { FirstName = "aaa", LastName = "AAA", BusinessUnit = businessUnit, Roles = new[] { role1, role2 } };
            var request = new TestRequest1 { Employee = employee };

            var context = new WebMethodResultDataContext(request, typeResolver);

            // Act / Assert.
            Assert.IsNull(context.GetPropertyValue(null));
            Assert.AreEqual("aaa", context.GetPropertyValue("Employee|FirstName"));
            Assert.AreEqual("AAA", context.GetPropertyValue("Employee|LastName"));
            Assert.AreEqual("Test BU", context.GetPropertyValue("Employee|BusinessUnit|Name"));
            Assert.AreEqual("Parent BU", context.GetPropertyValue("Employee|BusinessUnit|ParentBusinessUnit|Name"));
            Assert.IsNull(context.GetPropertyValue("Employee|Roles|Name"));
            Assert.IsNull(context.GetPropertyValue("Employee|Roles|ParentRole|Name"));
        }
Beispiel #10
0
        public async Task Medaitor_3ConnectAsync()
        {
            var servicesWebApp   = new Microsoft.Extensions.DependencyInjection.ServiceCollection();
            var servicesMediator = new Microsoft.Extensions.DependencyInjection.ServiceCollection();

            servicesWebApp.AddLatransMedaitor()
            .AddActivityHandler <TestActivityHandler1>()
            .AddActivityHandler <TestActivityHandler2>()
            .Build();

            IMediatorClientConnected <TestRequest1> connectedClient = null;
            MediatorClientConnected <TestRequest1, TestResponse1> testConnectedClient = null;

            using (var serviceProviderMediator = servicesMediator.BuildServiceProvider()) {
                using (var serviceProviderWebApp = servicesWebApp.BuildServiceProvider()) {
                    using (var scopeWebApp = serviceProviderWebApp.CreateScope()) {
                        var scopedProviderWebApp = scopeWebApp.ServiceProvider;
                        var medaitorClient       = scopedProviderWebApp.GetRequiredService <IMediatorClientFactory>().GetMedaitorClient();

                        var request = new TestRequest1()
                        {
                            A = 6, B = 7
                        };
                        connectedClient = await medaitorClient.ConnectAndSendAsync(
                            ActivityId.NewId(),
                            request,
                            null,
                            CancellationToken.None);

                        Assert.False(connectedClient.GetActivityContext().IsDisposed);
                        Assert.NotNull(connectedClient);
                        testConnectedClient = (MediatorClientConnected <TestRequest1, TestResponse1>)connectedClient;
                        Assert.False(testConnectedClient.IsDisposed());
                    }
                }
            }
            Assert.True(testConnectedClient.IsDisposed());
        }
Beispiel #11
0
        public async void When_RequestPipelineParallel_ExecPipeLine_Parallel_With_MoreThanOne_Handler_SameKey_Response()
        {
            Mock <IHandlersServiceProvider> providerMock = new Mock <IHandlersServiceProvider>();
            TestRequest1 testRequest1 = new TestRequest1();

            testRequest1.text = "1";
            providerMock.Setup(o => o.GetHandlers(testRequest1)).Returns(new List <IBaseHandler> {
                new HandlersSample1(), new HandlersSample_1()
            });

            RequestPipelineParallel provider = new RequestPipelineParallel(providerMock.Object);

            var res = await provider.ExecPipeline(testRequest1);

            res.ShouldNotBeNull();
            res.Count.ShouldBe(2);
            var responses = res.GetResponses <TestResponse1>();

            foreach (var response in responses)
            {
                response.ShouldNotBeNull();
                response.text.ShouldBe(testRequest1.text);
            }
        }