public void ValidateCredentialsTest() { // Arrange. const string LdapServer = "Test Server"; const string Username = "******"; const string ValidPassword = "******"; const string InvalidPassword = "******"; const ContextOptions ContextOptions = ContextOptions.SimpleBind | ContextOptions.ServerBind; var systemOptions = Mock.Create<ISystemOptionsInfo>(); Mock.Arrange(() => systemOptions.LdapProfiles).Returns(Mock.Create<ILdapProfileList>()); Mock.Arrange(() => systemOptions.LdapProfiles[0]).Returns(Mock.Create<ILdapProfileInfo>()); Mock.Arrange(() => systemOptions.LdapProfiles[0].Id).Returns(1); Mock.Arrange(() => systemOptions.LdapProfiles[0].UseForLogin).Returns(true); Mock.Arrange(() => systemOptions.LdapProfiles[0].ServerPath).Returns(LdapServer); var systemOptionsRetriever = Mock.Create<ISystemOptionsInfoRetriever>(); Mock.Arrange(() => systemOptionsRetriever.GetSystemOptions()).Returns(systemOptions); var validator = new DirectoryCredentialsValidator { SystemOptionsRetriever = systemOptionsRetriever }; var context = Mock.Create<PrincipalContext>(); Mock.Arrange( () => new PrincipalContext( Arg.IsAny<ContextType>(), Arg.AnyString, Arg.AnyString, Arg.IsAny<ContextOptions>(), Arg.AnyString, Arg.AnyString)).DoNothing(); Mock.Arrange(() => context.ValidateCredentials(Username, ValidPassword, ContextOptions)).IgnoreInstance().Returns(true); Mock.Arrange(() => context.ValidateCredentials(Username, InvalidPassword, ContextOptions)).IgnoreInstance().Returns(false); // Act / Assert. Assert.IsTrue(validator.ValidateCredentials(Username, systemOptions.LdapProfiles[0], ValidPassword)); Assert.IsFalse(validator.ValidateCredentials(Username, systemOptions.LdapProfiles[0], InvalidPassword)); }
public void WhenSystemOptionsAreInvalidValidateCredentialsThrows() { // Arrange. var systemOptionsRetriever = Mock.Create<ISystemOptionsInfoRetriever>(); Mock.Arrange(() => systemOptionsRetriever.GetSystemOptions()).Returns(() => null); var validator = new DirectoryCredentialsValidator { SystemOptionsRetriever = systemOptionsRetriever }; // Act / Assert. TestsHelper.VerifyThrow<InvalidOperationException>(() => validator.ValidateCredentials("user", Mock.Create<ILdapProfile>(), "password")); // Arrange. var systemOptions = Mock.Create<ISystemOptionsInfo>(); Mock.Arrange(() => systemOptions.LdapProfiles).Returns(Mock.Create<ILdapProfileList>()); Mock.Arrange(() => systemOptions.LdapProfiles[0]).Returns(Mock.Create<ILdapProfileInfo>()); Mock.Arrange(() => systemOptions.LdapProfiles[0].Id).Returns(1); Mock.Arrange(() => systemOptions.LdapProfiles[0].UseForLogin).Returns(true); Mock.Arrange(() => systemOptions.LdapProfiles[0].ServerPath).Returns(string.Empty); Mock.Arrange(() => systemOptionsRetriever.GetSystemOptions()).Returns(systemOptions); // Act / Assert TestsHelper.VerifyThrow<InvalidOperationException>(() => validator.ValidateCredentials("user", systemOptions.LdapProfiles[0], "password")); }