|
3 | 3 | namespace Wikibase\DataModel\Tests\Statement; |
4 | 4 |
|
5 | 5 | use DataValues\StringValue; |
| 6 | +use InvalidArgumentException; |
6 | 7 | use Wikibase\DataModel\Claim\Claims; |
7 | 8 | use Wikibase\DataModel\Entity\PropertyId; |
8 | 9 | use Wikibase\DataModel\Snak\PropertyNoValueSnak; |
@@ -694,12 +695,56 @@ public function testGivenFilledStatementList_setStatementsOverridesIt() { |
694 | 695 | ); |
695 | 696 | } |
696 | 697 |
|
697 | | - public function testGivenNoTraversable_setStatementsThrowsException() { |
| 698 | + public function testGivenNonTraversable_setStatementsThrowsException() { |
698 | 699 | $statement1 = $this->getStatement( 1, 'guid1' ); |
699 | 700 | $statements = new StatementList(); |
700 | 701 |
|
701 | 702 | $this->setExpectedException( 'InvalidArgumentException' ); |
702 | 703 | $statements->setStatements( $statement1 ); |
703 | 704 | } |
704 | 705 |
|
| 706 | + public function testGivenNonStatement_setStatementsThrowsException() { |
| 707 | + $statement1 = $this->getStatement( 1, 'guid1' ); |
| 708 | + $statements = new StatementList(); |
| 709 | + |
| 710 | + $this->setExpectedException( 'InvalidArgumentException' ); |
| 711 | + $statements->setStatements( array( $statement1, false ) ); |
| 712 | + } |
| 713 | + |
| 714 | + public function testGivenNonTraversable_setStatementsDoesNotEditList() { |
| 715 | + $statement1 = $this->getStatement( 1, 'guid1' ); |
| 716 | + $statement2 = $this->getStatement( 2, 'guid2' ); |
| 717 | + $statement3 = $this->getStatement( 3, 'guid3' ); |
| 718 | + $statement4 = $this->getStatement( 2, 'guid5' ); |
| 719 | + $statements = new StatementList( $statement1, $statement2, $statement3, $statement4 ); |
| 720 | + |
| 721 | + try { |
| 722 | + $statements->setStatements( $statement1 ); |
| 723 | + } |
| 724 | + catch ( InvalidArgumentException $e ) { |
| 725 | + $this->assertEquals( |
| 726 | + new StatementList( $statement1, $statement2, $statement3, $statement4 ), |
| 727 | + $statements |
| 728 | + ); |
| 729 | + } |
| 730 | + } |
| 731 | + |
| 732 | + public function testGivenNonStatement_setStatementsDoesNotEditList() { |
| 733 | + $statement1 = $this->getStatement( 1, 'guid1' ); |
| 734 | + $statement2 = $this->getStatement( 2, 'guid2' ); |
| 735 | + $statement3 = $this->getStatement( 3, 'guid3' ); |
| 736 | + $statement4 = $this->getStatement( 2, 'guid5' ); |
| 737 | + $statements = new StatementList( $statement1, $statement2, $statement3, $statement4 ); |
| 738 | + |
| 739 | + try { |
| 740 | + $statements->setStatements( array( $statement4, false ) ); |
| 741 | + } |
| 742 | + catch ( InvalidArgumentException $e ) { |
| 743 | + $this->assertEquals( |
| 744 | + new StatementList( $statement1, $statement2, $statement3, $statement4 ), |
| 745 | + $statements |
| 746 | + ); |
| 747 | + } |
| 748 | + } |
| 749 | + |
705 | 750 | } |
0 commit comments