Commit 7586e3d7 authored by yihua.huang's avatar yihua.huang

add some test for github repo downloader

parent 800f66c4
......@@ -136,7 +136,7 @@
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.7.2</version>
<version>1.8.3</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
......
package us.codecraft.webmagic.downloader;
import org.apache.commons.io.IOUtils;
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Request;
import us.codecraft.webmagic.Task;
import us.codecraft.webmagic.selector.PlainText;
import java.io.IOException;
import java.io.InputStream;
/**
* @author code4crafter@gmail.com
*/
public class MockGithubDownloader implements Downloader {
@Override
public Page download(Request request, Task task) {
Page page = new Page();
InputStream resourceAsStream = this.getClass().getResourceAsStream("/html/mock-github.html");
try {
page.setRawText(IOUtils.toString(resourceAsStream));
} catch (IOException e) {
e.printStackTrace();
}
page.setRequest(new Request("https://github.com/code4craft/webmagic"));
page.setUrl(new PlainText("https://github.com/code4craft/webmagic"));
return page;
}
@Override
public void setThread(int threadNum) {
}
}
package us.codecraft.webmagic.example;
import org.junit.Test;
import us.codecraft.webmagic.ResultItems;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.Task;
import us.codecraft.webmagic.downloader.MockGithubDownloader;
import us.codecraft.webmagic.pipeline.Pipeline;
import us.codecraft.webmagic.processor.example.GithubRepoPageProcessor;
import static org.assertj.core.api.Assertions.assertThat;
/**
* @author code4crafter@gmail.com
* Date: 16/1/19
* Time: 上午7:27
*/
public class GithubRepoPageProcessorTest {
@Test
public void test_github() throws Exception {
Spider.create(new GithubRepoPageProcessor()).addPipeline(new Pipeline() {
@Override
public void process(ResultItems resultItems, Task task) {
assertThat(((String) resultItems.get("name")).trim()).isEqualTo("webmagic");
assertThat(((String) resultItems.get("author")).trim()).isEqualTo("code4craft");
}
}).setDownloader(new MockGithubDownloader()).test("https://github.com/code4craft/webmagic");
}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment