Author: bchapuis
Date: Tue Mar 8 08:59:39 2011
New Revision: 1079301
URL: http://svn.apache.org/viewvc?rev=1079301&view=rev
Log:
Introduce Mockito as the default mocking framework. Patch: Eugen Paraschiv.
Added:
incubator/droids/trunk/droids-core/src/test/java/org/apache/droids/robot/
incubator/droids/trunk/droids-core/src/test/java/org/apache/droids/robot/crawler/
incubator/droids/trunk/droids-core/src/test/java/org/apache/droids/robot/crawler/TestCrawlingWorker.java
Added:
incubator/droids/trunk/droids-core/src/test/java/org/apache/droids/robot/crawler/TestCrawlingWorker.java
URL:
http://svn.apache.org/viewvc/incubator/droids/trunk/droids-core/src/test/java/org/apache/droids/robot/crawler/TestCrawlingWorker.java?rev=1079301&view=auto
==============================================================================
---
incubator/droids/trunk/droids-core/src/test/java/org/apache/droids/robot/crawler/TestCrawlingWorker.java
(added)
+++
incubator/droids/trunk/droids-core/src/test/java/org/apache/droids/robot/crawler/TestCrawlingWorker.java
Tue Mar 8 08:59:39 2011
@@ -0,0 +1,89 @@
+package org.apache.droids.robot.crawler;
+
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.HashMap;
+
+import org.apache.droids.DroidsFactory;
+import org.apache.droids.LinkTask;
+import org.apache.droids.api.ContentEntity;
+import org.apache.droids.api.Link;
+import org.apache.droids.api.TaskQueue;
+import org.apache.droids.exception.DroidsException;
+import org.apache.droids.helper.factories.ParserFactory;
+import org.apache.droids.helper.factories.ProtocolFactory;
+import org.apache.droids.impl.SimpleTaskQueue;
+import org.apache.droids.impl.SysoutCrawlingDroid;
+import org.apache.droids.parse.html.HtmlParser;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Matchers;
+import org.mockito.Mockito;
+import org.mockito.internal.stubbing.defaultanswers.ReturnsMocks;
+
+public class TestCrawlingWorker {
+ CrawlingWorker instance;
+ private HtmlParser htmlParser;
+
+ @Before
+ public void initialize() {
+ final TaskQueue<Link> queue = new SimpleTaskQueue<Link>();
+ final CrawlingDroid droid = createDroid(queue);
+ instance = (CrawlingWorker) droid.getNewWorker();
+ }
+
+ private final CrawlingDroid createDroid(final TaskQueue<Link> queue) {
+ final CrawlingDroid droid = new SysoutCrawlingDroid(queue, null);
+
+ final ProtocolFactory protocolFactory =
DroidsFactory.createDefaultProtocolFactory();
+ droid.setProtocolFactory(protocolFactory);
+
+ final ParserFactory parserFactory = parserSetup();
+ droid.setParserFactory(parserFactory);
+ return droid;
+ }
+
+ private final ParserFactory parserSetup() {
+ final ParserFactory parserFactory = new ParserFactory();
+ final HashMap<String, Object> parserFactoryMap = new HashMap<String,
Object>();
+
+ htmlParser = Mockito.mock(HtmlParser.class, new ReturnsMocks());
+ parserFactoryMap.put("text/html", htmlParser);
+
+ parserFactory.setMap(parserFactoryMap);
+ return parserFactory;
+ }
+
+ //
+ @After
+ public void cleanup() {
+ instance = null;
+ htmlParser = null;
+ }
+
+ //
+ @Test
+ public void nothingHappens() {
+ // Arrange
+
+ // Act
+
+ // Assert
+ }
+
+ // execute
+ @Test
+ public void execute_linkIsParsed() throws DroidsException, IOException,
URISyntaxException {
+ // Arrange
+ final Link link = new LinkTask(null, new URI("http://www.google.com"), 1);
+
+ // Act
+ this.instance.execute(link);
+
+ // Assert
+ Mockito.verify(htmlParser).parse(Matchers.any(ContentEntity.class),
Matchers.any(Link.class));
+ }
+
+}