コード例 #1
0
ファイル: Regla.cs プロジェクト: carlospeix/spikes
        public Criterio ObtenerCriterio()
        {
            Criterio criterio;

            if ("menor".Equals(modo))
                criterio = new CriterioMenorMonto(criterios);
            else
                criterio = new CriterioMayorMonto(criterios);

            return new CriterioActualizadorDeHistorialAdapter(criterio);
        }
コード例 #2
0
        public void NoReintegraPorExcederCantidadMensualAunqueMontoAlcance()
        {
            contexto.DefinirBuscadorDeHistorial((periodo) => new Historial(2, 400m));
            Criterio criterioConjunto = new CriterioMenorMonto(
                new CriterioMontoAcumuladoEnPeriodo(600m, unMes),
                new CriterioCantidadAcumuladaEnPeriodo(2, unMes)
            );

            var reintegro = criterioConjunto.Calcular(contexto, new Concepto(200m));

            Assert.That(reintegro, Is.EqualTo(0));
        }
コード例 #3
0
        public void NoReintegroPorAnteojosEnAñoCalendario()
        {
            contexto.DefinirBuscadorDeHistorial((periodo) => new Historial(2, 500m));

            Criterio criterioConjunto = new CriterioMenorMonto(
                new CriterioMontoAcumuladoEnAnioCalendario(600m),
                new CriterioCantidadAcumuladaEnAnioCalendario(2)
            );

            var adapter = new CriterioActualizadorDeHistorialAdapter(criterioConjunto);

            var reintegro = adapter.Calcular(contexto, new Concepto(300m));

            Assert.That(reintegro, Is.EqualTo(0m));
        }
コード例 #4
0
        public void DebeAcumularReintegrosEnHistorialYTomarlosEnCuentaEnOtroCalculo()
        {
            contexto.DefinirBuscadorDeHistorial((periodo) => new Historial(1, 400m));

            Criterio criterioConjunto = new CriterioMenorMonto(
                new CriterioMontoAcumuladoEnPeriodo(600m, unMes),
                new CriterioCantidadAcumuladaEnPeriodo(2, unMes)
            );

            var adapter = new CriterioActualizadorDeHistorialAdapter(criterioConjunto);

            var reintegro1 = adapter.Calcular(contexto, new Concepto(200m));
            var reintegro2 = adapter.Calcular(contexto, new Concepto(200m));

            Assert.That(reintegro1, Is.EqualTo(200m));
            Assert.That(reintegro2, Is.EqualTo(0m));
        }
コード例 #5
0
        public void ReintegroAlquilerAndadorConAsiento3Meses50PeXMesAlternativo()
        {
            contexto.DefinirBuscadorDeHistorial((periodo) => new Historial(0, 0m));

            Criterio criterioConjunto = new CriterioMenorMonto(
                new CriterioMontoAcumuladoEnPeriodo(50m, unMes),
                new CriterioCantidadAcumuladaEnPeriodo(3, todaLaVida)
            );

            var adapter = new CriterioActualizadorDeHistorialAdapter(criterioConjunto);

            var reintegro1 = adapter.Calcular(contexto, new Concepto(10m));
            var reintegro2 = adapter.Calcular(contexto, new Concepto(10m));
            var reintegro3 = adapter.Calcular(contexto, new Concepto(10m));
            var reintegro4 = adapter.Calcular(contexto, new Concepto(10m));

            Assert.That(reintegro1, Is.EqualTo(10m));
            Assert.That(reintegro2, Is.EqualTo(10m));
            Assert.That(reintegro3, Is.EqualTo(10m));
            Assert.That(reintegro4, Is.EqualTo(0m));
        }