예제 #1
0
        public void TestBanUser_ShouldSetUserLockoutEndDateCorrectly(string userId)
        {
            // Arrange
            var date = new DateTime();

            var mockedDateTimeProvider = new Mock <IDateTimeProvider>();

            mockedDateTimeProvider.Setup(
                p => p.GetTimeFromCurrentTime(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>()))
            .Returns(date);

            var user = new User();

            var mockedUserStore = new Mock <IUserStore <User> >();

            mockedUserStore.Setup(s => s.FindByIdAsync(It.IsAny <string>())).Returns(Task.FromResult(user));

            var userManager = new ApplicationUserManager(mockedUserStore.Object);

            var mockedHttpContextProvider = new Mock <IHttpContextProvider>();

            mockedHttpContextProvider.Setup(p => p.GetUserManager <ApplicationUserManager>()).Returns(userManager);

            var provider = new AuthenticationProvider(mockedDateTimeProvider.Object, mockedHttpContextProvider.Object);

            // Act
            provider.BanUser(userId);

            // Assert
            Assert.AreEqual(date, user.LockoutEndDateUtc);
        }
예제 #2
0
        public void TestBanUser_ShouldCallDateTimeProviderGetTimeFromCurrentTime(string userId)
        {
            // Arrange
            var mockedDateTimeProvider = new Mock <IDateTimeProvider>();

            var user = new User();

            var mockedUserStore = new Mock <IUserStore <User> >();

            mockedUserStore.Setup(s => s.FindByIdAsync(It.IsAny <string>())).Returns(Task.FromResult(user));

            var userManager = new ApplicationUserManager(mockedUserStore.Object);

            var mockedHttpContextProvider = new Mock <IHttpContextProvider>();

            mockedHttpContextProvider.Setup(p => p.GetUserManager <ApplicationUserManager>()).Returns(userManager);

            var provider = new AuthenticationProvider(mockedDateTimeProvider.Object, mockedHttpContextProvider.Object);

            // Act
            provider.BanUser(userId);

            // Assert
            mockedDateTimeProvider.Verify(p => p.GetTimeFromCurrentTime(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>()), Times.Once);
        }