Ejemplo n.º 1
0
        public void When_CreateCardCommand_Subscription_Does_Not_exist_Throw_InvalidOperationException()
        {
            var repo          = A.Fake <IAggregateRepository <CreditCard> >();
            var subRepository = A.Fake <IAggregateRepository <CreditCardSubscription> >();

            A.CallTo(() => subRepository.ExistsAsync(A <CreditCardSubscriptionId> ._))
            .Returns(false);
            var clock = A.Fake <ISystemClock>();
            var sut   = new CreateCreditCardHandler(repo, subRepository, clock);

            Assert.ThrowsAsync <InvalidOperationException>(
                () => sut.Handle(
                    new CreateCreditCard(CreditCardId.NewId(), CreditCardSubscriptionId.NewId(), DateTimeOffset.Now),
                    CancellationToken.None)
                );
        }
Ejemplo n.º 2
0
        public async Task When_CreateCardCommand_Valid_Arguments_Saves_Card()
        {
            var repo          = A.Fake <IAggregateRepository <CreditCard> >();
            var subRepository = A.Fake <IAggregateRepository <CreditCardSubscription> >();

            A.CallTo(() => subRepository.ExistsAsync(A <CreditCardSubscriptionId> ._))
            .Returns(true);
            var clock = A.Fake <ISystemClock>();
            var sut   = new CreateCreditCardHandler(repo, subRepository, clock);

            await sut.Handle(
                new CreateCreditCard(CreditCardId.NewId(), CreditCardSubscriptionId.NewId(), DateTimeOffset.Now),
                CancellationToken.None);

            A.CallTo(() => repo.SaveAsync(A <CreditCard> ._, A <long> ._))
            .MustHaveHappenedOnceExactly();
        }