Open Journal Systems  3.3.0
O4DOIObjectCacheTest.inc.php
1 <?php
2 
17 import('lib.pkp.tests.PKPTestCase');
18 import('classes/issue/Issue');
19 import('classes/article/Submission');
20 import('classes/article/ArticleGalley');
21 import('plugins.importexport.medra.classes.O4DOIObjectCache');
22 
27  public function testAddIssue() {
28  $nullVar = null;
29  $cache = new O4DOIObjectCache();
30 
31  $issue = new Issue();
32  $issue->setId('1');
33 
34  self::assertFalse($cache->isCached('issues', $issue->getId()));
35  $cache->add($issue, $nullVar);
36  self::assertTrue($cache->isCached('issues', $issue->getId()));
37 
38  $retrievedIssue = $cache->get('issues', $issue->getId());
39  self::assertEquals($issue, $retrievedIssue);
40  }
41 
45  public function testAddArticle() {
46  $nullVar = null;
47  $cache = new O4DOIObjectCache();
48 
49  $article = new Submission();
50  $article->setId('2');
51  $article->setIssueId('1');
52 
53  self::assertFalse($cache->isCached('articles', $article->getId()));
54  self::assertFalse($cache->isCached('articlesByIssue', $article->getCurrentPublication()->getData('issueId')));
55  self::assertFalse($cache->isCached('articlesByIssue', $article->getCurrentPublication()->getData('issueId'), $article->getId()));
56  $cache->add($article, $nullVar);
57  self::assertTrue($cache->isCached('articles', $article->getId()));
58  self::assertFalse($cache->isCached('articlesByIssue', $article->getCurrentPublication()->getData('issueId')));
59  self::assertTrue($cache->isCached('articlesByIssue', $article->getCurrentPublication()->getData('issueId'), $article->getId()));
60 
61  $retrievedArticle = $cache->get('articles', $article->getId());
62  self::assertEquals($article, $retrievedArticle);
63  }
64 
65 
69  public function testAddGalley() {
70  $nullVar = null;
71  $cache = new O4DOIObjectCache();
72 
73  $article = new Submission();
74  $article->setId('2');
75  $article->setIssueId('1');
76 
77  $articleGalley = new ArticleGalley();
78  $articleGalley->setId('3');
79  $articleGalley->setArticleId($article->getId());
80 
81  self::assertFalse($cache->isCached('galleys', $articleGalley->getId()));
82  self::assertFalse($cache->isCached('galleysByArticle', $article->getId()));
83  self::assertFalse($cache->isCached('galleysByArticle', $article->getId(), $articleGalley->getId()));
84  self::assertFalse($cache->isCached('galleysByIssue', $article->getCurrentPublication()->getData('issueId')));
85  self::assertFalse($cache->isCached('galleysByIssue', $article->getCurrentPublication()->getData('issueId'), $articleGalley->getId()));
86  $cache->add($articleGalley, $article);
87  self::assertTrue($cache->isCached('galleys', $articleGalley->getId()));
88  self::assertFalse($cache->isCached('galleysByArticle', $article->getId()));
89  self::assertTrue($cache->isCached('galleysByArticle', $article->getId(), $articleGalley->getId()));
90  self::assertFalse($cache->isCached('galleysByIssue', $article->getCurrentPublication()->getData('issueId')));
91  self::assertTrue($cache->isCached('galleysByIssue', $article->getCurrentPublication()->getData('issueId'), $articleGalley->getId()));
92 
93  $retrievedArticleGalley1 = $cache->get('galleys', $articleGalley->getId());
94  self::assertEquals($articleGalley, $retrievedArticleGalley1);
95 
96  $retrievedArticleGalley2 = $cache->get('galleysByIssue', $article->getCurrentPublication()->getData('issueId'), $articleGalley->getId());
97  self::assertEquals($retrievedArticleGalley1, $retrievedArticleGalley2);
98 
99  $cache->markComplete('galleysByArticle', $article->getId());
100  self::assertTrue($cache->isCached('galleysByArticle', $article->getId()));
101  self::assertFalse($cache->isCached('galleysByIssue', $article->getCurrentPublication()->getData('issueId')));
102  }
103 
107  public function testAddSeveralGalleys() {
108  $nullVar = null;
109  $cache = new O4DOIObjectCache();
110 
111  $article = new Submission();
112  $article->setId('2');
113  $article->setIssueId('1');
114 
115  $articleGalley1 = new ArticleGalley();
116  $articleGalley1->setId('3');
117  $articleGalley1->setArticleId($article->getId());
118 
119  $articleGalley2 = new ArticleGalley();
120  $articleGalley2->setId('4');
121  $articleGalley2->setArticleId($article->getId());
122 
123  // Add galleys in the wrong order.
124  $cache->add($articleGalley2, $article);
125  $cache->add($articleGalley1, $article);
126 
127  $cache->markComplete('galleysByArticle', $article->getId());
128 
129  // Retrieve them in the right order.
130  $retrievedGalleys = $cache->get('galleysByArticle', $article->getId());
131  $expectedGalleys = array(
132  3 => $articleGalley1,
133  4 => $articleGalley2
134  );
135  self::assertEquals($expectedGalleys, $retrievedGalleys);
136 
137  // And they should still be cached.
138  self::assertTrue($cache->isCached('galleysByArticle', $article->getId()));
139  }
140 }
141 
O4DOIObjectCacheTest\testAddArticle
testAddArticle()
Definition: O4DOIObjectCacheTest.inc.php:45
O4DOIObjectCacheTest\testAddIssue
testAddIssue()
Definition: O4DOIObjectCacheTest.inc.php:27
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
O4DOIObjectCacheTest\testAddGalley
testAddGalley()
Definition: O4DOIObjectCacheTest.inc.php:69
O4DOIObjectCacheTest\testAddSeveralGalleys
testAddSeveralGalleys()
Definition: O4DOIObjectCacheTest.inc.php:107
O4DOIObjectCacheTest
Test class for O4DOIObjectCache.
Definition: O4DOIObjectCacheTest.inc.php:23
Issue
Class for Issue.
Definition: Issue.inc.php:25