blob: 27156d128f68e32acc0dfd2d2c158bf7ed36a5e9 (
plain)
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
118
119
120
121
122
123
124
125
|
<?php
namespace SMW\Tests\Exporter\ResourceBuilders;
use SMW\DataItemFactory;
use SMW\Exporter\ResourceBuilder;
use SMW\Exporter\ResourceBuilders\DispatchingResourceBuilder;
/**
* @covers \SMW\Exporter\ResourceBuilders\DispatchingResourceBuilder
* @group semantic-mediawiki
*
* @license GNU GPL v2+
* @since 2.5
*
* @author mwjames
*/
class DispatchingResourceBuilderTest extends \PHPUnit_Framework_TestCase {
private $dataItemFactory;
protected function setUp() {
parent::setUp();
$this->dataItemFactory = new DataItemFactory();
}
public function testCanConstruct() {
$this->assertInstanceof(
DispatchingResourceBuilder::class,
new DispatchingResourceBuilder()
);
}
public function testIsResourceBuilderForValidMatch() {
$property = $this->dataItemFactory->newDIProperty( 'Foo' );
$resourceBuilder = $this->getMockBuilder( ResourceBuilder::class )
->disableOriginalConstructor()
->getMock();
$resourceBuilder->expects( $this->once() )
->method( 'isResourceBuilderFor' )
->with( $this->equalTo( $property ) )
->will( $this->returnValue( true ) );
$instance = new DispatchingResourceBuilder();
$instance->addResourceBuilder( $resourceBuilder );
$this->assertTrue(
$instance->isResourceBuilderFor( $property )
);
}
public function testIsResourceBuilderForInvalidMatch() {
$property = $this->dataItemFactory->newDIProperty( 'Foo' );
$instance = new DispatchingResourceBuilder();
$this->assertFalse(
$instance->isResourceBuilderFor( $property )
);
}
public function testAddResourceValueOnValidMatchedResourceBuilder() {
$expData = $this->getMockBuilder( '\SMWExpData' )
->disableOriginalConstructor()
->getMock();
$property = $this->dataItemFactory->newDIProperty( 'Foo' );
$dataItem = $this->dataItemFactory->newDIBlob( 'Bar' );
$resourceBuilder = $this->getMockBuilder( ResourceBuilder::class )
->disableOriginalConstructor()
->getMock();
$resourceBuilder->expects( $this->once() )
->method( 'isResourceBuilderFor' )
->will( $this->returnValue( true ) );
$resourceBuilder->expects( $this->once() )
->method( 'addResourceValue' );
$instance = new DispatchingResourceBuilder();
$instance->addResourceBuilder( $resourceBuilder );
$instance->addResourceValue( $expData, $property, $dataItem );
}
public function testAddResourceValueOnDefaultResourceBuilderWhenOthersCannotMatch() {
$expData = $this->getMockBuilder( '\SMWExpData' )
->disableOriginalConstructor()
->getMock();
$property = $this->dataItemFactory->newDIProperty( 'Foo' );
$dataItem = $this->dataItemFactory->newDIBlob( 'Bar' );
$resourceBuilder = $this->getMockBuilder( ResourceBuilder::class )
->disableOriginalConstructor()
->getMock();
$resourceBuilder->expects( $this->once() )
->method( 'isResourceBuilderFor' )
->will( $this->returnValue( false ) );
$defaultResourceBuilder = $this->getMockBuilder( ResourceBuilder::class )
->disableOriginalConstructor()
->getMock();
$defaultResourceBuilder->expects( $this->once() )
->method( 'addResourceValue' );
$instance = new DispatchingResourceBuilder();
$instance->addResourceBuilder( $resourceBuilder );
$instance->addDefaultResourceBuilder( $defaultResourceBuilder );
$instance->addResourceValue( $expData, $property, $dataItem );
}
}
|