Beispiel #1
0
        public void CalcularCostoAdiccionalEnvio_EstafetaMaritimo9000KMOtonio_CalculoCorrecto()
        {
            //Arrange
            var distancia           = 9000;
            var paqueteria          = "Estafeta";
            var fechaPedido         = new DateTime(2020, 09, 23, 8, 00, 00);
            var costoEsperado       = 4502.25M;
            var costoTransportacion = 2700M;

            var docObtenedorUtilidadDHL           = new ObtenedorUtilidadEstafeta();
            var docCalculaUtilidadPaqueteria      = new CalcularUtilidadPaqueteria(docObtenedorUtilidadDHL);
            var docCalculaCostoPorTemporadaOtonio = new CalculaCostoAdiccionalPorTemporadaOtonio();

            var SUT = new CalculaCostoAdiccionalEnvioMaritimo(docCalculaUtilidadPaqueteria, docCalculaCostoPorTemporadaOtonio);

            //Act
            var costoEnvioMaritimo = SUT.CalcularCostoAdiccionalEnvio(costoTransportacion, distancia, fechaPedido, paqueteria);

            //Assert
            Assert.AreEqual(costoEsperado, costoEnvioMaritimo);
        }
        public void costoPaquete_EstafetaTerrestre80KM_CalculoCorrecto()
        {
            //Arrange
            var distancia      = 80M;
            var paqueteria     = "Estafeta";
            var FechaPedido    = new DateTime(2020, 01, 23, 12, 00, 00);
            var costoEsperado  = 1160M;
            var tipoTransporte = "Terrestre";

            var docObtenerCostoPorKilometroTerrestre = new ObtenedorCostoPorKilometroTerrestre();
            var docCalculaAdiccionalPorEscala        = new CalculaCostoAdiccionalPorEscala();
            var docObtenedorUtilidadPaqueteria       = new ObtenedorUtilidadEstafeta();
            var calculaUtilidadFedex = new CalcularUtilidadPaqueteria(docObtenedorUtilidadPaqueteria);
            var docCalculaCostoAereo = new CalculaCostoAdiccionalAdiccionalEnvioAereo(docCalculaAdiccionalPorEscala, calculaUtilidadFedex);

            var SUT = new CalculaCostoEnvio(docObtenerCostoPorKilometroTerrestre, docCalculaCostoAereo);

            //Act

            var costoPedido = SUT.costoPaquete(distancia, paqueteria, FechaPedido);

            //Assert
            Assert.AreEqual(costoEsperado, costoPedido);
        }