Open Journal Systems  3.3.0
FormValidatorControlledVocabTest.php
1 <?php
2 
17 import('lib.pkp.tests.PKPTestCase');
18 import('lib.pkp.classes.form.Form');
19 
21 
25  protected function getMockedDAOs() {
26  return array('ControlledVocabDAO');
27  }
28 
33  public function testIsValid() {
34  // Test form
35  $form = new Form('some template');
36 
37  // Mock a ControlledVocab object
38  import('lib.pkp.classes.controlledVocab.ControlledVocab');
39  $mockControlledVocab = $this->getMockBuilder(ControlledVocab::class)
40  ->setMethods(array('enumerate'))
41  ->getMock();
42  $mockControlledVocab->setId(1);
43  $mockControlledVocab->setAssocType(ASSOC_TYPE_CITATION);
44  $mockControlledVocab->setAssocId(333);
45  $mockControlledVocab->setSymbolic('testVocab');
46 
47  // Set up the mock enumerate() method
48  $mockControlledVocab->expects($this->any())
49  ->method('enumerate')
50  ->will($this->returnValue(array(1 => 'vocab1', 2 => 'vocab2')));
51 
52  // Mock the ControlledVocabDAO
53  $mockControlledVocabDao = $this->getMockBuilder(ControlledVocabDAO::class)
54  ->setMethods(array('getBySymbolic'))
55  ->getMock();
56 
57  // Set up the mock getBySymbolic() method
58  $mockControlledVocabDao->expects($this->any())
59  ->method('getBySymbolic')
60  ->with('testVocab', ASSOC_TYPE_CITATION, 333)
61  ->will($this->returnValue($mockControlledVocab));
62 
63  DAORegistry::registerDAO('ControlledVocabDAO', $mockControlledVocabDao);
64 
65  // Instantiate validator
66  $validator = new FormValidatorControlledVocab($form, 'testData', FORM_VALIDATOR_REQUIRED_VALUE, 'some.message.key', 'testVocab', ASSOC_TYPE_CITATION, 333);
67 
68  $form->setData('testData', '1');
69  self::assertTrue($validator->isValid());
70 
71  $form->setData('testData', '2');
72  self::assertTrue($validator->isValid());
73 
74  $form->setData('testData', '3');
75  self::assertFalse($validator->isValid());
76  }
77 }
78 
FormValidatorControlledVocab
Form validation check that checks if value is within a certain set.
Definition: FormValidatorControlledVocab.inc.php:18
PKPTestCase
Class that implements functionality common to all PKP unit test cases.
Definition: PKPTestCase.inc.php:27
FormValidatorControlledVocabTest\testIsValid
testIsValid()
Definition: FormValidatorControlledVocabTest.php:33
DAORegistry\registerDAO
static registerDAO($name, $dao)
Definition: DAORegistry.inc.php:40
FormValidatorControlledVocabTest\getMockedDAOs
getMockedDAOs()
Definition: FormValidatorControlledVocabTest.php:25
Form
Class defining basic operations for handling HTML forms.
Definition: Form.inc.php:47
FormValidatorControlledVocabTest
Test class for FormValidatorControlledVocab.
Definition: FormValidatorControlledVocabTest.php:20