// Copyright (c) 2002-2005 Canoo Engineering AG, Switzerland. All Rights Reserved.
package com.canoo.webtest.extension.spider;
import com.canoo.webtest.self.TestBlock;
import com.canoo.webtest.self.ThrowAssert;
import junit.framework.TestCase;
import java.io.IOException;
import java.io.StringWriter;
import java.util.Properties;
public class SeparatedValueReporterTest extends TestCase {
public static final String KEY_LABEL = "Label";
public static final String KEY_HREF = "Href";
public static final String[] HEADER = new String[]{KEY_LABEL, KEY_HREF};
private SeparatedValueReporter fSeparatedValueReporter;
private StringWriter fWriter;
protected void setUp() throws Exception {
super.setUp();
fSeparatedValueReporter = new SeparatedValueReporter(HEADER);
fWriter = new StringWriter();
fSeparatedValueReporter.setWriter(fWriter);
}
public void testSeparatedValueReporter() {
ThrowAssert.assertThrows(IllegalArgumentException.class, new TestBlock() {
public void call() throws Exception {
new SeparatedValueReporter(null);
}
});
}
public void testSetWriter() throws Exception {
ThrowAssert.assertThrows(IllegalArgumentException.class, new TestBlock() {
public void call() throws Exception {
fSeparatedValueReporter.setWriter(null);
}
});
}
public void testWriteHeader() throws IOException {
fSeparatedValueReporter.writeHeader();
assertEquals(KEY_LABEL + SeparatedValueReporter.VALUE_SEPARATOR + KEY_HREF + SeparatedValueReporter.LINE_SEPARATOR, fWriter.toString());
}
public void testWriteFooter() throws Exception {
fSeparatedValueReporter.writeFooter();
assertEquals("", fWriter.toString());
}
public void testWriteNoProperty() throws Exception {
Properties linkInfo = new Properties();
fSeparatedValueReporter.write(linkInfo);
assertEquals(SeparatedValueReporter.VALUE_SEPARATOR + SeparatedValueReporter.LINE_SEPARATOR, fWriter.toString());
}
public void testWriteOneProperty() throws Exception {
Properties linkInfo = new Properties();
linkInfo.setProperty(KEY_HREF, "href");
fSeparatedValueReporter.write(linkInfo);
assertEquals(SeparatedValueReporter.VALUE_SEPARATOR + "href" + SeparatedValueReporter.LINE_SEPARATOR, fWriter.toString());
}
public void testWriteAllProperties() throws Exception {
Properties linkInfo = new Properties();
linkInfo.setProperty(KEY_HREF, "href");
linkInfo.setProperty(KEY_LABEL, "label");
fSeparatedValueReporter.write(linkInfo);
assertEquals("label" + SeparatedValueReporter.VALUE_SEPARATOR + "href" + SeparatedValueReporter.LINE_SEPARATOR, fWriter.toString());
}
public void testFinishLine() {
assertEquals(SeparatedValueReporter.LINE_SEPARATOR,
SeparatedValueReporter.finishLine(new StringBuffer()));
assertEquals(SeparatedValueReporter.LINE_SEPARATOR,
SeparatedValueReporter.finishLine(new StringBuffer(SeparatedValueReporter.VALUE_SEPARATOR)));
assertEquals("a" + SeparatedValueReporter.LINE_SEPARATOR,
SeparatedValueReporter.finishLine(new StringBuffer("a"+ SeparatedValueReporter.VALUE_SEPARATOR)));
}
}