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)); }
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)); }
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; }
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é); }
protected bool Equals(RetraitRéalisé other) { return string.Equals(_numéroDeCompte, other._numéroDeCompte) && Equals(_montantRetrait, other._montantRetrait) && _dateRetrait.Equals(other._dateRetrait); }