public void RegisterShould_CallProviderRegisterAndLoginUserCorrectly_WhenModelStateIsValid(string email, string username, string password, string firstName, string lastName, string phoneNumber) { var authProviderMock = new Mock <IAuthenticationProvider>(); var userServiceMock = new Mock <IUserService>(); var controller = new Web.Controllers.AccountController(authProviderMock.Object, userServiceMock.Object); authProviderMock.Setup( p => p.RegisterAndLoginUser(It.IsAny <User>(), It.IsAny <string>(), It.IsAny <bool>(), It.IsAny <bool>())) .Returns(IdentityResult.Success); var user = new User(); userServiceMock.Setup(f => f.CreateUser(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())) .Returns(user); var model = new RegisterViewModel { Email = email, Username = username, Password = password }; controller.Register(model); authProviderMock.Verify(p => p.RegisterAndLoginUser(user, password, It.IsAny <bool>(), It.IsAny <bool>())); }