public void Deposito_InputMonto100_ReturnsTrue()
        {
            // 1. Arrange
            // Inicializar las variables o componentes que ejecutaran el test
            CuentaBancaria cuentaBancaria = new CuentaBancaria(new LoggerFake());

            // 2. Act
            // Ejecucion de la operacion
            var resultado = cuentaBancaria.Deposito(100);

            // 3. Assert
            // Compara resultados
            Assert.IsTrue(resultado);
            Assert.That(cuentaBancaria.GetBalance, Is.EqualTo(100));
        }
        public void Deposito_InputMonto100Mocking_ReturnsTrue()
        {
            // 1. Arrange
            // Inicializar las variables o componentes que ejecutaran el test
            var            mocking        = new Mock <ILoggerGeneral>();
            CuentaBancaria cuentaBancaria = new CuentaBancaria(mocking.Object);

            // 2. Act
            // Ejecucion de la operacion
            var resultado = cuentaBancaria.Deposito(100);

            // 3. Assert
            // Compara resultados
            Assert.True(resultado);
            Assert.Equal(100, cuentaBancaria.GetBalance());
        }
        public void CuentaBancariaLogger_VerifyEjemplo()
        {
            var loggerGeneralMock = new Mock <ILoggerGeneral>();

            CuentaBancaria cuentaBancaria = new CuentaBancaria(loggerGeneralMock.Object);

            cuentaBancaria.Deposito(100);
            Assert.That(cuentaBancaria.GetBalance, Is.EqualTo(100));

            // Verifica cuantas veces el mock esta llamando al metodo message
            loggerGeneralMock.Verify(x => x.Message(It.IsAny <string>()), Times.Exactly(3));

            // Si alguna vez se ejecuto
            loggerGeneralMock.Verify(x => x.Message("Visita axel.com"), Times.AtLeastOnce);

            // Cuantas veces se ha seteado
            loggerGeneralMock.VerifySet(x => x.PrioridadLogger = 100, Times.Once);

            // Cuantas veces se ha ejecutado
            loggerGeneralMock.VerifyGet(x => x.PrioridadLogger, Times.Once);
        }
        public void Retiro_Retiro100ConBalance200_ReturnsTrue(int balance, int retiro)
        {
            // 1. Arrange
            // Inicializar las variables o componentes que ejecutaran el test
            var loogerMock = new Mock <ILoggerGeneral>();

            loogerMock.Setup(x => x.LogDatabase(It.IsAny <string>())).Returns(true);
            loogerMock.Setup(x => x.LogBalanceDespuesRetiro(It.IsAny <int>())).Returns(true);
            // Agregando condicion al metodo
            loogerMock.Setup(x => x.LogBalanceDespuesRetiro(It.Is <int>(n => n > 0))).Returns(true);

            CuentaBancaria cuentaBancaria = new CuentaBancaria(loogerMock.Object);

            cuentaBancaria.Deposito(balance);

            // 2. Act
            // Ejecucion de la operacion
            var resultado = cuentaBancaria.Retiro(retiro);

            // 3. Assert
            // Compara resultados
            Assert.IsTrue(resultado);
        }