コード例 #1
0
        public void TransferenciaValidaEditaLosFondosDeLasCuentas()
        {
            // Preparación
            Cuenta origen = new Cuenta()
            {
                Fondos = 10
            };
            Cuenta destino = new Cuenta()
            {
                Fondos = 5
            };
            decimal montoATransferir = 7m;
            var     mock             = new Mock <IServicioValidacionesDeTransferencias>();

            mock.Setup(x => x.RealizarValidaciones(origen, destino, montoATransferir)).Returns(string.Empty);

            var servicio = new ServicioDeTransferencias(mock.Object);

            // Prueba
            servicio.TransferirEntreCuentas(origen, destino, montoATransferir);

            // Verificación
            Assert.AreEqual(3, origen.Fondos);
            Assert.AreEqual(12, destino.Fondos);
        }
コード例 #2
0
        public void TransferenciaInvalidaArrojaException()
        {
            // Preparación
            Exception expectedException = null;
            Cuenta    origen            = new Cuenta()
            {
                Fondos = 0
            };
            Cuenta destino = new Cuenta()
            {
                Fondos = 0
            };
            decimal montoATransferir = 5m;
            var     mock             = new Mock <IServicioValidacionesDeTransferencias>();
            string  mensajeDeError   = "mensaje de error";

            mock.Setup(x => x.RealizarValidaciones(origen, destino, montoATransferir)).Returns(mensajeDeError);
            var servicio = new ServicioDeTransferencias(mock.Object);

            // Prueba
            try
            {
                servicio.TransferirEntreCuentas(origen, destino, montoATransferir);
                Assert.Fail("Un error debió ser arrojado");
            }
            catch (Exception ex)
            {
                expectedException = ex;
            }

            // Verificación
            Assert.IsTrue(expectedException is ApplicationException);
            Assert.AreEqual(mensajeDeError, expectedException.Message);
        }
コード例 #3
0
        public void TransferenciaEntreCuentasConFondosInsuficientesArrojaUnError()
        {
            // Preparación
            Exception expectedException = null;
            Cuenta    origen            = new Cuenta()
            {
                Fondos = 0
            };
            Cuenta destino = new Cuenta()
            {
                Fondos = 0
            };
            decimal montoATransferir = 5m;
            var     servicio         = new ServicioDeTransferencias();

            // Prueba
            try
            {
                servicio.TransferirEntreCuentas(origen, destino, montoATransferir);
                Assert.Fail("Un error debió ser arrojado");
            }
            catch (Exception ex)
            {
                expectedException = ex;
            }

            // Verificación
            Assert.IsTrue(expectedException is ApplicationException);
            Assert.AreEqual("La cuenta origen no tiene fondos suficientes para realizar la operación", expectedException.Message);
        }
コード例 #4
0
        public void TransferenciaEntrecuentasValidarFondos()
        {
            // Preparación
            Cuenta origen = new Cuenta()
            {
                Fondos = 10
            };
            Cuenta destino = new Cuenta()
            {
                Fondos = 5
            };
            decimal cantidadAtranferir        = 3m;
            ServicioDeTransferencias servicio = new ServicioDeTransferencias();

            // Prueba
            servicio.TransferirEntreCuentas(origen, destino, cantidadAtranferir);
            // Verificación
            Assert.AreEqual(7, origen.Fondos);
            Assert.AreEqual(8, destino.Fondos);
        }