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