public void Given_an_valid_NewSessionRequest_is_received_when_processed_the_users_session_data_is_returned_and_a_UserSession_is_added_to_CurrentUserSessions() { //Arrange var sut = InitialiseSiteState(); var meJulie = TestData.Users.MeJulie; var request = new SiteRequest <ISiteData>() { RequestType = RequestType.Read, Payload = new UserCredentials() { Email = TestData.Users.MeJulie.Email, Password = "******" } }; User outUser = meJulie; MockUsers.Setup(m => m.TryFindUserByEmail(TestData.Users.MeJulie.Email, out outUser)).Returns(true); MockUsers.Setup(m => m.GetUserByEmail(meJulie.Email)).Returns(meJulie); SetupMockUserSessionData(); //Act IResponse response; var result = sut.ProcessRequest(request, out response); Assert.IsTrue(result); Assert.IsNotNull(response as UserSessionResponse); var responseData = (response as UserSessionResponse).UserSession; Assert.AreEqual(1, sut.GetUserSessions().Count); AssertMeJuliesSessionDataIsCorrect(responseData); }
public void Given_an_invalid_NewSessionRequest_is_received_when_processed_the_correct_ErrorMessage_is_returned_is_returned_and_UserRepository_is_updated(bool isEmailMatch, bool isPasswordMatch, ErrorCode errorCode) { //Arrange var sut = InitialiseSiteState(); var meJulie = TestData.Users.MeJulie; var request = new SiteRequest <ISiteData>() { RequestType = RequestType.Read, Payload = new UserCredentials() { Email = meJulie.Email, Password = "******" //Her password is actually "JungleIsMassive" } }; User outUser = meJulie; MockUsers.Setup(m => m.TryFindUserByEmail(It.IsAny <string>(), out outUser)).Returns(isEmailMatch); //Act IResponse response; var result = sut.ProcessRequest(request, out response); Assert.IsFalse(result); Assert.IsNotNull(response); var errorMessage = (response as IResponse).Error; Assert.AreEqual(errorCode, errorMessage.Code); Assert.IsEmpty(sut.GetUserSessions()); }