public void Test3_Lower_Cost_Route_From_A_To_D_Will_Pass()
        {
            CalculoService service = new CalculoService(this._testMapa);

            var result = service.Process("A", "D", 10, 2.50m);

            Assert.IsTrue(result.CustoTotal == 6.25m);
        }
        public void Test6_Lower_Cost_Route_From_Arad_To_Bucharest_Will_Pass()
        {
            CalculoService service = new CalculoService(this._romeniaMapa);

            var state = service.ChiepestFirstSearch("Arad", "Bucharest");

            Assert.IsTrue(state.Cost == 418.000m);
        }
        public CalcularMelhorRotaResponse CalcularRota(CalcularMelhorRotaRequest request)
        {
            var response = new CalcularMelhorRotaResponse();

            try
            {
                var problema = request.Problema.ConvertToProblema();
                if (problema.IsValid())
                {
                    CalculoService servicoDeCalculo;
                    Mapa           mapa = null;

                    if (!string.IsNullOrEmpty(problema.Id))
                    {
                        var id = Guid.Parse(problema.Id);
                        mapa = _mapaRepository.FindBy(id);
                    }
                    else if (!string.IsNullOrEmpty(problema.NomeMapa))
                    {
                        var nomeMapa = problema.NomeMapa;
                        mapa = _mapaRepository.FindByName(nomeMapa);
                    }

                    if (mapa != null)
                    {
                        servicoDeCalculo = new CalculoService(mapa);

                        var result = servicoDeCalculo.Process(problema.Origem,
                                                              problema.Destino,
                                                              problema.AutonomiaVeiculo,
                                                              problema.ValorCombustivel);
                        IFormatProvider culture = Thread.CurrentThread.CurrentCulture;

                        response.Success       = true;
                        response.Message       = Resources.MapaServices_CalcularRota_Success_Message;
                        response.CustoTotal    = result.CustoTotal.ToString("n", culture);
                        response.MelhorCaminho = result.MelhorCaminho;
                    }
                    else
                    {
                        response.Success = false;
                        response.Message = Resources.MapaServices_CalcularRota_Fail_Message;
                    }
                }
                else
                {
                    response.Success = false;
                    response.Message = Resources.MapaServices_CalcularRota_Fail2_Message + problema.GetErrorMessages();
                    response.Rules   = problema.BrokenRules;
                }
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.Message = Resources.MapaServices_CalcularRota_Error_Message + ex.Message;
            }
            return(response);
        }
示例#4
0
            public async void should_fail_when_args_is_equal_to_zero()
            {
                var mockTaxasService = new Mock <ITaxasProviderService>();
                var service          = new CalculoService(mockTaxasService.Object);

                var result = await service.CalculaJuros(0, 0);

                Assert.False(result.Succeeded);
            }
示例#5
0
        public async Task CalculoService_CalcularMontante_DeveBuscarTaxaJurosComErro(CalculaJuroFilter filtro)
        {
            // Arrange  Act
            var calculoService = new CalculoService(_bus, _taxaJuroAPI);
            var montante       = await calculoService.CalcularAsync(filtro);

            // Assert
            montante.Should().BeNull();
            await _bus.Received(1).Publish(Arg.Any <DomainNotification>());
        }
示例#6
0
        public async Task CalculoService_CalcularMontante_DeveBuscarTaxaJurosComSucesso()
        {
            // Arrange  Act
            var calculoService = new CalculoService(_bus, _taxaJuroAPI);
            var montante       = await calculoService.CalcularAsync(new CalculaJuroFilter { Periodo = 5, ValorInicial = 100 });

            // Assert
            montante.Should().NotBeNull();
            await _bus.DidNotReceive().Publish(Arg.Any <DomainNotification>());
        }
示例#7
0
            public async void should_calculate_interests_according_to_args_and_tax(decimal valorInicial, int meses, decimal taxaJuros, decimal valorFinalEsperado)
            {
                var mockTaxasService = new Mock <ITaxasProviderService>();

                mockTaxasService.Setup(srv => srv.GetTaxaJuros()).Returns(Task.FromResult(new Status <decimal>(taxaJuros)));
                var service = new CalculoService(mockTaxasService.Object);

                var result = await service.CalculaJuros(valorInicial, meses);

                Assert.True(result.Succeeded);
                Assert.Equal(valorFinalEsperado, result.Value);
            }
示例#8
0
            public async void should_fail_when_taxas_provider_fails()
            {
                var errorMessage     = "test message";
                var mockTaxasService = new Mock <ITaxasProviderService>();

                mockTaxasService.Setup(srv => srv.GetTaxaJuros()).Returns(Task.FromResult(new Status <decimal>(errorMessage: errorMessage)));
                var service = new CalculoService(mockTaxasService.Object);

                var result = await service.CalculaJuros(10, 10);

                Assert.False(result.Succeeded);
                Assert.Equal(errorMessage, result.ErrorMessage);
            }
        public void Test5_Lower_Route_From_Arad_To_Bucharest_Will_Pass()
        {
            CalculoService service = new CalculoService(this._romeniaMapa);

            var path = service.FindBestPath("Arad", "Bucharest");

            var expectedPath = new List <string>()
            {
                "Arad", "Sibiu", "Rimnicu Vilcea", "Pitesti", "Bucharest"
            };

            if (path.Count == expectedPath.Count)
            {
                for (int i = 0; i < path.Count; i++)
                {
                    Assert.IsTrue(path[i].Equals(expectedPath[i]));

                    Console.WriteLine("{0} == {1}", path[i], expectedPath[i]);
                }
            }
        }
        public void Test2_Lower_Route_From_A_To_D_Will_Pass()
        {
            CalculoService service = new CalculoService(this._testMapa);

            var path = service.FindBestPath("A", "D");

            var expectedPath = new List <string>()
            {
                "A", "B", "D"
            };

            if (path.Count == expectedPath.Count)
            {
                for (int i = 0; i < path.Count; i++)
                {
                    Assert.IsTrue(path[i].Equals(expectedPath[i]));

                    Console.WriteLine("{0} == {1}", path[i], expectedPath[i]);
                }
            }
        }
 public void Setup()
 {
     service = new CalculoService();
 }