/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jackrabbit.test.api;
import org.apache.jackrabbit.test.AbstractJCRTest;
import javax.jcr.Credentials;
import javax.jcr.Repository;
import javax.jcr.RepositoryException;
import javax.jcr.NoSuchWorkspaceException;
import javax.jcr.Session;
/**
* <code>RepositoryLoginTest</code> tests the login methods of a repository.
*
*/
public class RepositoryLoginTest extends AbstractJCRTest {
private Credentials credentials;
private String workspaceName;
private Repository repository;
/**
* Sets up the fixture for the test cases.
*/
protected void setUp() throws Exception {
isReadOnly = true;
super.setUp();
credentials = getHelper().getReadOnlyCredentials();
workspaceName = superuser.getWorkspace().getName();
repository = getHelper().getRepository();
}
/**
* Tests if {@link javax.jcr.Repository#login(Credentials credentials, String workspaceName)}
* throws a {@link javax.jcr.NoSuchWorkspaceException}
* if no workspace of the requested name is existing.
*/
public void testNoSuchWorkspaceException()
throws RepositoryException {
Session session = getHelper().getReadOnlySession();
String name;
try {
name = getNonExistingWorkspaceName(session);
} finally {
session.logout();
session = null;
}
try {
session = getHelper().getRepository().login(credentials, name);
fail("login with a not available workspace name must throw a " +
"NoSuchWorkspaceException");
} catch (NoSuchWorkspaceException e) {
// success
} finally {
if (session != null) {
session.logout();
}
}
}
/**
* Tests if {@link javax.jcr.Repository#login(Credentials credentials, String workspaceName)}
* does return a session, i. e. not null.
*/
public void testSignatureCredentialsAndWorkspaceName()
throws RepositoryException {
Session s = repository.login(credentials, workspaceName);
try {
assertNotNull("Repository.login(Credentials credentials, " +
"String workspaceName) must not return null",
s);
} finally {
s.logout();
}
}
/**
* Tests if {@link javax.jcr.Repository#login(Credentials credentials)} does
* return a session, i. e. not null.
*/
public void testSignatureCredentials()
throws RepositoryException {
Session s = repository.login(credentials);
try {
assertNotNull("Repository.login(Credentials credentials) " +
"must not return null",
s);
} finally {
s.logout();
}
}
}