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); }
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); }
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); }
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); }