forked from libbit702/crawler
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCrawlerBilibiliSearchTest.php
117 lines (105 loc) · 3.31 KB
/
CrawlerBilibiliSearchTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<?php
use PHPUnit\Framework\TestCase;
require 'common.php';
/**
* @covers CrawlerBilibiliSearch
*/
final class CrawlerBilibiliSearchTest extends TestCase
{
public function testCanBeCreatedFromBilibiliSearch()
{
$this->assertInstanceOf(
CrawlerBilibiliSearch::class,
new CrawlerBilibiliSearch()
);
}
/**
* @expectedException InvalidArgumentException
* @expectedExceptionMessage keywords required for bilibili search
*/
public function testKeywordsCannotBeNull()
{
$crawler = new CrawlerBilibiliSearch();
$crawler->setConfig([
'keyword_check' => ['魔兽争霸'],
]);
$crawler->prepareCrawl();
$crawler->executeCrawl();
}
/**
* @expectedException InvalidArgumentException
* @expectedExceptionMessage keywords cannot be empty for bilibili search
*/
public function testKeywordsCannotBeEmpty()
{
$crawler = new CrawlerBilibiliSearch();
$crawler->setConfig([
'keywords' => [],
'keyword_check' => ['魔兽争霸'],
]);
$crawler->prepareCrawl();
$crawler->executeCrawl();
}
/**
* @expectedException InvalidArgumentException
* @expectedExceptionMessage invalid page setting for bilibili search
*/
public function testPageCannotBeZero()
{
$crawler = new CrawlerBilibiliSearch();
$crawler->setConfig([
'keywords' => ['DOTA2'],
'page' => 0,
'keyword_check' => ['魔兽争霸'],
]);
$crawler->prepareCrawl();
$crawler->executeCrawl();
}
/**
* @expectedException InvalidArgumentException
* @expectedExceptionMessage invalid page setting for bilibili search
*/
public function testPageCannotBeNegative()
{
$crawler = new CrawlerBilibiliSearch();
$crawler->setConfig([
'keywords' => ['DOTA2'],
'page' => -1,
'keyword_check' => ['DOTA'],
]);
$crawler->prepareCrawl();
$crawler->executeCrawl();
}
public function testCanGetEnoughMessageWithPageConfig()
{
$crawler = new CrawlerBilibiliSearch();
$crawler->setConfig([
'keywords' => ['DOTA2'],
'keyword_check' => [],
'page' => 2,
]);
$crawler->prepareCrawl();
$crawler->executeCrawl();
$this->assertGreaterThanOrEqual(40,count($crawler->getMessage()));
foreach ($crawler->getMessage() as $key => $value) {
$this->assertArrayHasKey('url_author',$value);
$this->assertArrayHasKey('author_link',$value);
$this->assertArrayHasKey('pics',$value);
$this->assertArrayHasKey('playtime',$value);
$this->assertArrayHasKey('link',$value);
$this->assertArrayHasKey('title',$value);
}
}
public function testCannotGetEnoughMessageWithKeywordcheckConfig()
{
$crawler = new CrawlerBilibiliSearch();
$crawler->setConfig([
'keywords' => ['DOTA2'],
'page' => 2,
'keyword_check' => ['DOTA'],
]);
$crawler->prepareCrawl();
$crawler->executeCrawl();
$this->assertLessThanOrEqual(40,count($crawler->getMessage()));
}
}