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));
+  }
+  
+}


Reply via email to