コード例 #1
0
ファイル: Cuenta.cs プロジェクト: hbiarge/Test-Sample-code
        public void Transferir(decimal cantidad, Cuenta aCuenta)
        {
            // <pex>
            if (aCuenta == (Cuenta)null)
                throw new ArgumentNullException("aCuenta");
            // </pex>

            if (cantidad > Saldo)
            {
                throw new InvalidOperationException("No tiene saldo suficiente.");
            }

            var ratio = conversorMoneda.RatioConversion(Moneda, aCuenta.Moneda);
            Saldo -= cantidad;
            aCuenta.Saldo += cantidad * ratio;

            var mensaje =
                string.Format(
                    "C {0} ({1}) -{4} | C {2} ({3}) +{5} | Ratio Conversión: {6}",
                    NumeroCuenta,
                    Moneda,
                    aCuenta.NumeroCuenta,
                    aCuenta.Moneda,
                    cantidad,
                    cantidad * ratio,
                    ratio);

            EventManager.Current.Publish(mensaje);
            logger.Log(mensaje);
        }
コード例 #2
0
        public void TransferirTest()
        {
            var ratio = 1.25M;
            var conversor = new Mock<IConversorMoneda>();
            conversor
                .Setup(x => x.RatioConversion(It.IsAny<Moneda>(), It.IsAny<Moneda>()))
                .Returns(ratio);

            var logger = new Mock<ILoger>();

            FactoriaConversion.SetConversor(conversor.Object);
            FactoriaLogger.SetLogger(logger.Object);

            int numeroCuenta = 1;
            Moneda moneda = Moneda.Euro;
            Decimal saldo = 100M;
            Cuenta target = new Cuenta(numeroCuenta, moneda, saldo);
            Decimal cantidad = 50;
            int numeroCuenta2 = 2;
            Moneda moneda2 = Moneda.Dolar;
            Decimal saldo2 = 100M;
            Cuenta aCuenta = new Cuenta(numeroCuenta2, moneda2, saldo2);

            target.Transferir(cantidad, aCuenta);

            Assert.AreEqual(saldo - cantidad, target.Saldo);
            Assert.AreEqual(saldo2 + (cantidad * ratio), aCuenta.Saldo);
            logger.Verify(x => x.Log(It.IsAny<string>()), Times.Never());
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: hbiarge/Test-Sample-code
 private static void DumpCuenta(Cuenta cuenta)
 {
     Console.WriteLine(
         "Numero cuenta: {0} ({1}) Saldo: {2}",
         cuenta.NumeroCuenta,
         cuenta.Moneda,
         cuenta.Saldo);
 }
コード例 #4
0
        public bool Add(Cuenta cuenta)
        {
            if (this.almacen.ContainsKey(cuenta.NumeroCuenta))
            {
                return false;
            }

            this.almacen.Add(cuenta.NumeroCuenta, cuenta);
            return true;
        }
コード例 #5
0
 public void DadoTengoOtraCuentaDeMonedaEurosYSaldo50()
 {
     cuenta2 = new Cuenta(2, Moneda.Euro, 50M);
 }
コード例 #6
0
 public void DadoQueTengoUnaCuentaDeMonedaEurosYSaldo100()
 {
     cuenta1 = new Cuenta(1, Moneda.Euro, 100M);
 }
コード例 #7
0
ファイル: TestNUnit.cs プロジェクト: hbiarge/Test-Sample-code
        public void SegundoTest()
        {
            var target = new Cuenta(1, Moneda.Euro, 100);

            Assert.IsNotNull(target);
        }