add some test for github repo downloader

pull/246/merge
yihua.huang 9 years ago
parent 800f66c4cc
commit 7586e3d75c

@ -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>

@ -0,0 +1,34 @@
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) {
}
}

@ -0,0 +1,30 @@
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");
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save