package gov.nist.registry.ws.serviceclasses;
import gov.nist.registry.common2.exception.XdsInternalException;
import gov.nist.registry.common2.io.Io;
import gov.nist.registry.common2.xml.Util;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipException;
import java.util.zip.ZipFile;
import javax.xml.parsers.FactoryConfigurationError;
import junit.framework.TestCase;
import org.apache.axiom.om.OMElement;
public class TestValidatorTest2 extends TestCase {
File testFile;
ZipFile zip;
public void setUp() {
testFile = new File("/Users/bill/dev/xds/testdata/testValidationSupport/zip/Archive.zip");
try {
zip = new ZipFile(testFile);
} catch (ZipException e) {
e.printStackTrace();
fail();
} catch (IOException e) {
e.printStackTrace();
fail();
}
}
public void testSize() {
List<ZipEntry> content = getContentEntries(zip);
//showEntries(content);
assertTrue("size is " + content.size() , content.size() == 2);
}
public void testTopElement() throws XdsInternalException, FactoryConfigurationError, IOException {
List<ZipEntry> content = getContentEntries(zip);
for (int i=0; i<content.size(); i++) {
ZipEntry entry = content.get(i);
String entryName = entry.toString();
InputStream is = zip.getInputStream(entry);
String entryString = Io.getStringFromInputStream(is);
System.out.println("entryString = " + entryString.substring(0, min(entryString.length(), 25)));
OMElement entryElement = Util.parse_xml(entryString);
assertTrue("name is " + entryElement.getLocalName(),
entryElement.getLocalName().equals("TestResults"));
}
}
int min(int a, int b) { return (a>b) ? b : a; }
void showEntries() {
for (Enumeration<ZipEntry> en=(Enumeration<ZipEntry>) zip.entries(); en.hasMoreElements(); ) {
ZipEntry entry = en.nextElement();
String name = entry.getName();
System.out.println("Entry: " + name);
}
}
void showEntries(List<ZipEntry> entries) {
for (int i=0; i<entries.size(); i++) {
ZipEntry entry = entries.get(i);
String name = entry.getName();
System.out.println("Entry: " + name);
}
}
List<ZipEntry> getContentEntries(ZipFile zip) {
ArrayList<ZipEntry> contentEntries = new ArrayList<ZipEntry>();
for (Enumeration<ZipEntry> en=(Enumeration<ZipEntry>) zip.entries(); en.hasMoreElements(); ) {
ZipEntry entry = en.nextElement();
String name = entry.getName();
if (name.startsWith("__"))
continue;
contentEntries.add(entry);
}
return contentEntries;
}
}