public ICalculaRetrasoPorDia CrearInstancia(EnumEstacionesAnio estacionesAnio)
        {
            ICalculaRetrasoPorDia          calculaRetrasoPorDia = null;
            IObtenedorTiempoDescansoPorDia obtenedorTiempoDescansoPorDia;

            switch (estacionesAnio)
            {
            case EnumEstacionesAnio.Invierno:
                obtenedorTiempoDescansoPorDia = _factoryGenericContainer.GetInstance <IObtenedorTiempoDescansoPorDia>("ObtenedorTiempoDescansoInvierno");
                calculaRetrasoPorDia          = new CalculaRetrasoPorDia(obtenedorTiempoDescansoPorDia);
                break;

            case EnumEstacionesAnio.Otonio:
                obtenedorTiempoDescansoPorDia = _factoryGenericContainer.GetInstance <IObtenedorTiempoDescansoPorDia>("ObtenedorTiempoDescansoOtonio");
                calculaRetrasoPorDia          = new CalculaRetrasoPorDia(obtenedorTiempoDescansoPorDia);
                break;

            case EnumEstacionesAnio.Verano:
                obtenedorTiempoDescansoPorDia = _factoryGenericContainer.GetInstance <IObtenedorTiempoDescansoPorDia>("ObtenedorTiempoDescansoVerano");
                calculaRetrasoPorDia          = new CalculaRetrasoPorDia(obtenedorTiempoDescansoPorDia);
                break;

            case EnumEstacionesAnio.Primavera:
                obtenedorTiempoDescansoPorDia = _factoryGenericContainer.GetInstance <IObtenedorTiempoDescansoPorDia>("ObtenedorTiempoDescansoPrimavera");
                calculaRetrasoPorDia          = new CalculaRetrasoPorDia(obtenedorTiempoDescansoPorDia);
                break;
            }

            return(calculaRetrasoPorDia);
        }
        public void ObtenerFechaEntrega_DHL2000KMTerrestreAplicaRetrasoPorDiaInvierno_ResultadoCorrecto()
        {
            //Arrange
            var fechaPedido   = new DateTime(2020, 01, 23, 12, 00, 00);
            var distancia     = 2000M;
            var FechaEsperada = new DateTime(2020, 01, 25, 17, 00, 00);

            var docTiempoReparto                    = new TerrestreDHL();
            var docObtenedorTiempoReparto           = new ObtenedorTiempoReparto(docTiempoReparto);
            var docCalculaTiempoEntrega             = new CalcularTiempoEntrega();
            var docObtenerdorTiempoDescansoInvierno = new ObtenedorTiempoDescansoPorDiaInvierno();
            var docCalculaRetrasoPorDia             = new CalculaRetrasoPorDia(docObtenerdorTiempoDescansoInvierno);

            var SUT = new CalculaFechaEntregaTerrestre(docObtenedorTiempoReparto, docCalculaTiempoEntrega, docCalculaRetrasoPorDia);

            //Act
            var fechaEntregaPaquete = SUT.ObtenerFechaEntregaMedioTransporte(distancia, fechaPedido);

            //Assert
            Assert.AreEqual(FechaEsperada, fechaEntregaPaquete);
        }