Пример #1
0
        public void CalcularCostoAdiccionalEnvio_DHLMaritimo9000KMPrimavera_CalculoCorrecto()
        {
            //Arrange
            var distancia           = 9000;
            var paqueteria          = "DHL";
            var fechaPedido         = new DateTime(2020, 03, 23, 8, 00, 00);
            var costoEsperado       = 4050M;
            var costoTransportacion = 2700M;

            var docObtenedorUtilidadDHL              = new ObtenedorUtilidadDHL();
            var docCalculaUtilidadPaqueteria         = new CalcularUtilidadPaqueteria(docObtenedorUtilidadDHL);
            var docCalculaCostoPorTemporadaPrimavera = new CalculaCostoAdiccionalPorTemporadaPrimavera();

            var SUT = new CalculaCostoAdiccionalEnvioMaritimo(docCalculaUtilidadPaqueteria, docCalculaCostoPorTemporadaPrimavera);

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

            //Assert
            Assert.AreEqual(costoEsperado, costoEnvioMaritimo);
        }
        public void costoPaquete_DHLAereo446400KMAplicaCostoAdiccionalPorEscala_CalculoCorrecto()
        {
            //Arrange
            var distancia      = 446400;
            var paqueteria     = "DHL";
            var fechaPedido    = new DateTime(2020, 01, 23, 8, 00, 00);
            var costoEsparado  = 6829800M;
            var tipoTransporte = "Aereo";

            var docObtenerCostoPorKilometroAereo = new ObtenedorCostoPorKilometroAereo();
            var docCalculaAdiccionalPorEscala    = new CalculaCostoAdiccionalPorEscala();
            var docObtenedorUtilidadPaqueteria   = new ObtenedorUtilidadDHL();
            var calculaUtilidadFedex             = new CalcularUtilidadPaqueteria(docObtenedorUtilidadPaqueteria);
            var docCalculaCostoAereo             = new CalculaCostoAdiccionalAdiccionalEnvioAereo(docCalculaAdiccionalPorEscala, calculaUtilidadFedex);

            var SUT = new CalculaCostoEnvio(docObtenerCostoPorKilometroAereo, docCalculaCostoAereo);

            //Act
            var costoPedido = SUT.costoPaquete(distancia, paqueteria, fechaPedido);


            Assert.AreEqual(costoEsparado, costoPedido);
        }
        public void costoPaquete_DHLMaritimo9000KMAplicaCostoAdiccionalPorEscala_CalculoCorrecto()
        {
            //Arrange
            var distancia      = 9000;
            var paqueteria     = "DHL";
            var fechaPedido    = new DateTime(2020, 01, 23, 8, 00, 00);
            var costoEsparado  = 4981.5M;
            var tipoTransporte = "Maritimo";

            var obtenedorCostoPorKilometroMaritimo = new ObtenedorCostoPorKilometroMaritimo();
            var docCalculaAdiccionalPorTemporada   = new CalculaCostoAdiccionalPorTemporadaInvierno();
            var docObtenedorUtilidadPaqueteria     = new ObtenedorUtilidadDHL();
            var calculaUtilidadDHL   = new CalcularUtilidadPaqueteria(docObtenedorUtilidadPaqueteria);
            var docCalculaCostoAereo = new CalculaCostoAdiccionalEnvioMaritimo(calculaUtilidadDHL, docCalculaAdiccionalPorTemporada);

            var SUT = new CalculaCostoEnvio(obtenedorCostoPorKilometroMaritimo, docCalculaCostoAereo);


            //Act
            var costoPedido = SUT.costoPaquete(distancia, paqueteria, fechaPedido);


            Assert.AreEqual(costoEsparado, costoPedido);
        }