public void RegisterUser_WithAValidUser_ShouldAddAnEntryToTheUsersCollectionInTheDatabase() { var mock = new Mock<IIssueTrackerDatabase>(); var mockDictionary = new Mock<IDictionary<string, User>>(); mock.Setup(d => d.UsersByUsername).Returns(mockDictionary.Object); var name = "Name"; var password = "******"; var database = mock.Object; var trackerTest = new IssueTracker(database); trackerTest.RegisterUser(name, password, password); mockDictionary.Verify(d => d.Add(It.IsAny<string>(), It.IsAny<User>()), Times.Exactly(1)); }
public void RegisterUser_ShouldAddAnEntryWithTheCorrectKeyAndValueToTheCollection() { var mock = new Mock<IIssueTrackerDatabase>(); var mockDictionary = new Mock<IDictionary<string, User>>(); string expectedUsername = null; User expectedUser = null; mockDictionary.Setup(d => d.Add(It.IsAny<string>(), It.IsAny<User>())) .Callback<string, User>( (name, user) => { expectedUsername = name; expectedUser = user; }); mock.Setup(d => d.UsersByUsername).Returns(mockDictionary.Object); var username = "******"; var password = "******"; var database = mock.Object; var trackerTest = new IssueTracker(database); trackerTest.RegisterUser(username, password, password); Assert.AreEqual(expectedUsername, username); Assert.AreEqual(expectedUser.Name, username); Assert.AreEqual(expectedUser.Password, HashUtility.HashPassword(password)); }