Ejemplo n.º 1
0
        public void EtantDonnéLaSynthèseDuCompteQuandUnEvénementRetraitRéaliséLaSynthèseEstModifiée()
        {
            var debits = 145;
            var credits = 120;
            // utilisé une classe avec implémentation de Equals
            var synthèseDuCompte = new SynthèseCompteBancaire(_numéroDeCompte, debits, credits);
            var repository = new FakeRepository();
            repository.Synthèses.Add(synthèseDuCompte);
            // /!\ bien utilisé l'interface et non la classe Fake dans la signature du constructeur
            var projection = new SynthèseCompteBancaireProjection(repository);
            var retraitRéalisé = new RetraitRéalisé(_numéroDeCompte, new Montant(15), DateTime.Now);
            projection.Handle(retraitRéalisé);

            Check.That(repository.Synthèses).ContainsExactly(new SynthèseCompteBancaire(_numéroDeCompte, 160, credits));
        }
Ejemplo n.º 2
0
        public void EtantDonnéLaSynthèseDuCompteQuandUnEvénementRetraitRéaliséLaSynthèseEstModifiée()
        {
            var debits           = 145;
            var credits          = 120;
            var synthèseDuCompte = new SynthèseCompteBancaire(_numéroDeCompte, debits, credits); // utilisé une classe avec implémentation de Equals
            var repository       = new FakeRepository();

            repository.Synthèses.Add(synthèseDuCompte);

            var projection     = new SynthèseCompteBancaireProjection(repository); // /!\ bien utilisé l'interface et non la classe Fake dans la signature du constructeur
            var retraitRéalisé = new RetraitRéalisé(_numéroDeCompte, new Montant(15), DateTime.Now);

            projection.Handle(retraitRéalisé);

            Check.That(repository.Synthèses).ContainsExactly(new SynthèseCompteBancaire(_numéroDeCompte, 160, credits));
        }
Ejemplo n.º 3
0
        public IEnumerable<IEvénementMétier> FaireUnRetrait(Montant montantRetrait, DateTime dateRetrait)
        {
            RetraitRéalisé retrait = new RetraitRéalisé(_numeroDeCompte, montantRetrait, dateRetrait);
            _evenements.Add(retrait);
            if (montantRetrait.Montant1 - _montant.Montant1 > _autorisationDeCrédit)
            {
                throw new RetraitNonAutorisé("La valeur du retrait est supérieurs à la valeure maximale autorisée !");
            }

            if (montantRetrait.Montant1 > _montant.Montant1)
            {
                Montant mt = new Montant(Math.Abs(_montant.Montant1 - montantRetrait.Montant1));
                _evenements.Add(new BalanceNégativeDétectée(_numeroDeCompte, mt, dateRetrait));
            }

            _montant.Sub(montantRetrait);

            return _evenements;
        }
Ejemplo n.º 4
0
 private void Gérer(RetraitRéalisé retraitRéalisé)
 {
     MontantCompte = MontantCompte.Substract(retraitRéalisé.MontantRetrait);
 }
 public void Handle(RetraitRéalisé retraitRéalisé)
 {
     _repository.Save(retraitRéalisé);
 }
Ejemplo n.º 6
0
 protected bool Equals(RetraitRéalisé other)
 {
     return string.Equals(_numéroDeCompte, other._numéroDeCompte) && Equals(_montantRetrait, other._montantRetrait) && _dateRetrait.Equals(other._dateRetrait);
 }