Open Journal Systems  3.3.0
ChooseTest.php
1 <?php
2 /*
3  * citeproc-php
4  *
5  * @link http://github.com/seboettg/citeproc-php for the source repository
6  * @copyright Copyright (c) 2016 Sebastian Böttger.
7  * @license https://opensource.org/licenses/MIT
8  */
9 
11 
12 use PHPUnit\Framework\TestCase;
19 use SimpleXMLElement;
20 
21 class ChooseTest extends TestCase
22 {
24 
25  private $chooseXml = [
26  '<choose><if type="book"><text variable="title" font-style="italic"/></if><else><text variable="title"/></else></choose>',
27  '<choose><if is-numeric="volume"><text variable="title"/><text value="; "/><text variable="volume"/></if><else><text variable="title"/></else></choose>'
28  ];
29 
30 
35  public function testIsNumeric()
36  {
37  $xml = new SimpleXMLElement($this->chooseXml[1]);
38  $choose = new Choose($xml, null);
40  $ret1 = $choose->render(json_decode('{"title":"Ein herzzerreißendes Werk von umwerfender Genialität","volume":2}'));
41  $ret2 = $choose->render(json_decode('{"title":"Ein herzzerreißendes Werk von umwerfender Genialität","volume":"non-numeric value"}'));
42  $ret3 = $choose->render(json_decode('{"title":"Ein herzzerreißendes Werk von umwerfender Genialität"}'));
43 
44  $this->assertEquals("Ein herzzerreißendes Werk von umwerfender Genialität; 2", $ret1);
45  $this->assertEquals("Ein herzzerreißendes Werk von umwerfender Genialität", $ret2);
46  $this->assertEquals("Ein herzzerreißendes Werk von umwerfender Genialität", $ret3);
47  }
48 
49  public function testBugfix_github_44()
50  {
51  $this->_testRenderTestSuite("bugfix-github-44");
52  $this->_testRenderTestSuite("bugfix-choose-github-44");
53  }
54 
56  {
57  $this->_testRenderTestSuite("condition_EmptyIsUncertainDateFalse");
58  }
59 
61  {
62  $this->_testRenderTestSuite("condition_IsNumericMatchNone");
63  }
64 
65  public function testConditionLocatorIsFalse()
66  {
67  $this->_testRenderTestSuite("condition_LocatorIsFalse");
68  }
69 
71  {
72  $this->_testRenderTestSuite("condition_VariableMatchAll");
73  }
74 }
Seboettg\CiteProc\TestSuiteTestCaseTrait
trait TestSuiteTestCaseTrait
Definition: TestSuiteTestCaseTrait.php:17
Seboettg\CiteProc\Context
Definition: Context.php:32
Seboettg\CiteProc\Node\Choose\Choose\ChooseTest\testIsNumeric
testIsNumeric()
Definition: ChooseTest.php:35
Seboettg\CiteProc\Node\Choose\Choose\ChooseTest\testConditionEmptyIsUncertainDateFalse
testConditionEmptyIsUncertainDateFalse()
Definition: ChooseTest.php:55
Seboettg\CiteProc\Exception\InvalidStylesheetException
Definition: InvalidStylesheetException.php:10
Seboettg\CiteProc\Node\Choose\Choose\ChooseTest\testConditionIsNumericMatchNone
testConditionIsNumericMatchNone()
Definition: ChooseTest.php:60
Seboettg\CiteProc\_testRenderTestSuite
_testRenderTestSuite($filterTests, $ignore=null)
Definition: TestSuiteTestCaseTrait.php:27
Seboettg\CiteProc\Node\Choose\Choose\ChooseTest
Definition: ChooseTest.php:21
Seboettg\CiteProc\Rendering\Choose\Choose
Definition: Choose.php:27
Seboettg\CiteProc\CiteProc
Definition: CiteProc.php:32
Seboettg\CiteProc\Exception\ClassNotFoundException
Definition: ClassNotFoundException.php:22
Seboettg\CiteProc\Node\Choose\Choose\ChooseTest\testConditionLocatorIsFalse
testConditionLocatorIsFalse()
Definition: ChooseTest.php:65
Seboettg\CiteProc\Node\Choose\Choose\ChooseTest\testBugfix_github_44
testBugfix_github_44()
Definition: ChooseTest.php:49
Seboettg\CiteProc\CiteProc\setContext
static setContext($context)
Definition: CiteProc.php:53
Seboettg\CiteProc\Node\Choose\Choose\ChooseTest\testConditionVariableMatchAll
testConditionVariableMatchAll()
Definition: ChooseTest.php:70
Seboettg\CiteProc\Node\Choose\Choose
Definition: ChooseTest.php:10