Beispiel #1
0
        public void Verify_ForDoubledAction_UpdatesLockedOnOnce()
        {
            // prepare
            var userFromDb = new DataAccess.Models.User()
            {
                Id       = 1,
                LockedOn = null,
            };

            DataAccess.Models.User userSaved = null;

            var mockedUserRepo = new Mock <IUserRepository>();

            mockedUserRepo.Setup(r => r.GetById(1))
            .Returns(userFromDb);
            mockedUserRepo.Setup(r => r.Edit(It.IsAny <DataAccess.Models.User>()))
            .Callback <DataAccess.Models.User>(u => userSaved = u);

            var action = new BusinessLogic.Actions.User.Implementation.LockUser(mockedUserRepo.Object);

            // action
            action.Invoke(1);
            action.Invoke(1);

            // assert
            Assert.NotNull(userSaved.LockedOn);
            mockedUserRepo.Verify(r => r.Edit(It.IsAny <DataAccess.Models.User>()), Times.Once);
            mockedUserRepo.Verify(r => r.Save(), Times.Once());
        }
Beispiel #2
0
        public void Verify_AlreadyLocked_SaveNorEditAreCalled()
        {
            // prepare
            DateTime dateNow    = DateTime.UtcNow;
            var      userFromDb = new DataAccess.Models.User()
            {
                Id       = 1,
                LockedOn = dateNow,
            };

            var mockedUserRepo = new Mock <IUserRepository>();

            mockedUserRepo.Setup(r => r.GetById(1))
            .Returns(userFromDb);

            var action = new BusinessLogic.Actions.User.Implementation.LockUser(mockedUserRepo.Object);

            // action
            action.Invoke(1);

            // assert
            Assert.Equal(userFromDb.LockedOn, dateNow);
            mockedUserRepo.Verify(r => r.Edit(It.IsAny <DataAccess.Models.User>()), Times.Never);
            mockedUserRepo.Verify(r => r.Save(), Times.Never);
        }