Ejemplo n.º 1
0
        public void can_apply_credit()
        {
            var accountId     = Guid.NewGuid();
            var correlationId = Guid.NewGuid();

            Bus.Fire(
                new CreateAccount(
                    accountId,
                    "NewAccount",
                    correlationId,
                    null),
                responseTimeout: TimeSpan.FromMilliseconds(3000));

            const double amountCredited = 123.45;

            Bus.Fire(new ApplyCredit(
                         accountId,
                         amountCredited,
                         correlationId,
                         Guid.Empty),
                     responseTimeout: TimeSpan.FromSeconds(60));

            BusCommands.DequeueNext <CreateAccount>();
            RepositoryEvents.DequeueNext <AccountCreated>();

            BusCommands.AssertNext <ApplyCredit>(correlationId, out var cmd)
            .AssertEmpty();

            RepositoryEvents.AssertNext <CreditApplied>(correlationId, out var evt)
            .AssertEmpty();

            Assert.Equal(amountCredited, evt.Amount);
        }
Ejemplo n.º 2
0
        protected override void When()
        {
            _accountId     = Guid.NewGuid();
            _correlationId = Guid.NewGuid();
            _account       = new Account(_accountId, "TestAccount", _correlationId, Guid.NewGuid());
            Repository.Save(_account, Guid.NewGuid());

            _account.ApplyCredit(_accountId, 1000, _correlationId, Guid.NewGuid());
            Repository.Save(_account, Guid.NewGuid());

            RepositoryEvents.DequeueNext <AccountCreated>();
            RepositoryEvents.DequeueNext <CreditApplied>();
        }
Ejemplo n.º 3
0
        public void can_apply_debit()
        {
            const double amountDebited = 123.45;

            Bus.Fire(new ApplyDebit(
                         _accountId,
                         amountDebited,
                         _correlationId,
                         Guid.Empty),
                     responseTimeout: TimeSpan.FromSeconds(60));

            BusCommands.AssertNext <ApplyDebit>(_correlationId, out var cmd)
            .AssertEmpty();

            RepositoryEvents.AssertNext <DebitApplied>(_correlationId, out var evt)
            .AssertEmpty();

            Assert.Equal(amountDebited, evt.Amount);
        }
Ejemplo n.º 4
0
        public void can_create_account()
        {
            var accountId     = Guid.NewGuid();
            var correlationId = Guid.NewGuid();

            Bus.Fire(
                new CreateAccount(
                    accountId,
                    "NewAccount",
                    correlationId,
                    null),
                responseTimeout: TimeSpan.FromMilliseconds(1500));

            BusCommands.AssertNext <CreateAccount>(correlationId, out var cmd)
            .AssertEmpty();

            RepositoryEvents.AssertNext <AccountCreated>(correlationId, out var evt)
            .AssertEmpty();

            Assert.Equal(accountId, evt.AccountId);
        }
Ejemplo n.º 5
0
 public void OnSetup()
 {
     repositoryEvents        = new RepositoryEvents();
     repositoryEventsTimeout = TimeSpan.FromSeconds(0.5);
 }