/*
* -----------------------------------------------------------------------------
*
* <p><b>License and Copyright: </b>The contents of this file are subject to the
* Mozilla Public License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of the License
* at <a href="http://www.mozilla.org/MPL">http://www.mozilla.org/MPL/.</a></p>
*
* <p>Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
* the specific language governing rights and limitations under the License.</p>
*
* <p>The entire file consists of original code. Copyright © 2003, 2004
* Tufts University. All rights reserved.</p>
*
* -----------------------------------------------------------------------------
*/
package edu.tufts.osidimpl.testing.repository;
import junit.framework.TestCase;
public class GetRepositoriesTest extends TestCase
{
public GetRepositoriesTest(org.osid.repository.RepositoryManager repositoryManager, org.w3c.dom.Document document)
throws org.osid.repository.RepositoryException, org.xml.sax.SAXParseException
{
// are their repositories to test for?
org.w3c.dom.NodeList repositoriesNodeList = document.getElementsByTagName(OsidTester.REPOSITORIES_TAG);
int numRepositories = repositoriesNodeList.getLength();
if (numRepositories > 0) {
org.osid.repository.RepositoryIterator repositoryIterator = null;
org.w3c.dom.Element repositoriesElement = (org.w3c.dom.Element)repositoriesNodeList.item(0);
// determine if we should just test for anything or test for specific repositories
String anyString = repositoriesElement.getAttribute(OsidTester.ANY_ATTR);
if ( (anyString != null) && (anyString.trim().toLowerCase().equals("true")) ) {
repositoryIterator = repositoryManager.getRepositories();
assertTrue(repositoryIterator.hasNextRepository());
System.out.println("PASSED: Found any repository");
} else {
// we do have specific repositories we expect
org.w3c.dom.NodeList repositoryNodeList = repositoriesElement.getElementsByTagName(OsidTester.REPOSITORY_TAG);
int numRepository = repositoryNodeList.getLength();
if (numRepository > 0) {
for (int i=0; i < numRepository; i++) {
//System.out.println("scanning " + i + " of " + numRepository);
org.w3c.dom.Element repositoryElement = (org.w3c.dom.Element)repositoryNodeList.item(i);
// proceed to get repositories from OSID impl
if (repositoryIterator == null) {
// only need to get the iterator once
repositoryIterator = repositoryManager.getRepositories();
}
if (repositoryIterator.hasNextRepository()) {
org.osid.repository.Repository repository = repositoryIterator.nextRepository();
// test metadata, if present
RepositoryMetadataTest rmt = new RepositoryMetadataTest(repository,repositoryElement);
} else {
fail("No repository found");
}
}
}
}
}
}
}