public void Deveria_atualizar_a_proposta_corretamente_com_base_no_evento_recebido()
        {
            var proposalToUpdateId        = Guid.NewGuid();
            var proposalToUpdateLoanValue = 3000;
            var proposalToUpdateNumberOfMonthlyInstallments = 36;

            var(schema, action) = ("proposal", "updated");

            String stringEvent = $"{Guid.NewGuid()},{schema},{action},{DateTime.Now}," +
                                 $"{proposalToUpdateId},{proposalToUpdateLoanValue},{proposalToUpdateNumberOfMonthlyInstallments}";

            var @event = new ProposalUpdatedEvent(stringEvent.Split(','));

            var proposals = new List <Proposal>
            {
                new Proposal(Guid.NewGuid(), 1000, 5),
                new Proposal(proposalToUpdateId, 1000, 5),
                new Proposal(Guid.NewGuid(), 1000, 5),
            };

            @event.Change(ref proposals);

            proposals.Should().HaveCount(3);

            var proposal = proposals.Find(proposal => proposal.Id == proposalToUpdateId);

            proposal.LoanValue.Should().Be(proposalToUpdateLoanValue);
            proposal.NumberOfMonthlyInstallments.Should().Be(proposalToUpdateNumberOfMonthlyInstallments);
        }
Exemple #2
0
        public void Consume(ProposalUpdatedEvent ev)
        {
            var currentProposal = _repo.GetById(ev.Id);

            currentProposal.LoanValue            = ev.LoanValue;
            currentProposal.NumberOfInstallments = ev.NumberOfInstallments;
            currentProposal.Events.Add(ev);
            _repo.Update(currentProposal);
        }