Inheritance: MembershipProvider
        public FakeMembershipProviderTest()
        {
            this.localProvider = Substitute.For<MembershipProvider>();
              this.provider = new FakeMembershipProvider();
              this.provider.LocalProvider.Value = this.localProvider;

              this.user = new MembershipUser("fake", UserName, new Guid(), null, null, null, true, false, DateTime.MinValue,
            DateTime.Now, DateTime.Now, DateTime.MinValue, DateTime.MinValue);
        }
        public void ShouldDoNothingIfNoLocalProviderSet()
        {
            // arrange
              var stubProvider = new FakeMembershipProvider();
              MembershipCreateStatus status;
              int totalRecords;

              // act & assert
              stubProvider.ApplicationName.Should().BeNull();
              stubProvider.ChangePassword(null, null, null).Should().BeFalse();
              stubProvider.ChangePasswordQuestionAndAnswer(null, null, null, null).Should().BeFalse();
              stubProvider.CreateUser(null, null, null, null, null, false, null, out status).Should().BeNull();
              status.Should().Be(MembershipCreateStatus.UserRejected);
              stubProvider.DeleteUser(null, false).Should().BeFalse();
              stubProvider.Description.Should().BeNull();
              stubProvider.EnablePasswordReset.Should().BeFalse();
              stubProvider.EnablePasswordRetrieval.Should().BeFalse();
              stubProvider.FindUsersByEmail(null, 0, 0, out totalRecords).Should().BeEmpty();
              totalRecords.Should().Be(0);
              stubProvider.FindUsersByName(null, 0, 0, out totalRecords).Should().BeEmpty();
              totalRecords.Should().Be(0);
              stubProvider.GetAllUsers(0, 0, out totalRecords).Should().BeEmpty();
              totalRecords.Should().Be(0);
              stubProvider.GetNumberOfUsersOnline().Should().Be(0);
              stubProvider.GetPassword(null, null).Should().BeNull();
              stubProvider.GetUser((object)null, false).Should().BeNull();
              stubProvider.GetUser("John", false).UserName.Should().Be("John");
              stubProvider.GetUserNameByEmail(null).Should().BeNull();
              stubProvider.MaxInvalidPasswordAttempts.Should().Be(0);
              stubProvider.MinRequiredNonAlphanumericCharacters.Should().Be(0);
              stubProvider.MinRequiredPasswordLength.Should().Be(0);
              stubProvider.Name.Should().BeNull();
              stubProvider.PasswordAttemptWindow.Should().Be(0);
              stubProvider.PasswordFormat.Should().Be(MembershipPasswordFormat.Clear);
              stubProvider.PasswordStrengthRegularExpression.Should().BeNull();
              stubProvider.RequiresQuestionAndAnswer.Should().BeFalse();
              stubProvider.RequiresUniqueEmail.Should().BeFalse();
              stubProvider.ResetPassword(null, null).Should().BeNull();
              stubProvider.UnlockUser(null).Should().BeFalse();
              Assert.DoesNotThrow(() => stubProvider.UpdateUser(null));
              stubProvider.ValidateUser(null, null).Should().BeFalse();
        }
 public void Register_Should_Fail_If_CreateUser_Fails(MembershipCreateStatus status, string errorMessage)
 {
     var model = new RegisterModel
     {
         Username = username,
         Email = email,
         Question = question,
         Answer = answer,
         Password = password
     };
     //create fake membership provider & mocks
     var fakeProvider = new FakeMembershipProvider();
     //tell the fake provider what status to return when CreateUser is called
     fakeProvider.SetFakeStatus(status);
     //run tests
     controller = new AccountController(mocks.FormsAuthentication.Object, fakeProvider);
     var result = controller.Register(model);
     AssertRegisterViewResultOnError(controller, result, "provider",
                                     errorMessage,
                                     username, email, question,
                                     answer, password);
 }