public void Given_a_valid_RegistrationRequest_is_received_when_processed_the_correct_data_is_returned_is_returned_and_UserRepository_is_updated() { //Arrange var sut = InitialiseSiteState(); ErrorMessage error; MockUserPersister.Setup(m => m.TryPersist(ref It.Ref <User> .IsAny, out error)).Callback(new CallbackUser((ref User user, out ErrorMessage errorCallback) => { user.UserId = 0; errorCallback = null; })).Returns(true); var request = new SiteRequest <ISiteData>() { RequestType = RequestType.Create, Payload = TestData.NewUsers.ValidNewUser }; //Act IResponse response; var result = sut.ProcessRequest(request, out response); Assert.IsTrue(result); Assert.IsInstanceOf <RegistrationResponse>(response); var registrationResponse = response as RegistrationResponse; Assert.IsNotNull(registrationResponse); Assert.AreEqual(ResponseResult.Success, registrationResponse?.Result); Assert.AreEqual(nameof(NewUser), registrationResponse.DataType); var dataResponse = registrationResponse.RegistrationForm; Assert.IsNotNull(dataResponse); Assert.IsInstanceOf <NewUser>(dataResponse); Assert.IsNull(dataResponse.Password); Assert.AreEqual(TestData.NewUsers.ValidNewUser, dataResponse); MockUsers.Verify(m => m.Add(It.IsAny <User>()), Times.Once); }
public void Given_an_invalid_RegistrationRequest_is_received_when_processed_the_correct_error_is_returned_and_UserRepository_is_not_updated(NewUser newUser, ErrorCode errorCode) { //Arrange var sut = InitialiseSiteState(); //Act var request = new SiteRequest <ISiteData>() { RequestType = RequestType.Create, Payload = newUser }; IResponse response; var result = sut.ProcessRequest(request, out response); Assert.IsFalse(result); Assert.IsNotNull(response); var errorMessage = (response as SiteResponse)?.Error; Assert.AreEqual(errorCode, errorMessage.Code); MockUsers.Verify(m => m.Add(It.IsAny <User>()), Times.Never); }