public void DeveConverterTrechoInformado()
        {
            Trecho        expected = NovoTrechoValido();
            List <string> trecho   = GerarTrechoValidoEFormatado();

            List <Trecho> result = _converterTrecho.Converter(trecho);

            Assert.Contains(result,
                            e => e.CidadeOrigem == expected.CidadeOrigem && e.CidadeDestino == expected.CidadeDestino && e.QuantidadeDias == expected.QuantidadeDias);
        }
        public List <string> Calcular(List <string> encomendas, List <string> trechosCadastrados)
        {
            List <string> rotasCalculadas = new List <string>();

            if (encomendas == null || !encomendas.Any() ||
                trechosCadastrados == null || !trechosCadastrados.Any())
            {
                return(null);
            }

            List <Trecho> trechos = _converterTrecho.Converter(trechosCadastrados);

            foreach (string encomenda in encomendas)
            {
                string encomendaFormatada = _validadorFormatacaoEncomenda.Validar(encomenda);

                rotasCalculadas.Add(_buscarMelhorRota.Buscar(encomendaFormatada, trechos));
            }

            return(rotasCalculadas);
        }