public void Setup()
		{
			_container = new MocksAndStubsContainer();
			_applicationSettings = _container.ApplicationSettings;
			_applicationSettings.LdapConnectionString = _ldapString;
			_applicationSettings.LdapUsername = _username;
			_applicationSettings.LdapPassword = _password;
			_applicationSettings.AdminRoleName = _adminsGroupName;
			_applicationSettings.EditorRoleName = _editorsGroupName;
			_repository = _container.Repository;

			List<IPrincipalDetails> adminUsers = new List<IPrincipalDetails>();
			adminUsers.Add(new MockPrincipal() { SamAccountName = "admin1" });
			adminUsers.Add(new MockPrincipal() { SamAccountName = "admin2" });

			List<IPrincipalDetails> editorUsers = new List<IPrincipalDetails>();
			editorUsers.Add(new MockPrincipal() { SamAccountName = "editor1" });
			editorUsers.Add(new MockPrincipal() { SamAccountName = "editor2" });

			_adProviderMock = new Mock<IActiveDirectoryProvider>();
			_adProviderMock.Setup(x => x.GetMembers(_domainPath, _username, _password, _adminsGroupName)).Returns(adminUsers);
			_adProviderMock.Setup(x => x.GetMembers(_domainPath, _username, _password, _editorsGroupName)).Returns(editorUsers);

			_userService = new ActiveDirectoryUserService(_applicationSettings, _repository, _adProviderMock.Object);
		}
        public void Editors_Should_Belong_To_Group()
        {
            // Arrange
            ActiveDirectoryUserService service = new ActiveDirectoryUserService(_applicationSettings, _repository, _adProviderMock.Object);

            // Act + Assert
            Assert.That(service.IsEditor("editor1"), Is.True);
            Assert.That(service.IsEditor("editor2"), Is.True);
        }
		public void No_Editor_Group_Should_Throw_SecurityException_In_Constructor()
		{
			// Arrange + act + assert
			_applicationSettings.EditorRoleName = "";
			ActiveDirectoryUserService service = new ActiveDirectoryUserService(_applicationSettings, _repository, _adProviderMock.Object);
		}
		public void Wrong_Format_Ldap_String_Should_Throw_SecurityException_In_Constructor()
		{
			// Arrange + act + assert
			_applicationSettings.LdapConnectionString = "iforgot.the.ldap.part.com";
			ActiveDirectoryUserService service = new ActiveDirectoryUserService(_applicationSettings, _repository, _adProviderMock.Object);
		}
		public void Empty_Ldap_String_Should_Throw_SecurityException_In_Constructor()
		{
			// Arrange + act + assert
			_applicationSettings.LdapConnectionString = "";
			ActiveDirectoryUserService service = new ActiveDirectoryUserService(_applicationSettings, _repository, _adProviderMock.Object);
		}
		public void Should_Not_Throw_SecurityException_With_Valid_Ldap_String()
		{
			// Arrange + Act
			ActiveDirectoryUserService manager = new ActiveDirectoryUserService(_applicationSettings, _repository, _adProviderMock.Object);

			// Assert
			Assert.That(_userService, Is.Not.Null);
		}
		public void should_not_throw_securityexception_with_valid_ldap_string()
		{
			// Arrange + Act
			ActiveDirectoryUserService manager = new ActiveDirectoryUserService(_applicationSettings, _repository, _adProviderMock.Object);

			// Assert
			Assert.That(_userService, Is.Not.Null);
		}