Index: lams_contentrepository/.classpath
===================================================================
diff -u -r63cf7c6482ec3eb90b170034bca0899f413d0d15 -r595537f66a61e42170b21864bed399d665d49c5f
--- lams_contentrepository/.classpath (.../.classpath) (revision 63cf7c6482ec3eb90b170034bca0899f413d0d15)
+++ lams_contentrepository/.classpath (.../.classpath) (revision 595537f66a61e42170b21864bed399d665d49c5f)
@@ -25,7 +25,7 @@
-
+
Index: lams_contentrepository/build.xml
===================================================================
diff -u -rb09eea4e497cd5697447c2b7fb76eaa746b94494 -r595537f66a61e42170b21864bed399d665d49c5f
--- lams_contentrepository/build.xml (.../build.xml) (revision b09eea4e497cd5697447c2b7fb76eaa746b94494)
+++ lams_contentrepository/build.xml (.../build.xml) (revision 595537f66a61e42170b21864bed399d665d49c5f)
@@ -356,7 +356,7 @@
-
Index: lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/IRepository.java
===================================================================
diff -u -rd69fd0c0b6e3af330bb1ddbf3099022feca3f092 -r595537f66a61e42170b21864bed399d665d49c5f
--- lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/IRepository.java (.../IRepository.java) (revision d69fd0c0b6e3af330bb1ddbf3099022feca3f092)
+++ lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/IRepository.java (.../IRepository.java) (revision 595537f66a61e42170b21864bed399d665d49c5f)
@@ -36,6 +36,10 @@
/** String used to define the path to the context file */
public static final String REPOSITORY_CONTEXT_PATH =
"/org/lamsfoundation/lams/contentrepository/contentRepositoryApplicationContext.xml";
+ /** String used to define the path to the context file used for
+ * JUNIT testing. This file uses local datasources */
+ public static final String LOCAL_CONTEXT_PATH =
+ "/org/lamsfoundation/lams/contentrepository/contentRepositoryLocalApplicationContext.xml";
/**
* Login, creating a new ticket for the given credentials and specified
@@ -81,9 +85,10 @@
*
* @param newCredential this user/password will be added to the repository
* @throws RepositoryCheckedException if parameters are missing.
+ * @throws ItemExistsException if the credential already exists.
*/
- public void createCredential(ICredentials newCredential)
- throws AccessDeniedException, RepositoryCheckedException;
+ public void createCredentials(ICredentials newCredential)
+ throws AccessDeniedException, RepositoryCheckedException, ItemExistsException;
/**
* Update a credential. Name cannot change, so really only the password changes
Index: lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/SimpleRepository.java
===================================================================
diff -u -rd69fd0c0b6e3af330bb1ddbf3099022feca3f092 -r595537f66a61e42170b21864bed399d665d49c5f
--- lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/SimpleRepository.java (.../SimpleRepository.java) (revision d69fd0c0b6e3af330bb1ddbf3099022feca3f092)
+++ lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/SimpleRepository.java (.../SimpleRepository.java) (revision 595537f66a61e42170b21864bed399d665d49c5f)
@@ -177,8 +177,8 @@
* Possibly this should only be available to an internal management tool
* *** Security Risk - I'm converting two passwords to a string... ***
*/
- public void createCredential(ICredentials newCredential)
- throws AccessDeniedException, RepositoryCheckedException {
+ public void createCredentials(ICredentials newCredential)
+ throws AccessDeniedException, RepositoryCheckedException, ItemExistsException {
if ( newCredential == null || newCredential.getName() == null || newCredential.getPassword() == null)
throw new RepositoryCheckedException("Credential is null or name/password is missing - cannot create credential.");
@@ -187,7 +187,7 @@
// check that the user doesn't already exist
CrCredential cred = credentialDAO.findByName(newCredential.getName());
if ( cred != null )
- throw new RepositoryCheckedException("Credential name "+newCredential.getName()+" already exists - cannot create credential.");
+ throw new ItemExistsException("Credential name "+newCredential.getName()+" already exists - cannot create credential.");
// try to create the credential - this should be done via the Spring bean factory.
cred = new CrCredential();
Index: lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/contentRepositoryApplicationContext.xml
===================================================================
diff -u -r8774613cfd0a6e8ddbab1c14aa88f160279e1090 -r595537f66a61e42170b21864bed399d665d49c5f
--- lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/contentRepositoryApplicationContext.xml (.../contentRepositoryApplicationContext.xml) (revision 8774613cfd0a6e8ddbab1c14aa88f160279e1090)
+++ lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/contentRepositoryApplicationContext.xml (.../contentRepositoryApplicationContext.xml) (revision 595537f66a61e42170b21864bed399d665d49c5f)
@@ -81,7 +81,7 @@
-
+
@@ -114,7 +114,7 @@
-
+
Index: lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/struts/action/LoginRepositoryAction.java
===================================================================
diff -u -rd69fd0c0b6e3af330bb1ddbf3099022feca3f092 -r595537f66a61e42170b21864bed399d665d49c5f
--- lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/struts/action/LoginRepositoryAction.java (.../LoginRepositoryAction.java) (revision d69fd0c0b6e3af330bb1ddbf3099022feca3f092)
+++ lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/struts/action/LoginRepositoryAction.java (.../LoginRepositoryAction.java) (revision 595537f66a61e42170b21864bed399d665d49c5f)
@@ -121,7 +121,7 @@
// add the tool credential, then create the workspace
// if the credential isn't added first, then the addWorkspace
// call will fail - only a valid credential can add a workspace.
- repository.createCredential(cred);
+ repository.createCredentials(cred);
repository.addWorkspace(cred, workspaceName);
} catch (LoginException e) {
log.error("LoginException occured ",e);
Index: lams_contentrepository/test/java/org/lamsfoundation/lams/contentrepository/BaseTestCase.java
===================================================================
diff -u -r59a810e17dffd1a080d8f1637cd202b9cc6fa4cb -r595537f66a61e42170b21864bed399d665d49c5f
--- lams_contentrepository/test/java/org/lamsfoundation/lams/contentrepository/BaseTestCase.java (.../BaseTestCase.java) (revision 59a810e17dffd1a080d8f1637cd202b9cc6fa4cb)
+++ lams_contentrepository/test/java/org/lamsfoundation/lams/contentrepository/BaseTestCase.java (.../BaseTestCase.java) (revision 595537f66a61e42170b21864bed399d665d49c5f)
@@ -23,13 +23,7 @@
import junit.framework.TestCase;
-import org.lamsfoundation.lams.contentrepository.ICredentials;
-import org.lamsfoundation.lams.contentrepository.IRepository;
-import org.lamsfoundation.lams.contentrepository.IRepositoryAdmin;
-import org.lamsfoundation.lams.contentrepository.ITicket;
-import org.lamsfoundation.lams.contentrepository.ItemNotFoundException;
-import org.lamsfoundation.lams.contentrepository.SimpleCredentials;
-import org.lamsfoundation.lams.contentrepository.SimpleVersionedNode;
+import org.apache.log4j.BasicConfigurator;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
@@ -73,7 +67,7 @@
// this is run for each test so once we have it, we don't
// want to get it again!
if ( context == null ) {
- context = new ClassPathXmlApplicationContext("/org/lamsfoundation/lams/contentrepository/testContentRepositoryApplicationContext.xml");
+ context = new ClassPathXmlApplicationContext(IRepository.LOCAL_CONTEXT_PATH);
}
if ( repository == null ) {
Index: lams_contentrepository/test/java/org/lamsfoundation/lams/contentrepository/TestSimpleRepository.java
===================================================================
diff -u -rd69fd0c0b6e3af330bb1ddbf3099022feca3f092 -r595537f66a61e42170b21864bed399d665d49c5f
--- lams_contentrepository/test/java/org/lamsfoundation/lams/contentrepository/TestSimpleRepository.java (.../TestSimpleRepository.java) (revision d69fd0c0b6e3af330bb1ddbf3099022feca3f092)
+++ lams_contentrepository/test/java/org/lamsfoundation/lams/contentrepository/TestSimpleRepository.java (.../TestSimpleRepository.java) (revision 595537f66a61e42170b21864bed399d665d49c5f)
@@ -157,6 +157,9 @@
assertNotNull("Add workspace succeeded - can login to workspace. Ticket is "+ticket, ticket);
} catch ( AccessDeniedException ae ) {
assertTrue("Access denied exception thrown as expected. Exception was "+ae.getMessage(), true);
+ } catch ( ItemExistsException iee ) {
+ log.error("Workspace already exists - unable to check that it can be created.\n"
+ +" The test should really be run with a newly rebuilt database & test data loaded");
} catch ( Exception e ) {
failUnexpectedException(e);
}
@@ -181,10 +184,13 @@
ICredentials cred1 = new SimpleCredentials(newUser, newPassword1);
ICredentials cred2 = new SimpleCredentials(newUser, newPassword2);
try {
- repository.createCredential(cred1);
+ repository.createCredentials(cred1);
repository.assignCredentials(cred1, INITIAL_WORKSPACE);
ITicket newTicket = repository.login(cred1, INITIAL_WORKSPACE);
assertTrue("Login succeeded for new user to original workspace.",true);
+ } catch ( ItemExistsException iee ) {
+ log.error("Credential already exists - unable to check that it can be created.\n"
+ +" The test should really be run with a newly rebuilt database & test data loaded");
} catch ( LoginException le ) {
assertTrue("Login exception unexpectededly - user newly created. Exception was "+le.getMessage(),true);
} catch ( Exception e ) {
@@ -206,9 +212,9 @@
// try recreating a new user - should fail
// setup credential with known username/password
try {
- repository.createCredential(cred1);
+ repository.createCredentials(cred1);
fail("User creation should have failed due to duplicate username");
- } catch ( RepositoryCheckedException re ) {
+ } catch ( ItemExistsException re ) {
assertTrue("Repository exception thrown was due to name duplication as expected: "+re.getMessage(),
re.getMessage() != null && re.getMessage().equals(userAlreadyExistsMessage));
} catch ( Exception e ) {