package org.myrobotlab.service.interfaces;
import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;
import org.myrobotlab.document.connector.AbstractConnector;
import org.myrobotlab.logging.LoggerFactory;
import org.slf4j.Logger;
@Ignore
public abstract class AbstractConnectorTest {
public final static Logger log = LoggerFactory.getLogger(AbstractConnectorTest.class);
public abstract AbstractConnector createConnector();
public abstract MockDocumentListener createListener();
public abstract void validate(MockDocumentListener listener);
@Test
public void test() {
AbstractConnector connector = createConnector();
MockDocumentListener listener = createListener();
connector.startService();
listener.startService();
connector.addDocumentListener(listener);
connector.startCrawling();
// flush any current batch and wait until the outbox is empty.
connector.flush();
System.out.println("Done Crawling");
// Wait for the inbox to drain
while (listener.getInbox().size() > 0) {
log.info("Draining Inbox...Size: {}", listener.getInbox().size());
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
validate(listener);
// connector.stopService();
// listener.stopService();
Assert.assertTrue(listener.getCount() > 0);
}
}