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); }
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); }