|
3 | 3 | namespace Wikibase\DataModel\Tests\Statement; |
4 | 4 |
|
5 | 5 | use DataValues\StringValue; |
| 6 | +use InvalidArgumentException; |
6 | 7 | use Wikibase\DataModel\Entity\PropertyId; |
7 | 8 | use Wikibase\DataModel\Reference; |
8 | 9 | use Wikibase\DataModel\ReferenceList; |
9 | 10 | use Wikibase\DataModel\Snak\PropertyNoValueSnak; |
10 | 11 | use Wikibase\DataModel\Snak\PropertySomeValueSnak; |
11 | 12 | use Wikibase\DataModel\Snak\PropertyValueSnak; |
| 13 | +use Wikibase\DataModel\Snak\Snak; |
12 | 14 | use Wikibase\DataModel\Snak\SnakList; |
| 15 | +use Wikibase\DataModel\Snak\Snaks; |
13 | 16 | use Wikibase\DataModel\Statement\Statement; |
14 | 17 |
|
15 | 18 | /** |
|
24 | 27 | */ |
25 | 28 | class StatementTest extends \PHPUnit_Framework_TestCase { |
26 | 29 |
|
| 30 | + public function testMinimalConstructor() { |
| 31 | + $mainSnak = new PropertyNoValueSnak( 1 ); |
| 32 | + $statement = new Statement( $mainSnak ); |
| 33 | + $this->assertTrue( $mainSnak->equals( $statement->getMainSnak() ) ); |
| 34 | + } |
| 35 | + |
| 36 | + /** |
| 37 | + * @dataProvider validConstructorArgumentsProvider |
| 38 | + */ |
| 39 | + public function testConstructorWithValidArguments( |
| 40 | + Snak $mainSnak, |
| 41 | + Snaks $qualifiers = null, |
| 42 | + ReferenceList $references = null, |
| 43 | + $guid |
| 44 | + ) { |
| 45 | + $statement = new Statement( $mainSnak, $qualifiers, $references, $guid ); |
| 46 | + $this->assertTrue( $statement->getMainSnak()->equals( $mainSnak ) ); |
| 47 | + $this->assertTrue( $statement->getQualifiers()->equals( $qualifiers ?: new SnakList() ) ); |
| 48 | + $this->assertTrue( $statement->getReferences()->equals( $references ?: new ReferenceList() ) ); |
| 49 | + $this->assertSame( $guid, $statement->getGuid() ); |
| 50 | + } |
| 51 | + |
| 52 | + public function validConstructorArgumentsProvider() { |
| 53 | + $snak = new PropertyNoValueSnak( 1 ); |
| 54 | + $qualifiers = new SnakList( array( $snak ) ); |
| 55 | + $references = new ReferenceList( array( new Reference( array( $snak ) ) ) ); |
| 56 | + |
| 57 | + return array( |
| 58 | + array( $snak, null, null, null ), |
| 59 | + array( $snak, null, null, 'guid' ), |
| 60 | + array( $snak, $qualifiers, $references, 'guid' ), |
| 61 | + ); |
| 62 | + } |
| 63 | + |
| 64 | + /** |
| 65 | + * @dataProvider invalidConstructorArgumentsProvider |
| 66 | + * @expectedException InvalidArgumentException |
| 67 | + */ |
| 68 | + public function testConstructorWithInvalidArguments( |
| 69 | + $mainSnak, |
| 70 | + $qualifiers, |
| 71 | + $references, |
| 72 | + $guid |
| 73 | + ) { |
| 74 | + new Statement( $mainSnak, $qualifiers, $references, $guid ); |
| 75 | + } |
| 76 | + |
| 77 | + public function invalidConstructorArgumentsProvider() { |
| 78 | + $snak = new PropertyNoValueSnak( 1 ); |
| 79 | + |
| 80 | + return array( |
| 81 | + array( $snak, null, null, false ), |
| 82 | + array( $snak, null, null, 1 ), |
| 83 | + ); |
| 84 | + } |
| 85 | + |
27 | 86 | /** |
28 | 87 | * @dataProvider instanceProvider |
29 | 88 | */ |
|
0 commit comments