root/trunk/tests/definitions/CDataDefinitionTestCase.php

Revision 142, 2.9 kB (checked in by mikey, 3 weeks ago)

upgrade to new namespace separator

Line 
1 <?php
2 /**
3  * Test for CDataDefinition.
4  *
5  * @author  Frank Kleine <mikey@xjconf.net>
6  */
7 Mock::generatePartial('net\xjconf\definitions\CDataDefinition', 'PartialMockCDataDefinition', array('getValueConverter'));
8 Mock::generate('net\xjconf\Tag', 'MockTag');
9 Mock::generate('net\xjconf\converters\ValueConverter', 'MockValueConverter');
10 /**
11  * Test for CDataDefinition.
12  *
13  * @package     XJConf
14  * @subpackage  test_definitions
15  */
16 class CDataDefinitionTestCase extends UnitTestCase
17 {
18     /**
19      * instance to test
20      *
21      * @var  CDataDefinition
22      */
23     protected $cDataDefinition;
24     /**
25      * a mocked tag
26      *
27      * @var  Tag
28      */
29     protected $tag;
30     
31     /**
32      * set up test resources
33      */
34     public function setUp()
35     {
36         $this->cDataDefinition = new PartialMockCDataDefinition();
37         $this->tag             = new MockTag();
38     }
39     
40     /**
41      * test if construction works
42      */
43     public function testConstruct()
44     {
45         $this->cDataDefinition->__construct('int');
46         $this->assertEqual($this->cDataDefinition->getName(), 'data');
47         $this->assertEqual($this->cDataDefinition->getType(), 'int');
48         
49         $this->cDataDefinition->__construct('');
50         $this->assertEqual($this->cDataDefinition->getName(), 'data');
51         $this->assertEqual($this->cDataDefinition->getType(), 'string');
52         
53         $this->cDataDefinition->__construct();
54         $this->assertEqual($this->cDataDefinition->getName(), 'data');
55         $this->assertEqual($this->cDataDefinition->getType(), 'string');
56     }
57     
58     /**
59      * test that the setter method is as expected
60      */
61     public function testSetterMethod()
62     {
63         $this->cDataDefinition->__construct();
64         $this->assertEqual($this->cDataDefinition->getSetterMethod($this->tag), 'setData');
65         $this->cDataDefinition->setSetterMethod('setFoo');
66         $this->assertEqual($this->cDataDefinition->getSetterMethod($this->tag), 'setFoo');
67     }
68     
69     /**
70      * test that converting the value works as expected
71      */
72     public function testConvertValue()
73     {
74         $this->cDataDefinition->__construct();
75         $mockValueConverter = new MockValueConverter();
76         $mockValueConverter->setReturnValue('convertValue', 'bar');
77         $mockValueConverter->expectCallcount('convertValue', 1);
78         $this->cDataDefinition->setReturnValue('getValueConverter', $mockValueConverter);
79         $this->assertEqual($this->cDataDefinition->convertValue($this->tag), 'bar');
80     }
81     
82     /**
83      * test that the child related methods always return the same
84      */
85     public function testChildMethods()
86     {
87         $this->cDataDefinition->__construct();
88         $mockDefinition = 'MockDefinition';
89         $this->assertFalse($this->cDataDefinition->hasChildDefinition($mockDefinition));
90         $this->assertNull($this->cDataDefinition->getChildDefinition($mockDefinition));
91         $this->assertEqual($this->cDataDefinition->getChildDefinitions(), array());
92     }
93 }
94 ?>
Note: See TracBrowser for help on using the browser.