Ejemplo n.º 1
0
        public void CalcularCostoAdiccionalEnvio_DHLMaritimo9000KMInvierno_CalculoCorrecto()
        {
            //Arrange
            var distancia           = 9000;
            var paqueteria          = "DHL";
            var fechaPedido         = new DateTime(2020, 01, 23, 8, 00, 00);
            var costoEsperado       = 4981.5M;
            var costoTransportacion = 2700M;

            var docObtenedorUtilidadDHL             = new ObtenedorUtilidadDHL();
            var docCalculaUtilidadPaqueteria        = new CalcularUtilidadPaqueteria(docObtenedorUtilidadDHL);
            var docCalculaCostoPorTemporadaInvierno = new CalculaCostoAdiccionalPorTemporadaInvierno();


            var SUT = new CalculaCostoAdiccionalEnvioMaritimo(docCalculaUtilidadPaqueteria, docCalculaCostoPorTemporadaInvierno);

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

            //Assert
            Assert.AreEqual(costoEsperado, costoEnvioMaritimo);
        }
        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);
        }