17 import(
'lib.pkp.tests.PKPTestCase');
18 import(
'lib.pkp.classes.metadata.MetadataDescription');
21 private $metadataDescription;
23 $testStatements = array(
24 array(
'not-translated-one',
'nto',
null),
26 array(
'not-translated-many',
'ntm1',
null),
27 array(
'not-translated-many',
'ntm2',
null),
29 array(
'translated-one',
'to_en',
'en_US'),
30 array(
'translated-one',
'to_de',
'de_DE'),
32 array(
'translated-many',
'tm1_en',
'en_US'),
33 array(
'translated-many',
'tm1_de',
'de_DE'),
34 array(
'translated-many',
'tm2_en',
'en_US'),
35 array(
'translated-many',
'tm2_de',
'de_DE')
38 'not-translated-one' =>
'nto',
39 'not-translated-many' => array (
43 'translated-one' => array (
47 'translated-many' => array (
59 protected function setUp() : void {
61 $this->metadataDescription =
new MetadataDescription(
'lib.pkp.tests.classes.metadata.TestSchema', ASSOC_TYPE_CITATION);
68 foreach (self::$testStatements as $test) {
69 $this->metadataDescription->addStatement($test[0], $test[1], $test[2]);
72 self::assertEquals(self::$testStatementsData, $this->metadataDescription->getAllData());
77 $this->metadataDescription->setStatements($testStatements);
78 self::assertEquals($testStatements, $this->metadataDescription->getAllData());
80 $testStatements = array (
81 'not-translated-one' =>
'nto-new',
82 'not-translated-many' => array (
86 'translated-one' => array (
87 'en_US' =>
'to_en-new',
88 'de_DE' =>
'to_de-new'
90 'translated-many' => array (
105 self::assertFalse($this->metadataDescription->setStatements($testStatements, METADATA_DESCRIPTION_REPLACE_NOTHING));
106 self::assertEquals($previousData, $this->metadataDescription->getAllData());
110 unset($previousData[
'not-translated-one']);
111 unset($previousData[
'translated-one']);
112 $this->metadataDescription->setAllData($previousData);
114 $expectedResult[
'not-translated-many'][] =
'ntm1-new';
115 $expectedResult[
'not-translated-many'][] =
'ntm2-new';
116 unset($expectedResult[
'translated-one']);
117 $expectedResult[
'translated-one'][
'en_US'] =
'to_en-new';
118 $expectedResult[
'translated-one'][
'de_DE'] =
'to_de-new';
119 $expectedResult[
'translated-many'][
'en_US'][] =
'tm1_en-new';
120 $expectedResult[
'translated-many'][
'en_US'][] =
'tm2_en-new';
121 $expectedResult[
'translated-many'][
'de_DE'][] =
'tm1_de-new';
122 $expectedResult[
'translated-many'][
'de_DE'][] =
'tm2_de-new';
123 unset($expectedResult[
'not-translated-one']);
124 $expectedResult[
'not-translated-one'] =
'nto-new';
125 self::assertTrue($this->metadataDescription->setStatements($testStatements, METADATA_DESCRIPTION_REPLACE_NOTHING));
126 self::assertEquals($expectedResult, $this->metadataDescription->getAllData());
130 $this->metadataDescription->setAllData($previousData);
133 self::assertTrue($this->metadataDescription->setStatements($testStatements));
134 self::assertEquals($testStatements, $this->metadataDescription->getAllData());
137 self::assertTrue($this->metadataDescription->setStatements($testStatements, METADATA_DESCRIPTION_REPLACE_ALL));
138 self::assertEquals($testStatements, $this->metadataDescription->getAllData());
143 $previousData = array(
'non-translated-one' =>
'previous-value');
144 $previousDataCopy = $previousData;
145 $this->metadataDescription->setAllData($previousData);
147 $testStatements[
'non-existent-property'] =
'some-value';
150 self::assertFalse($this->metadataDescription->setStatements($testStatements));
151 self::assertEquals($previousDataCopy, $this->metadataDescription->getAllData());
152 self::assertFalse($this->metadataDescription->setStatements($testStatements,
true));
153 self::assertEquals($previousDataCopy, $this->metadataDescription->getAllData());