Beispiel #1
0
        public void EtantDonnéUnCompteBancaireNonApprovisionnéFaireUnRetraitSansDépasserSonAutorisationDeCreditSuffisanteProduitDeuxEvenements()
        {
            var compteBancaire = new CompteBancaire(new CompteCréé(_numéroDeCompte, 10), new DépotRéalisé(_numéroDeCompte, new Montant(5), DateTime.Now));
            var montantRetrait = new Montant(10);
            var dateRetrait = DateTime.Now;
            var evenements = compteBancaire.FaireUnRetrait(montantRetrait, dateRetrait).ToList(); // retourne un IEnumerable<IEvénémentMétier> contenant l'événement RetraitRealisé

            Check.That(evenements).ContainsExactly<IEvenementMetier>(new RetraitRéalisé(_numéroDeCompte, montantRetrait, dateRetrait), new BalanceNégativeDétectée(_numéroDeCompte, new Montant(5), dateRetrait));
        }
Beispiel #2
0
        public void EtantDonnéUnCompteBancaireFaireUnRetraitAvecProvisionSuffisanteProduitUnEvenement()
        {
            var compteBancaire = new CompteBancaire(new CompteCréé(_numéroDeCompte, 0), new DépotRéalisé(_numéroDeCompte, new Montant(100), DateTime.Now)); // Event Sourcing avec une liste d'événements (params IEvénementMétier>[])
            var montantRetrait = new Montant(10);
            var dateRetrait = DateTime.Now;
            var evenements = compteBancaire.FaireUnRetrait(montantRetrait, dateRetrait); // retourne un IEnumerable<IEvénémentMétier> contenant l'événement RetraitRealisé

            Check.That(evenements).ContainsExactly(new RetraitRéalisé(_numéroDeCompte, montantRetrait, dateRetrait));
        }
Beispiel #3
0
        public void EtantDonnéUnCompteBancaireInitialiséViaEventSourcingFaireUnRetraitEnDehorsDeLAutorisationDeCreditLèveUneException()
        {
            var compteBancaire = new CompteBancaire(new CompteCréé(_numéroDeCompte, 10), new DépotRéalisé(_numéroDeCompte, new Montant(5), DateTime.Now));
            var montantRetrait = new Montant(30);
            var dateRetrait = DateTime.Now;
            var evenements = compteBancaire.FaireUnRetrait(montantRetrait, dateRetrait);

            Check.That(evenements).IsEmpty();
        }
Beispiel #4
0
        public void EtantDonnéUnCompteBancaireFaireUnDepotProduitUnEvenement()
        {
            var compteBancaire = new CompteBancaire(new CompteCréé(_numéroDeCompte, 0)); // Event Sourcing avec un seul événement
            var montantDepot = new Montant(10);
            var dateDepot = DateTime.Now;
            var evenements = compteBancaire.FaireUnDepot(montantDepot, dateDepot); // retourne un IEnumerable<IEvenementMetier> contenant l'événement DepotRealisé

            Check.That(evenements).ContainsExactly(new DépotRéalisé(_numéroDeCompte, montantDepot, dateDepot));
        }