Beispiel #1
0
        public void UserMustHaveFailedToActivateAfterAtLeast31Days()
        {
            var dateCreated = DateTime.UtcNow.AddDays(-30);

            var candidateId = Guid.NewGuid();
            var user        = new UserBuilder(candidateId).WithDateCreated(dateCreated).Activated(false).Build();
            var candidate   = new CandidateBuilder(candidateId).Build();

            var  userWriteRepository = new Mock <IUserWriteRepository>();
            User savedUser           = null;

            userWriteRepository.Setup(r => r.Save(It.IsAny <User>())).Callback <User>(u => savedUser = u);
            var successor = new Mock <IHousekeepingStrategy>();
            var strategy  = new SetPendingDeletionStrategyBuilder().With(userWriteRepository).With(successor.Object).Build();

            strategy.Handle(user, candidate);

            //Strategy did not handle the request
            successor.Verify(s => s.Handle(user, candidate), Times.Once);
            savedUser.Should().BeNull();
        }
Beispiel #2
0
        public void SetPendingDeletionEndsChainOfResponsibility()
        {
            var dateCreated = DateTime.UtcNow.AddDays(-31);

            var candidateId = Guid.NewGuid();
            var user        = new UserBuilder(candidateId).WithDateCreated(dateCreated).Activated(false).Build();
            var candidate   = new CandidateBuilder(candidateId).Build();

            var  userWriteRepository = new Mock <IUserWriteRepository>();
            User savedUser           = null;

            userWriteRepository.Setup(r => r.Save(It.IsAny <User>())).Callback <User>(u => savedUser = u);
            var successor = new Mock <IHousekeepingStrategy>();
            var strategy  = new SetPendingDeletionStrategyBuilder().With(userWriteRepository).With(successor.Object).Build();

            strategy.Handle(user, candidate);

            //Strategy handled the request
            successor.Verify(s => s.Handle(user, candidate), Times.Never);
            savedUser.Should().NotBeNull();
            savedUser.Status.Should().Be(UserStatuses.PendingDeletion);
        }