Index: lams_contentrepository/.classpath =================================================================== RCS file: /usr/local/cvsroot/lams_contentrepository/.classpath,v diff -u -r1.9 -r1.10 --- lams_contentrepository/.classpath 16 Mar 2005 02:01:35 -0000 1.9 +++ lams_contentrepository/.classpath 8 Apr 2005 00:12:46 -0000 1.10 @@ -25,7 +25,7 @@ - + Index: lams_contentrepository/build.xml =================================================================== RCS file: /usr/local/cvsroot/lams_contentrepository/build.xml,v diff -u -r1.15 -r1.16 --- lams_contentrepository/build.xml 5 Apr 2005 04:43:14 -0000 1.15 +++ lams_contentrepository/build.xml 8 Apr 2005 00:12:46 -0000 1.16 @@ -356,7 +356,7 @@ - Index: lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/IRepository.java =================================================================== RCS file: /usr/local/cvsroot/lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/Attic/IRepository.java,v diff -u -r1.2 -r1.3 --- lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/IRepository.java 21 Feb 2005 06:12:46 -0000 1.2 +++ lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/IRepository.java 8 Apr 2005 00:12:25 -0000 1.3 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/Attic/SimpleRepository.java,v diff -u -r1.5 -r1.6 --- lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/SimpleRepository.java 21 Feb 2005 06:12:46 -0000 1.5 +++ lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/SimpleRepository.java 8 Apr 2005 00:12:25 -0000 1.6 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/Attic/contentRepositoryApplicationContext.xml,v diff -u -r1.5 -r1.6 --- lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/contentRepositoryApplicationContext.xml 5 Apr 2005 04:50:07 -0000 1.5 +++ lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/contentRepositoryApplicationContext.xml 8 Apr 2005 00:12:25 -0000 1.6 @@ -81,7 +81,7 @@ - + @@ -114,7 +114,7 @@ - + Index: lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/struts/action/LoginRepositoryAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/struts/action/LoginRepositoryAction.java,v diff -u -r1.2 -r1.3 --- lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/struts/action/LoginRepositoryAction.java 21 Feb 2005 06:12:45 -0000 1.2 +++ lams_contentrepository/src/java/org/lamsfoundation/lams/contentrepository/struts/action/LoginRepositoryAction.java 8 Apr 2005 00:12:25 -0000 1.3 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_contentrepository/test/java/org/lamsfoundation/lams/contentrepository/Attic/BaseTestCase.java,v diff -u -r1.4 -r1.5 --- lams_contentrepository/test/java/org/lamsfoundation/lams/contentrepository/BaseTestCase.java 28 Feb 2005 07:56:21 -0000 1.4 +++ lams_contentrepository/test/java/org/lamsfoundation/lams/contentrepository/BaseTestCase.java 8 Apr 2005 00:12:25 -0000 1.5 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_contentrepository/test/java/org/lamsfoundation/lams/contentrepository/Attic/TestSimpleRepository.java,v diff -u -r1.2 -r1.3 --- lams_contentrepository/test/java/org/lamsfoundation/lams/contentrepository/TestSimpleRepository.java 21 Feb 2005 06:13:40 -0000 1.2 +++ lams_contentrepository/test/java/org/lamsfoundation/lams/contentrepository/TestSimpleRepository.java 8 Apr 2005 00:12:25 -0000 1.3 @@ -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 ) {