Open Journal Systems  3.3.0
PubObjectCacheTest.php
1 <?php
2 
20 import('lib.pkp.tests.PKPTestCase');
21 import('classes/issue/Issue');
22 import('classes/article/Submission');
23 import('classes/article/ArticleGalley');
24 import('plugins.importexport.medra.classes.PubObjectCache');
25 
30  public function testAddIssue() {
31  $nullVar = null;
32  $cache = new PubObjectCache();
33 
34  $issue = new Issue();
35  $issue->setId('1');
36 
37  self::assertFalse($cache->isCached('issues', $issue->getId()));
38  $cache->add($issue, $nullVar);
39  self::assertTrue($cache->isCached('issues', $issue->getId()));
40 
41  $retrievedIssue = $cache->get('issues', $issue->getId());
42  self::assertEquals($issue, $retrievedIssue);
43  }
44 
48  public function testAddArticle() {
49  $nullVar = null;
50  $cache = new PubObjectCache();
51 
52  $article = new Submission();
53  $article->setId('2');
54  $article->setIssueId('1');
55 
56  self::assertFalse($cache->isCached('articles', $article->getId()));
57  self::assertFalse($cache->isCached('articlesByIssue', $article->getCurrentPublication()->getData('issueId')));
58  self::assertFalse($cache->isCached('articlesByIssue', $article->getCurrentPublication()->getData('issueId'), $article->getId()));
59  $cache->add($article, $nullVar);
60  self::assertTrue($cache->isCached('articles', $article->getId()));
61  self::assertFalse($cache->isCached('articlesByIssue', $article->getCurrentPublication()->getData('issueId')));
62  self::assertTrue($cache->isCached('articlesByIssue', $article->getCurrentPublication()->getData('issueId'), $article->getId()));
63 
64  $retrievedArticle = $cache->get('articles', $article->getId());
65  self::assertEquals($article, $retrievedArticle);
66  }
67 
68 
72  public function testAddGalley() {
73  $nullVar = null;
74  $cache = new PubObjectCache();
75 
76  $article = new Submission();
77  $article->setId('2');
78  $article->setIssueId('1');
79 
80  $articleGalley = new ArticleGalley();
81  $articleGalley->setId('3');
82  $articleGalley->setSubmissionId($article->getId());
83 
84  self::assertFalse($cache->isCached('galleys', $articleGalley->getId()));
85  self::assertFalse($cache->isCached('galleysByArticle', $article->getId()));
86  self::assertFalse($cache->isCached('galleysByArticle', $article->getId(), $articleGalley->getId()));
87  self::assertFalse($cache->isCached('galleysByIssue', $article->getCurrentPublication()->getData('issueId')));
88  self::assertFalse($cache->isCached('galleysByIssue', $article->getCurrentPublication()->getData('issueId'), $articleGalley->getId()));
89  $cache->add($articleGalley, $article);
90  self::assertTrue($cache->isCached('galleys', $articleGalley->getId()));
91  self::assertFalse($cache->isCached('galleysByArticle', $article->getId()));
92  self::assertTrue($cache->isCached('galleysByArticle', $article->getId(), $articleGalley->getId()));
93  self::assertFalse($cache->isCached('galleysByIssue', $article->getCurrentPublication()->getData('issueId')));
94  self::assertTrue($cache->isCached('galleysByIssue', $article->getCurrentPublication()->getData('issueId'), $articleGalley->getId()));
95 
96  $retrievedArticleGalley1 = $cache->get('galleys', $articleGalley->getId());
97  self::assertEquals($articleGalley, $retrievedArticleGalley1);
98 
99  $retrievedArticleGalley2 = $cache->get('galleysByIssue', $article->getCurrentPublication()->getData('issueId'), $articleGalley->getId());
100  self::assertEquals($retrievedArticleGalley1, $retrievedArticleGalley2);
101 
102  $cache->markComplete('galleysByArticle', $article->getId());
103  self::assertTrue($cache->isCached('galleysByArticle', $article->getId()));
104  self::assertFalse($cache->isCached('galleysByIssue', $article->getCurrentPublication()->getData('issueId')));
105  }
106 
110  public function testAddSeveralGalleys() {
111  $nullVar = null;
112  $cache = new PubObjectCache();
113 
114  $article = new Submission();
115  $article->setId('2');
116  $article->setIssueId('1');
117 
118  $articleGalley1 = new ArticleGalley();
119  $articleGalley1->setId('3');
120  $articleGalley1->setSubmissionId($article->getId());
121 
122  $articleGalley2 = new ArticleGalley();
123  $articleGalley2->setId('4');
124  $articleGalley2->setSubmissionId($article->getId());
125 
126  // Add galleys in the wrong order.
127  $cache->add($articleGalley2, $article);
128  $cache->add($articleGalley1, $article);
129 
130  $cache->markComplete('galleysByArticle', $article->getId());
131 
132  // Retrieve them in the right order.
133  $retrievedGalleys = $cache->get('galleysByArticle', $article->getId());
134  $expectedGalleys = array(
135  3 => $articleGalley1,
136  4 => $articleGalley2
137  );
138  self::assertEquals($expectedGalleys, $retrievedGalleys);
139 
140  // And they should still be cached.
141  self::assertTrue($cache->isCached('galleysByArticle', $article->getId()));
142  }
143 }
144 
PubObjectCacheTest\testAddGalley
testAddGalley()
Definition: PubObjectCacheTest.php:72
Submission
Article class.
Definition: Submission.inc.php:34
ArticleGalley
A galley is a final presentation version of the full-text of an article.
Definition: ArticleGalley.inc.php:19
PKPTestCase
Class that implements functionality common to all PKP unit test cases.
Definition: PKPTestCase.inc.php:27
PubObjectCacheTest\testAddSeveralGalleys
testAddSeveralGalleys()
Definition: PubObjectCacheTest.php:110
PubObjectCacheTest\testAddArticle
testAddArticle()
Definition: PubObjectCacheTest.php:48
PubObjectCacheTest
Test class for PubObjectCache.
Definition: PubObjectCacheTest.php:26
PubObjectCache
A cache for publication objects required during export.
Definition: PubObjectCache.inc.php:17
Issue
Class for Issue.
Definition: Issue.inc.php:25
PubObjectCacheTest\testAddIssue
testAddIssue()
Definition: PubObjectCacheTest.php:30