Changeset 1269
- Timestamp:
- 01/20/08 15:01:58 (1 year ago)
- Files:
-
- trunk/src/test/AllTests.php (modified) (2 diffs)
- trunk/src/test/php/net/stubbles/websites/WebsitesTestSuite.php (modified) (1 diff)
- trunk/src/test/php/net/stubbles/websites/variantmanager/VariantManagerTestSuite.php (modified) (1 diff)
- trunk/src/test/php/net/stubbles/websites/variantmanager/stubVariantXJConfFactoryTestCase.php (modified) (4 diffs)
- trunk/src/test/php/net/stubbles/websites/variantmanager/stubVariantsMapTestCase.php (modified) (14 diffs)
- trunk/src/test/php/net/stubbles/websites/variantmanager/stubVariantsPreInterceptorCookieVariantTestCase.php (modified) (9 diffs)
- trunk/src/test/php/net/stubbles/websites/variantmanager/stubVariantsPreInterceptorProcessTestCase.php (modified) (12 diffs)
- trunk/src/test/php/net/stubbles/websites/variantmanager/types/stubAbstractVariantTestCase.php (modified) (9 diffs)
- trunk/src/test/php/net/stubbles/websites/variantmanager/types/stubDummyVariantTestCase.php (modified) (2 diffs)
- trunk/src/test/php/net/stubbles/websites/variantmanager/types/stubLeadVariantTestCase.php (modified) (2 diffs)
- trunk/src/test/php/net/stubbles/websites/variantmanager/types/stubRandomVariantTestCase.php (modified) (10 diffs)
- trunk/src/test/php/net/stubbles/websites/variantmanager/types/stubRequestParamVariantTestCase.php (modified) (9 diffs)
- trunk/src/test/php/net/stubbles/websites/variantmanager/types/stubRootVariantTestCase.php (modified) (3 diffs)
- trunk/src/test/run.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/test/AllTests.php
r1252 r1269 28 28 require_once $dir . '/php/net/stubbles/ioc/IOCTestSuite.php'; 29 29 require_once $dir . '/php/net/stubbles/websites/WebsitesTestSuite.php'; 30 require_once $dir . '/php/net/stubbles/websites/variantmanager/VariantManagerTestSuite.php'; 30 31 /** 31 32 * Class to organize all tests. … … 57 58 $suite->addTestSuite('IOCTestSuite'); 58 59 $suite->addTestSuite('WebsitesTestSuite'); 60 $suite->addTestSuite('VariantManagerTestSuite'); 59 61 return $suite; 60 62 } trunk/src/test/php/net/stubbles/websites/WebsitesTestSuite.php
r1262 r1269 26 26 { 27 27 $suite = new self(); 28 $dir = dirname(__FILE__);28 $dir = dirname(__FILE__); 29 29 $suite->addTestFile($dir . '/stubFrontControllerTestCase.php'); 30 30 $suite->addTestFile($dir . '/stubPageTestCase.php'); trunk/src/test/php/net/stubbles/websites/variantmanager/VariantManagerTestSuite.php
r551 r1269 13 13 * @subpackage test 14 14 */ 15 class VariantManagerTestSuite extends TestSuite15 class VariantManagerTestSuite extends PHPUnit_Framework_TestSuite 16 16 { 17 17 /** 18 * constructor 18 * returns the test suite to be run 19 * 20 * @return PHPUnit_Framework_TestSuite 19 21 */ 20 public function __construct()22 public static function suite() 21 23 { 22 $this->TestSuite('All VariantManager tests'); 23 $this->addTestFile(dirname(__FILE__) . '/types/stubAbstractVariantTestCase.php'); 24 $this->addTestFile(dirname(__FILE__) . '/types/stubDummyVariantTestCase.php'); 25 $this->addTestFile(dirname(__FILE__) . '/types/stubLeadVariantTestCase.php'); 26 $this->addTestFile(dirname(__FILE__) . '/types/stubRandomVariantTestCase.php'); 27 $this->addTestFile(dirname(__FILE__) . '/types/stubRequestParamVariantTestCase.php'); 28 $this->addTestFile(dirname(__FILE__) . '/types/stubRootVariantTestCase.php'); 29 $this->addTestFile(dirname(__FILE__) . '/stubVariantsMapTestCase.php'); 30 $this->addTestFile(dirname(__FILE__) . '/stubVariantsPreInterceptorCookieVariantTestCase.php'); 31 $this->addTestFile(dirname(__FILE__) . '/stubVariantsPreInterceptorProcessTestCase.php'); 32 $this->addTestFile(dirname(__FILE__) . '/stubVariantXJConfFactoryTestCase.php'); 24 $suite = new self(); 25 $dir = dirname(__FILE__); 26 $suite->addTestFile($dir . '/types/stubAbstractVariantTestCase.php'); 27 $suite->addTestFile($dir . '/types/stubDummyVariantTestCase.php'); 28 $suite->addTestFile($dir . '/types/stubLeadVariantTestCase.php'); 29 $suite->addTestFile($dir . '/types/stubRandomVariantTestCase.php'); 30 $suite->addTestFile($dir . '/types/stubRequestParamVariantTestCase.php'); 31 $suite->addTestFile($dir . '/types/stubRootVariantTestCase.php'); 32 $suite->addTestFile($dir . '/stubVariantsMapTestCase.php'); 33 $suite->addTestFile($dir . '/stubVariantsPreInterceptorCookieVariantTestCase.php'); 34 $suite->addTestFile($dir . '/stubVariantsPreInterceptorProcessTestCase.php'); 35 $suite->addTestFile($dir . '/stubVariantXJConfFactoryTestCase.php'); 36 return $suite; 33 37 } 34 38 } trunk/src/test/php/net/stubbles/websites/variantmanager/stubVariantXJConfFactoryTestCase.php
r1231 r1269 28 28 * @subpackage websites_variantmanager_test 29 29 */ 30 class stubVariantXJConfFactoryTestCase extends UnitTestCase30 class stubVariantXJConfFactoryTestCase extends PHPUnit_Framework_TestCase 31 31 { 32 32 /** … … 63 63 /** 64 64 * test descriptor 65 * 66 * @test 65 67 */ 66 public function testDescriptor()68 public function descriptor() 67 69 { 68 $this->assertEqual ($this->variantXJConfFactory->getDescriptor(stubXJConfInitializer::DESCRIPTOR_CONFIG), 'variantmanager');69 $this->assertEqual ($this->variantXJConfFactory->getDescriptor(stubXJConfInitializer::DESCRIPTOR_DEFINITION), 'variantmanager');70 $this->assertEquals('variantmanager', $this->variantXJConfFactory->getDescriptor(stubXJConfInitializer::DESCRIPTOR_CONFIG)); 71 $this->assertEquals('variantmanager', $this->variantXJConfFactory->getDescriptor(stubXJConfInitializer::DESCRIPTOR_DEFINITION)); 70 72 } 71 73 72 74 /** 73 75 * check that the cache data is correct 76 * 77 * @test 74 78 */ 75 public function testGetCacheData()79 public function getCacheData() 76 80 { 77 81 $variantsMap = new stubVariantsMap($this->rootVariant); … … 80 84 $this->variantXJConfFactory->setVariantsMap($variantsMap); 81 85 $cacheData = $this->variantXJConfFactory->getCacheData(); 82 $this->assertEqual ($cacheData['name'], 'foo');86 $this->assertEquals('foo', $cacheData['name']); 83 87 $this->assertTrue($cacheData['usePersistence']); 84 $this->assert IsA($cacheData['rootVariant'], 'stubSerializedObject');88 $this->assertType('stubSerializedObject', $cacheData['rootVariant']); 85 89 } 86 90 87 91 /** 88 92 * check that cache data is used correct 93 * 94 * @test 89 95 */ 90 public function testSetCacheData()96 public function setCacheData() 91 97 { 92 98 $cacheData = array('name' => 'foo', … … 96 102 $this->variantXJConfFactory->setCacheData($cacheData); 97 103 $variantsMap = $this->variantXJConfFactory->getVariantsMap(); 98 $this->assertEqual ($variantsMap->getName(), 'foo');99 $this->assert Equal($variantsMap->shouldUsePersistence(), true);100 $this->assertEqual ($variantsMap->getVariantNames(), array('v1', 'v2', 'v3'));104 $this->assertEquals('foo', $variantsMap->getName()); 105 $this->assertTrue($variantsMap->shouldUsePersistence()); 106 $this->assertEquals(array('v1', 'v2', 'v3'), $variantsMap->getVariantNames()); 101 107 } 102 108 } trunk/src/test/php/net/stubbles/websites/variantmanager/stubVariantsMapTestCase.php
r1231 r1269 11 11 'net::stubbles::websites::variantmanager::types::stubLeadVariant' 12 12 ); 13 Mock::generate('stubRequest');14 Mock::generate('stubSession');15 13 /** 16 14 * Test for net::stubbles::websites::variantmanager::stubVariantsMap. … … 19 17 * @subpackage websites_variantmanager_test 20 18 */ 21 class stubVariantsMapTestCase extends UnitTestCase19 class stubVariantsMapTestCase extends PHPUnit_Framework_TestCase 22 20 { 23 21 /** … … 30 28 * the mocked session 31 29 * 32 * @var SimpleMock30 * @var PHPUnit_Framework_MockObject_MockObject 33 31 */ 34 32 protected $mockSession; … … 36 34 * the mocked request 37 35 * 38 * @var SimpleMock36 * @var PHPUnit_Framework_MockObject_MockObject 39 37 */ 40 38 protected $mockRequest; … … 64 62 { 65 63 $this->variantMap = new stubVariantsMap(); 66 $this->mockSession = new MockstubSession();67 $this->mockRequest = new MockstubRequest();64 $this->mockSession = $this->getMock('stubSession'); 65 $this->mockRequest = $this->getMock('stubRequest'); 68 66 $this->v1 = new stubLeadVariant(); 69 67 $this->v1->setName('v1'); … … 76 74 /** 77 75 * assure that name is handled correct 78 */ 79 public function testName() 76 * 77 * @test 78 */ 79 public function name() 80 80 { 81 81 $this->assertNull($this->variantMap->getName()); 82 82 $this->variantMap->setName('foo'); 83 $this->assertEqual ($this->variantMap->getName(), 'foo');83 $this->assertEquals('foo', $this->variantMap->getName()); 84 84 } 85 85 86 86 /** 87 87 * assure that persistence is handled correct 88 */ 89 public function testUsePersistence() 88 * 89 * @test 90 */ 91 public function usePersistence() 90 92 { 91 93 $this->assertTrue($this->variantMap->shouldUsePersistence()); … … 96 98 /** 97 99 * test handling with no variants configured 98 */ 99 public function testNoVariant() 100 { 101 $this->assertEqual($this->variantMap->getVariants(), array()); 100 * 101 * @test 102 */ 103 public function noVariant() 104 { 105 $this->assertEquals(array(), $this->variantMap->getVariants()); 102 106 $this->assertNull($this->variantMap->getVariantByName('foo')); 103 $this->assertEqual ($this->variantMap->getVariantNames(), array());107 $this->assertEquals(array(), $this->variantMap->getVariantNames()); 104 108 $this->assertFalse($this->variantMap->variantExists('foo')); 105 109 $this->assertFalse($this->variantMap->isVariantValid('foo', $this->mockSession, $this->mockRequest)); 106 110 $this->assertNull($this->variantMap->getEnforcingVariant($this->mockSession, $this->mockRequest)); 107 $this->expectException('stubVariantConfigurationException'); 111 } 112 113 /** 114 * test handling with no variants configured 115 * 116 * @test 117 * @expectedException stubVariantConfigurationException 118 */ 119 public function noVariantThrowsExceptionIfVariantIsRequested() 120 { 108 121 $this->variantMap->getVariant($this->mockSession, $this->mockRequest); 109 122 } … … 111 124 /** 112 125 * test handling with one variant 113 */ 114 public function testOneVariant() 126 * 127 * @test 128 */ 129 public function oneVariant() 115 130 { 116 131 $this->variantMap->addChild($this->v1); … … 118 133 // $this->assertEqual($this->variantMap->getVariants(), array('v1' => $this->v1)); 119 134 $variantTest1 = $this->variantMap->getVariantByName('v1'); 120 $this->assert Reference($variantTest1, $this->v1);121 $this->assertEqual ($this->variantMap->getVariantNames(), array('v1'));135 $this->assertSame($this->v1, $variantTest1); 136 $this->assertEquals(array('v1'), $this->variantMap->getVariantNames()); 122 137 $this->assertTrue($this->variantMap->variantExists('v1')); 123 138 $this->assertTrue($this->variantMap->isVariantValid('v1', $this->mockSession, $this->mockRequest)); 124 139 $this->assertNull($this->variantMap->getEnforcingVariant($this->mockSession, $this->mockRequest)); 125 140 $variantTest2 = $this->variantMap->getVariant($this->mockSession, $this->mockRequest); 126 $this->assert Reference($variantTest2, $this->v1);141 $this->assertSame($this->v1, $variantTest2); 127 142 } 128 143 129 144 /** 130 145 * Tests that all nested variants are found 131 */ 132 public function testNestedVariant() 146 * 147 * @test 148 */ 149 public function nestedVariant() 133 150 { 134 151 $this->v2->addChild($this->v3); … … 142 159 /** 143 160 * Test that no enforcing variant is returned when there is no enforcing variant set 144 */ 145 public function testEnforcingVariantIsNullIfRoot() 161 * 162 * @test 163 */ 164 public function enforcingVariantIsNullIfRoot() 146 165 { 147 166 $this->variantMap->addChild($this->v3); … … 154 173 /** 155 174 * Tests that the variant are handled as references and returned by their name 156 */ 157 public function testGetVariantByName() 175 * 176 * @test 177 */ 178 public function getVariantByName() 158 179 { 159 180 $this->variantMap->addChild($this->v3); … … 161 182 $this->variantMap->addChild($this->v1); 162 183 163 $this->assert Reference($this->variantMap->getVariantByName('v1'), $this->v1);164 $this->assert Reference($this->variantMap->getVariantByName('v2'), $this->v2);165 $this->assert Reference($this->variantMap->getVariantByName('v3'), $this->v3);184 $this->assertSame($this->v1, $this->variantMap->getVariantByName('v1')); 185 $this->assertSame($this->v2, $this->variantMap->getVariantByName('v2')); 186 $this->assertSame($this->v3, $this->variantMap->getVariantByName('v3')); 166 187 } 167 188 168 189 /** 169 190 * Test that all variant names will be returned 170 */ 171 public function testGetVariantNames() 191 * 192 * @test 193 */ 194 public function getVariantNames() 172 195 { 173 196 $this->v1->addChild($this->v2); … … 175 198 $this->variantMap->addChild($this->v1); 176 199 177 $this->assertEqual ($this->variantMap->getVariantNames(), array('v1', 'v2', 'v3'));200 $this->assertEquals(array('v1', 'v2', 'v3'), $this->variantMap->getVariantNames()); 178 201 } 179 202 180 203 /** 181 204 * test creating the variants map with a root variant as argument 182 */ 183 public function testWithRootArgument() 205 * 206 * @test 207 */ 208 public function withRootArgument() 184 209 { 185 210 $rootVariant = new stubRootVariant(); … … 189 214 $variantMap = new stubVariantsMap($rootVariant); 190 215 191 $this->assertEqual ($variantMap->getVariantNames(), array('v1', 'v2', 'v3'));192 $this->assert Reference($variantMap->getVariantByName('v1'), $this->v1);193 $this->assert Reference($variantMap->getVariantByName('v2'), $this->v2);194 $this->assert Reference($variantMap->getVariantByName('v3'), $this->v3);216 $this->assertEquals(array('v1', 'v2', 'v3'), $variantMap->getVariantNames()); 217 $this->assertSame($this->v1, $variantMap->getVariantByName('v1')); 218 $this->assertSame($this->v2, $variantMap->getVariantByName('v2')); 219 $this->assertSame($this->v3, $variantMap->getVariantByName('v3')); 195 220 } 196 221 } trunk/src/test/php/net/stubbles/websites/variantmanager/stubVariantsPreInterceptorCookieVariantTestCase.php
r1231 r1269 12 12 'net::stubbles::websites::variantmanager::types::stubVariant' 13 13 ); 14 Mock::generate('stubRequest');15 Mock::generate('stubSession');16 Mock::generate('stubResponse');17 Mock::generate('stubVariant');18 Mock::generate('stubVariantFactory');19 Mock::generate('stubVariantsMap');20 14 class TestVariantsPreInterceptor extends stubVariantsPreInterceptor 21 15 { … … 31 25 * @subpackage websites_variantmanager_test 32 26 */ 33 class stubVariantsPreInterceptorCookieVariantTestCase extends UnitTestCase27 class stubVariantsPreInterceptorCookieVariantTestCase extends PHPUnit_Framework_TestCase 34 28 { 35 29 /** … … 42 36 * the mocked request 43 37 * 44 * @var SimpleMock38 * @var PHPUnit_Framework_MockObject_MockObject 45 39 */ 46 40 protected $mockRequest; … … 48 42 * the mocked session 49 43 * 50 * @var SimpleMock44 * @var PHPUnit_Framework_MockObject_MockObject 51 45 */ 52 46 protected $mockSession; … … 54 48 * a mocked variant factory 55 49 * 56 * @var SimpleMock50 * @var PHPUnit_Framework_MockObject_MockObject 57 51 */ 58 52 protected $mockVariantFactory; … … 60 54 * a mocked variants map 61 55 * 62 * @var SimpleMock56 * @var PHPUnit_Framework_MockObject_MockObject 63 57 */ 64 58 protected $mockVariantsMap; … … 70 64 { 71 65 $this->variantPreInterceptor = new TestVariantsPreInterceptor(); 72 $this->mockRequest = new MockstubRequest(); 73 $this->mockSession = new MockstubSession(); 74 $this->mockVariantFactory = new MockstubVariantFactory(); 75 $this->mockVariantsMap = new MockstubVariantsMap(); 76 $this->mockVariantFactory->setReturnValue('getVariantsMap', $this->mockVariantsMap); 66 $this->mockSession = $this->getMock('stubSession'); 67 $this->mockRequest = $this->getMock('stubRequest'); 68 $this->mockVariantFactory = $this->getMock('stubVariantFactory'); 69 $this->mockVariantsMap = $this->getMock('stubVariantsMap'); 70 $this->mockVariantFactory->expects($this->any()) 71 ->method('getVariantsMap') 72 ->will($this->returnValue($this->mockVariantsMap)); 77 73 } 78 74 79 75 /** 80 76 * assure that no cookie returns no variant 77 * 78 * @test 81 79 */ 82 public function testNoCookie()80 public function noCookie() 83 81 { 84 $this->mockRequest-> setReturnValue('hasValue', false);82 $this->mockRequest->expects($this->once())->method('hasValue')->will($this->returnValue(false)); 85 83 $this->assertNull($this->variantPreInterceptor->getCookieVariant($this->mockRequest, $this->mockSession, $this->mockVariantFactory, 'variant')); 86 84 } … … 88 86 /** 89 87 * assure that an invalid cookie will not be used anymore 88 * 89 * @test 90 90 */ 91 public function testInvalidCookie()91 public function invalidCookie() 92 92 { 93 $this->mockRequest-> setReturnValue('hasValue', true);94 $this->mockRequest-> setReturnValue('getValidatedValue', null);95 $this->mockVariantFactory-> setReturnValue('getVariantNames', array());93 $this->mockRequest->expects($this->once())->method('hasValue')->will($this->returnValue(true)); 94 $this->mockRequest->expects($this->once())->method('getValidatedValue')->will($this->returnValue(null)); 95 $this->mockVariantFactory->expects($this->once())->method('getVariantNames')->will($this->returnValue(array())); 96 96 $this->assertNull($this->variantPreInterceptor->getCookieVariant($this->mockRequest, $this->mockSession, $this->mockVariantFactory, 'variant')); 97 97 } … … 99 99 /** 100 100 * assure that a valid cookie will be used when no enforcing variant is set 101 * 102 * @test 101 103 */ 102 public function testValidCookieWithoutEnforcingVariant()104 public function validCookieWithoutEnforcingVariant() 103 105 { 104 $this->mockRequest->setReturnValue('hasValue', true); 105 $this->mockRequest->setReturnValue('getValidatedValue', 'fooVariant'); 106 $this->mockVariantFactory->setReturnValue('getVariantNames', array()); 107 $fooVariant = new MockstubVariant(); 108 $fooVariant->setReturnValue('getName', 'fooVariant'); 109 $this->mockVariantFactory->expect('getVariantByName', array('fooVariant')); 110 $this->mockVariantFactory->setReturnValue('getVariantByName', $fooVariant); 111 $this->mockVariantsMap->setReturnValue('getEnforcingVariant', null); 106 $this->mockRequest->expects($this->once())->method('hasValue')->will($this->returnValue(true)); 107 $this->mockRequest->expects($this->once())->method('getValidatedValue')->will($this->returnValue('fooVariant')); 108 $this->mockVariantFactory->expects($this->once())->method('getVariantNames')->will($this->returnValue(array())); 109 $fooVariant = $this->getMock('stubVariant'); 110 $fooVariant->expects($this->any())->method('getName')->will($this->returnValue('fooVariant')); 111 $this->mockVariantFactory->expects($this->once())->method('getVariantByName')->will($this->returnValue($fooVariant)); 112 $this->mockVariantsMap->expects($this->once())->method('getEnforcingVariant')->will($this->returnValue(null)); 112 113 $resultVariant = $this->variantPreInterceptor->getCookieVariant($this->mockRequest, $this->mockSession, $this->mockVariantFactory, 'variant'); 113 $this->assert Reference($fooVariant, $resultVariant);114 $this->assertSame($fooVariant, $resultVariant); 114 115 } 115 116 116 117 /** 117 118 * assure that a valid cookie will be used when enforcing variant is not a parent variant 119 * 120 * @test 118 121 */ 119 public function testValidCookieWithInvalidEnforcingVariant()122 public function validCookieWithInvalidEnforcingVariant() 120 123 { 121 $this->mockRequest->setReturnValue('hasValue', true); 122 $this->mockRequest->setReturnValue('getValidatedValue', 'fooVariant'); 123 $this->mockVariantFactory->setReturnValue('getVariantNames', array()); 124 $fooVariant = new MockstubVariant(); 125 $fooVariant->setReturnValue('getName', 'fooVariant'); 126 $this->mockVariantFactory->expect('getVariantByName', array('fooVariant')); 127 $this->mockVariantFactory->setReturnValue('getVariantByName', $fooVariant); 128 $barVariant = new MockstubVariant(); 129 $barVariant->setReturnValue('getName', 'barVariant'); 130 $this->mockVariantsMap->setReturnValue('getEnforcingVariant', $barVariant); 124 $this->mockRequest->expects($this->once())->method('hasValue')->will($this->returnValue(true)); 125 $this->mockRequest->expects($this->once())->method('getValidatedValue')->will($this->returnValue('fooVariant')); 126 $this->mockVariantFactory->expects($this->once())->method('getVariantNames')->will($this->returnValue(array())); 127 $fooVariant = $this->getMock('stubVariant'); 128 $fooVariant->expects($this->any())->method('getName')->will($this->returnValue('fooVariant')); 129 $this->mockVariantFactory->expects($this->once())->method('getVariantByName')->will($this->returnValue($fooVariant)); 130 $barVariant = $this->getMock('stubVariant'); 131 $barVariant->expects($this->any())->method('getName')->will($this->returnValue('barVariant')); 132 $this->mockVariantsMap->expects($this->once())->method('getEnforcingVariant')->will($this->returnValue($barVariant)); 131 133 $resultVariant = $this->variantPreInterceptor->getCookieVariant($this->mockRequest, $this->mockSession, $this->mockVariantFactory, 'variant'); 132 $this->assert Reference($fooVariant, $resultVariant);134 $this->assertSame($fooVariant, $resultVariant); 133 135 } 134 136 135 137 /** 136 138 * assure that a enforcing variant will be used if set and cookie is valid 139 * 140 * @test 137 141 */ 138 public function testValidCookieWithValidEnforcingVariant()142 public function validCookieWithValidEnforcingVariant() 139 143 { 140 $this->mockRequest->setReturnValue('hasValue', true); 141 $this->mockRequest->setReturnValue('getValidatedValue', 'fooVariant'); 142 $this->mockVariantFactory->setReturnValue('getVariantNames', array()); 143 $fooVariant = new MockstubVariant(); 144 $fooVariant->setReturnValue('getName', 'fooVariant'); 145 $this->mockVariantFactory->expect('getVariantByName', array('fooVariant')); 146 $this->mockVariantFactory->setReturnValue('getVariantByName', $fooVariant); 147 $barVariant = new MockstubVariant(); 148 $barVariant->setReturnValue('getName', 'foo'); 149 $this->mockVariantsMap->setReturnValue('getEnforcingVariant', $barVariant); 144 $this->mockRequest->expects($this->once())->method('hasValue')->will($this->returnValue(true)); 145 $this->mockRequest->expects($this->once())->method('getValidatedValue')->will($this->returnValue('fooVariant')); 146 $this->mockVariantFactory->expects($this->once())->method('getVariantNames')->will($this->returnValue(array())); 147 $fooVariant = $this->getMock('stubVariant'); 148 $fooVariant->expects($this->any())->method('getName')->will($this->returnValue('fooVariant')); 149 $this->mockVariantFactory->expects($this->once())->method('getVariantByName')->will($this->returnValue($fooVariant)); 150 $barVariant = $this->getMock('stubVariant'); 151 $barVariant->expects($this->any())->method('getName')->will($this->returnValue('foo')); 152 $this->mockVariantsMap->expects($this->once())->method('getEnforcingVariant')->will($this->returnValue($barVariant)); 150 153 $resultVariant = $this->variantPreInterceptor->getCookieVariant($this->mockRequest, $this->mockSession, $this->mockVariantFactory, 'variant'); 151 $this->assert Reference($barVariant, $resultVariant);154 $this->assertSame($barVariant, $resultVariant); 152 155 } 153 156 } trunk/src/test/php/net/stubbles/websites/variantmanager/stubVariantsPreInterceptorProcessTestCase.php
r1231 r1269 12 12 'net::stubbles::websites::variantmanager::types::stubVariant' 13 13 ); 14 Mock::generate('stubRequest'); 15 Mock::generate('stubSession'); 16 Mock::generate('stubResponse'); 17 Mock::generate('stubVariant'); 18 Mock::generate('stubVariantFactory'); 19 Mock::generate('stubVariantsMap'); 20 Mock::generatePartial('stubVariantsPreInterceptor', 'PartialMockstubVariantsPreInterceptor', array('createVariantFactory', 'createCookie', 'getVariantFromCookie')); 14 21 15 class TestInvalidVariantFactory {} 22 16 /** … … 26 20 * @subpackage websites_variantmanager_test 27 21 */ 28 class stubVariantsPreInterceptorProcessTestCase extends UnitTestCase22 class stubVariantsPreInterceptorProcessTestCase extends PHPUnit_Framework_TestCase 29 23 { 30 24 /** … … 37 31 * the mocked request 38 32 * 39 * @var SimpleMock33 * @var PHPUnit_Framework_MockObject_MockObject 40 34 */ 41 35 protected $mockRequest; … … 43 37 * the mocked session 44 38 * 45 * @var SimpleMock39 * @var PHPUnit_Framework_MockObject_MockObject 46 40 */ 47 41 protected $mockSession; … … 49 43 * the mocked response 50 44 * 51 * @var SimpleMock45 * @var PHPUnit_Framework_MockObject_MockObject 52 46 */ 53 47 protected $mockResponse; … … 55 49 * a mocked variant factory 56 50 * 57 * @var SimpleMock51 * @var PHPUnit_Framework_MockObject_MockObject 58 52 */ 59 53 protected $mockVariantFactory; … … 61 55 * a mocked variants map 62 56 * 63 * @var SimpleMock57 * @var PHPUnit_Framework_MockObject_MockObject 64 58 */ 65 59 protected $mockVariantsMap; … … 70 64 public function setUp() 71 65 { 72 $this->variantPreInterceptor = new PartialMockstubVariantsPreInterceptor(); 73 $this->mockRequest = new MockstubRequest(); 74 $this->mockSession = new MockstubSession(); 75 $this->mockResponse = new MockstubResponse(); 76 $this->mockVariantFactory = new MockstubVariantFactory(); 77 $this->mockVariantsMap = new MockstubVariantsMap(); 78 $this->mockVariantFactory->setReturnValue('getVariantsMap', $this->mockVariantsMap); 79 stubRegistry::setConfig('net.stubbles.websites.variantmanager.variantfactory.class', 'MockstubVariantFactory'); 66 $this->variantPreInterceptor = $this->getMock('stubVariantsPreInterceptor', 67 array('createVariantFactory', 68 'createCookie', 69 'getVariantFromCookie' 70 ) 71 ); 72 $this->mockSession = $this->getMock('stubSession'); 73 $this->mockRequest = $this->getMock('stubRequest'); 74 $this->mockResponse = $this->getMock('stubResponse'); 75 $this->mockVariantFactory = $this->getMock('stubVariantFactory'); 76 $this->mockVariantsMap = $this->getMock('stubVariantsMap'); 77 $this->mockVariantFactory->expects($this->any()) 78 ->method('getVariantsMap') 79 ->will($this->returnValue($this->mockVariantsMap)); 80 stubRegistry::setConfig('net.stubbles.websites.variantmanager.variantfactory.class', get_class($this->mockVariantFactory)); 80 81 } 81 82 82 83 /** 83 84 * assure that an existing variant will not be overwritten by another variant 84 */ 85 public function testVariantAlreadyExists() 86 { 87 $this->mockSession->setReturnValue('hasValue', true); 88 $this->mockSession->expectNever('putValue'); 89 $this->mockResponse->expectNever('setCookie'); 85 * 86 * @test 87 */ 88 public function variantAlreadyExists() 89 { 90 $this->mockSession->expects($this->once())->method('hasValue')->will($this->returnValue(true)); 91 $this->mockSession->expects($this->never())->method('putValue'); 92 $this->mockResponse->expects($this->never())->method('setCookie'); 90 93 $this->variantPreInterceptor->preProcess($this->mockRequest, $this->mockSession, $this->mockResponse); 91 94 } … … 93 96 /** 94 97 * assure that an invalid variant factory classname configurationt throws a stubVariantConfigurationException 95 */ 96 public function testInvalidVariantFactory() 97 { 98 $this->mockSession->setReturnValue('hasValue', false); 99 $this->mockSession->expectNever('putValue'); 100 $this->mockResponse->expectNever('setCookie'); 98 * 99 * @test 100 * @expectedException stubVariantConfigurationException 101 */ 102 public function invalidVariantFactory() 103 { 104 $this->mockSession->expects($this->once())->method('hasValue')->will($this->returnValue(false)); 105 $this->mockSession->expects($this->never())->method('putValue'); 106 $this->mockResponse->expects($this->never())->method('setCookie'); 101 107 stubRegistry::setConfig('net.stubbles.websites.variantmanager.variantfactory.class', 'TestInvalidVariantFactory'); 102 $this->variantPreInterceptor->expect('createVariantFactory', array('TestInvalidVariantFactory')); 103 $this->variantPreInterceptor->setReturnValue('createVariantFactory', new TestInvalidVariantFactory()); 104 $this->expectException('stubVariantConfigurationException'); 108 $this->variantPreInterceptor->expects($this->once())->method('createVariantFactory')->will($this->returnValue(new TestInvalidVariantFactory())); 105 109 $this->variantPreInterceptor->preProcess($this->mockRequest, $this->mockSession, $this->mockResponse); 106 110 } … … 108 112 /** 109 113 * assure that no variant cookie triggers a new variant 110 */ 111 public function testNoVariantCookieSet() 112 { 113 $mockVariant = new MockstubVariant(); 114 $mockVariant->setReturnValue('getName', 'variantName'); 115 $mockVariant->setReturnValue('getFullQualifiedName', 'foo:variantName'); 116 $this->mockSession->setReturnValue('hasValue', false); 117 $this->mockSession->expectOnce('putValue', array('net.stubbles.websites.variantmanager.variant', 'foo:variantName')); 118 $this->mockResponse->expectOnce('setCookie'); 119 $this->mockRequest->setReturnValue('hasValue', false); 120 $this->mockRequest->expect('hasValue', array('variant', stubRequest::SOURCE_COOKIE)); 121 $this->variantPreInterceptor->setReturnValue('createVariantFactory', $this->mockVariantFactory); 122 $this->variantPreInterceptor->setReturnValue('getVariantFromCookie', null); 123 $this->mockVariantsMap->setReturnValue('shouldUsePersistence', true); 124 $this->mockVariantsMap->setReturnValue('getVariant', $mockVariant); 125 $this->variantPreInterceptor->expect('createCookie', array('variant', 'variantName', '*', null, '/')); 126 $this->variantPreInterceptor->setReturnValue('createCookie', stubCookie::create('variant', 'variantName')); 114 * 115 * @test 116 */ 117 public function noVariantCookieSet() 118 { 119 $mockNewVariant = $this->getMock('stubVariant'); 120 $mockNewVariant->expects($this->any())->method('getName')->will($this->returnValue('variantName')); 121 $mockNewVariant->expects($this->any())->method('getFullQualifiedName')->will($this->returnValue('foo:variantName')); 122 $this->mockSession->expects($this->once())->method('hasValue')->will($this->returnValue(false)); 123 $this->mockSession->expects($this->once()) 124 ->method('putValue') 125 ->with($this->equalTo('net.stubbles.websites.variantmanager.variant'), 126 $this->equalTo('foo:variantName') 127 ); 128 $this->mockResponse->expects($this->once())->method('setCookie'); 129 $this->variantPreInterceptor->expects($this->once())->method('createVariantFactory')->will($this->returnValue($this->mockVariantFactory)); 130 $this->variantPreInterceptor->expects($this->once())->method('getVariantFromCookie')->will($this->returnValue(null)); 131 $this->mockVariantsMap->expects($this->once())->method('shouldUsePersistence')->will($this->returnValue(true)); 132 $this->mockVariantsMap->expects($this->once())->method('getVariant')->will($this->returnValue($mockNewVariant)); 133 $this->variantPreInterceptor->expects($this->once()) 134 ->method('createCookie') 135 ->with($this->equalTo('variant'), 136 $this->equalTo('variantName'), 137 $this->anything(), 138 $this->equalTo(null), 139 $this->equalTo('/') 140 ) 141 ->will($this->returnValue(stubCookie::create('variant', 'variantName'))); 127 142 $this->variantPreInterceptor->preProcess($this->mockRequest, $this->mockSession, $this->mockResponse); 128 143 } … … 130 145 /** 131 146 * assure that disabled persistence triggers a new variant 132 */ 133 public function testNoPersistence() 134 { 135 $mockNewVariant = new MockstubVariant(); 136 $mockNewVariant->setReturnValue('getName', 'new'); 137 $mockNewVariant->setReturnValue('getFullQualifiedName', 'foo:new'); 138 $mockCookieVariant = new MockstubVariant(); 139 $mockCookieVariant->setReturnValue('getName', 'cookie'); 140 $mockCookieVariant->setReturnValue('getFullQualifiedName', 'foo:cookie'); 141 $this->mockSession->setReturnValue('hasValue', false); 142 $this->mockSession->expectOnce('putValue', array('net.stubbles.websites.variantmanager.variant', 'foo:new')); 143 $this->mockResponse->expectOnce('setCookie'); 144 $this->mockRequest->setReturnValue('hasValue', false); 145 $this->mockRequest->expect('hasValue', array('variant', stubRequest::SOURCE_COOKIE)); 146 $this->variantPreInterceptor->setReturnValue('createVariantFactory', $this->mockVariantFactory); 147 $this->variantPreInterceptor->setReturnValue('getVariantFromCookie', $mockCookieVariant); 148 $this->mockVariantsMap->setReturnValue('shouldUsePersistence', false); 149 $this->mockVariantsMap->setReturnValue('getVariant', $mockNewVariant); 150 $this->variantPreInterceptor->expect('createCookie', array('variant', 'new', '*', 'example.org', '/path/')); 151 $this->variantPreInterceptor->setReturnValue('createCookie', stubCookie::create('variant', 'new')); 147 * 148 * @test 149 */ 150 public function noPersistence() 151 { 152 $mockNewVariant = $this->getMock('stubVariant'); 153 $mockNewVariant->expects($this->any())->method('getName')->will($this->returnValue('new')); 154 $mockNewVariant->expects($this->any())->method('getFullQualifiedName')->will($this->returnValue('foo:new')); 155 $mockCookieVariant = $this->getMock('stubVariant'); 156 $mockCookieVariant->expects($this->any())->method('getName')->will($this->returnValue('cookie')); 157 $mockCookieVariant->expects($this->any())->method('getFullQualifiedName')->will($this->returnValue('foo:cookie')); 158 $this->mockSession->expects($this->once())->method('hasValue')->will($this->returnValue(false)); 159 $this->mockSession->expects($this->once()) 160 ->method('putValue') 161 ->with($this->equalTo('net.stubbles.websites.variantmanager.variant'), 162 $this->equalTo('foo:new') 163 ); 164 $this->mockResponse->expects($this->once())->method('setCookie'); 165 $this->variantPreInterceptor->expects($this->once())->method('createVariantFactory')->will($this->returnValue($this->mockVariantFactory)); 166 $this->variantPreInterceptor->expects($this->never())->method('getVariantFromCookie'); 167 $this->mockVariantsMap->expects($this->once())->method('shouldUsePersistence')->will($this->returnValue(false)); 168 $this->mockVariantsMap->expects($this->once())->method('getVariant')->will($this->returnValue($mockNewVariant)); 169 $this->variantPreInterceptor->expects($this->once()) 170 ->method('createCookie') 171 ->with($this->equalTo('variant'), 172 $this->equalTo('new'), 173 $this->anything(), 174 $this->equalTo('example.org'), 175 $this->equalTo('/path/') 176 ) 177 ->will($this->returnValue(stubCookie::create('variant', 'new'))); 152 178 stubRegistry::setConfig('net.stubbles.websites.variantmanager.cookie.url', 'example.org'); 153 179 stubRegistry::setConfig('net.stubbles.websites.variantmanager.cookie.path', '/path/'); … … 157 183 /** 158 184 * assure that a cookie variant is used 159 */ 160 public function testVariantCookieSet() 161 { 162 $mockNewVariant = new MockstubVariant(); 163 $mockNewVariant->setReturnValue('getName', 'new'); 164 $mockNewVariant->setReturnValue('getFullQualifiedName', 'foo:new'); 165 $mockCookieVariant = new MockstubVariant(); 166 $mockCookieVariant->setReturnValue('getName', 'cookie'); 167 $mockCookieVariant->setReturnValue('getFullQualifiedName', 'foo:cookie'); 168 $this->mockSession->setReturnValue('hasValue', false); 169 $this->mockSession->expectOnce('putValue', array('net.stubbles.websites.variantmanager.variant', 'foo:cookie')); 170 $this->mockResponse->expectOnce('setCookie'); 171 $this->mockRequest->setReturnValue('hasValue', false); 172 $this->mockRequest->expect('hasValue', array('variant', stubRequest::SOURCE_COOKIE)); 173 $this->variantPreInterceptor->setReturnValue('createVariantFactory', $this->mockVariantFactory); 174 $this->variantPreInterceptor->setReturnValue('getVariantFromCookie', $mockCookieVariant); 175 $this->mockVariantsMap->setReturnValue('shouldUsePersistence', true); 176 $this->mockVariantsMap->setReturnValue('getVariant', $mockNewVariant); 177 $this->variantPreInterceptor->expect('createCookie', array('variant', 'cookie', '*', 'example.org', '/path/')); 178 $this->variantPreInterceptor->setReturnValue('createCookie', stubCookie::create('variant', 'variantName')); 185 * 186 * @test 187 */ 188 public function variantCookieSet() 189 { 190 $mockNewVariant = $this->getMock('stubVariant'); 191 $mockNewVariant->expects($this->any())->method('getName')->will($this->returnValue('new')); 192 $mockNewVariant->expects($this->any())->method('getFullQualifiedName')->will($this->returnValue('foo:new')); 193 $mockCookieVariant = $this->getMock('stubVariant'); 194 $mockCookieVariant->expects($this->any())->method('getName')->will($this->returnValue('cookie')); 195 $mockCookieVariant->expects($this->any())->method('getFullQualifiedName')->will($this->returnValue('foo:cookie')); 196 $this->mockSession->expects($this->once())->method('hasValue')->will($this->returnValue(false)); 197 $this->mockSession->expects($this->once()) 198 ->method('putValue') 199 ->with($this->equalTo('net.stubbles.websites.variantmanager.variant'), 200 $this->equalTo('foo:cookie') 201 ); 202 $this->mockResponse->expects($this->once())->method('setCookie'); 203 $this->variantPreInterceptor->expects($this->once())->method('createVariantFactory')->will($this->returnValue($this->mockVariantFactory)); 204 $this->variantPreInterceptor->expects($this->once())->method('getVariantFromCookie')->will($this->returnValue($mockCookieVariant)); 205 $this->mockVariantsMap->expects($this->once())->method('shouldUsePersistence')->will($this->returnValue(true)); 206 $this->mockVariantsMap->expects($this->never())->method('getVariant'); 207 $this->variantPreInterceptor->expects($this->once()) <
