예제 #1
0
        public async Task PluginB_multi_Works()
        {
            // Arrange
            var payload = new CalculationRequestMultiModel
            {
                Calculations = new[]
                {
                    new CalculationRequestModel
                    {
                        A = 50,
                        B = 5
                    },
                    new CalculationRequestModel
                    {
                        A = 40,
                        B = 5
                    }
                }
            };

            //Act
            var result = await Post <CalculationResponseModel>(_client, "PluginB", "/service/multi", payload);

            // Assert (50 - 5) + (40 - 5)
            Assert.Equal(80, result.Result);
        }
예제 #2
0
        public async Task PluginC_multi_Works()
        {
            // Arrange
            var payload = new CalculationRequestMultiModel
            {
                Calculations = new[]
                {
                    new CalculationRequestModel
                    {
                        A = 50,
                        B = 2
                    },
                    new CalculationRequestModel
                    {
                        A = 40,
                        B = 2
                    }
                }
            };

            //Act
            var result = await Post <CalculationResponseModel>(_client, "PluginC", "/service/multi", payload);

            // Assert (50 * 2 + 10% discount) + (40 * 2 + 10% discount)
            Assert.Equal(198, result.Result);
        }
예제 #3
0
        public async Task PluginCFromNetwork_multi_Works()
        {
            Skip.IfNot(Environment.GetEnvironmentVariable("LOCAL") == "true");

            // Arrange
            var payload = new CalculationRequestMultiModel
            {
                Calculations = new[]
                {
                    new CalculationRequestModel
                    {
                        A = 50,
                        B = 2
                    },
                    new CalculationRequestModel
                    {
                        A = 40,
                        B = 2
                    }
                }
            };

            //Act
            var result = await Post <CalculationResponseModel>(_client, "PluginCFromNetwork", "/network/multi", payload);

            // Assert (50 * 2 + 10% discount) + (40 * 2 + 10% discount)
            Assert.Equal(198, result.Result);
        }
예제 #4
0
        public async Task PluginA_multi_Works()
        {
            // Arrange
            var payload = new CalculationRequestMultiModel
            {
                Calculations = new[]
                {
                    new CalculationRequestModel
                    {
                        A = 100,
                        B = 150
                    },
                    new CalculationRequestModel
                    {
                        A = 100,
                        B = 150
                    }
                }
            };

            //Act
            var result = await Post <CalculationResponseModel>(_client, "PluginA", "/service/multi", payload);

            // Assert 100 + 150 + 100 + 150
            Assert.Equal(500, result.Result);
        }
        protected async Task <CalculationResponseModel> CalculateMultipleAsync(CalculationRequestMultiModel requestModel)
        {
            // Ever more complex objects are serialized correctly
            var calculationContext = new ComplexCalculationContext
            {
                Calculations = requestModel.Calculations.Select(c => new CalculationContext {
                    A = c.A, B = c.B
                }).ToArray()
            };

            return(new CalculationResponseModel
            {
                Result = (await _plugin.CalculateMutipleAsync(calculationContext)).Results.Sum(r => r.Result)
            });
        }
        public Task <CalculationResponseModel> CalculateMultiple(CalculationRequestMultiModel requestModel)
        {
            // Ever more complex objects are serialized correctly
            var calculationContext = new ComplexCalculationContext
            {
                Calculations = requestModel.Calculations.Select(c => new CalculationContext {
                    A = c.A, B = c.B
                }).ToArray()
            };

            return(Task.FromResult(new CalculationResponseModel
            {
                Result = _plugin.CalculateMutiple(calculationContext).Results.Sum(r => r.Result)
            }));
        }
        public async Task <CalculationResponseModel> CalculateMultiple(CalculationRequestMultiModel requestModel)
        {
            var plugin = await _loader.Load();

            // Ever more complex objects are serialized correctly
            var calculationContext = new ComplexCalculationContext
            {
                Calculations = requestModel.Calculations.Select(c => new CalculationContext {
                    A = c.A, B = c.B
                }).ToArray()
            };

            return(new CalculationResponseModel
            {
                Result = plugin.CalculateMutiple(calculationContext).Results.Sum(r => r.Result)
            });
        }
 public Task <CalculationResponseModel> CalculateMultiple(CalculationRequestMultiModel requestModel)
 {
     return(_service.CalculateMultiple(requestModel));
 }
예제 #9
0
 public async Task <CalculationResponseModel> CalculateMultipleAsync(CalculationRequestMultiModel requestModel)
 {
     base.SetPlugin(await _loader.Load());
     return(await base.CalculateMultipleAsync(requestModel));
 }
예제 #10
0
 public Task <CalculationResponseModel> CalculateMultipleAsync(CalculationRequestMultiModel requestModel) => base.CalculateMultipleAsync(requestModel);
예제 #11
0
 public CalculationResponseModel CalculateMultiple(CalculationRequestMultiModel requestModel) => base.CalculateMultiple(requestModel);