function testSetReturnObject_should__return_an_exception_when_a_return_value_is_already_set_for_a_method() { $rvm = new ReturnValuesManager('foo'); $returnValue = $rvm->setReturnObject('bar', 'foo'); $this->expectException('Exception'); // E' giusto così???? $returnValue->setReturnObject('bar', 'foo2'); }
function test_ReturnValuesManger_CreationOfTheRightSetOfClasses() { $rvm = new ReturnValuesManager('Classe', 'Classe_da_estendere'); $rvm->setReturnObject('getObject', 'Object', null, 'Class_extended'); $rvm->setReturnObjectDefault('getObjectDefault', 'DefaultClass', 'SuperClass'); $rvm->setReturnObjectsArray('getObjectArray', array(new ReturnValuesManager('Classe_1', 'ext1', 'implemento'), new ReturnValuesManager('Classe_2', 'ext2'), new ReturnValuesManager('Classe_3', 'ext3'), new ReturnValuesManager('Classe_4', 'ext4', 'implemento'), new ReturnValuesManager('Classe_5', 'ext5'), new ReturnValuesManager('Classe_6', 'ext6'), new ReturnValuesManager('Classe_7', 'ext7', 'implemento')), $at = null); $this->assertTrue(is_array($rvm->getClassesDeclared()), '->getClassesDeclared() returns an array'); $array = $rvm->getClassesDeclared(); $this->assertIsA($array[0], 'DeclaredClass', 'the array conmtains DeclaredClass objects'); $this->assertEqual(count($array), 10, '->getClassesDeclared() returns the right number of elements'); $object = $array[0]; $this->assertEqual($object->getClassDefinition(), 'class Classe extends Classe_da_estendere', '->getDeclaration() returns the right values'); $object = $array[3]; $this->assertEqual($object->getClassDefinition(), 'class Classe_1 extends ext1 implements implemento', '->getDeclaration() returns the right values'); $object = $array[9]; $this->assertEqual($object->getClassDefinition(), 'class Classe_7 extends ext7 implements implemento', '->getDeclaration() returns the right values'); }
function test_timingConfigurationOnlyOncePerMethod_without_methods_list() { $rvm = new ReturnValuesManager('test_99'); $rvm_array = new ReturnValuesManager('test_101'); $rvm->setReturnObject('prova_metodo', 'test_101', 1)->setReturnObjectsArray('prova_metodo', array($rvm_array, $rvm_array), 2); FakeObjectGenerator::generate($rvm, new CodeGenerator(null)); $classe = "class test_99{\n//timing\n private static \$times = array();\n//Costants\n//Magic methods\n public function __call(\$name, \$arguments) {\n return null;\n }\n public function __callStatic(\$name, \$arguments) {\n return null;\n }\n//Methods\n function prova_metodo(){\n if(isset(self::\$times['prova_metodo'])){\n self::\$times['prova_metodo']++;\n }\n else{\n self::\$times['prova_metodo'] = 1;\n }\nswitch (self::\$times['prova_metodo']){\n case 1:\n \$rvm_test_101 = new ReturnValuesManager('test_101');\n if(self::\$times['prova_metodo'] == 1){\n FakeObjectGenerator::generate(\$rvm_test_101, new CodeGenerator(null));\n }\n \$mocktest_101 = new test_101();\n return new test_101();\n break;\n case 2:\n \$rvm_test_101 = new ReturnValuesManager('test_101');\n if(self::\$times['prova_metodo'] == 1){\n FakeObjectGenerator::generate(\$rvm_test_101, new CodeGenerator(null));\n }\n \$mocktest_101 = new test_101();\n return array(\$mocktest_101,\$mocktest_101);\n break;\n default: return null;\n }\n }\n}"; $this->assertEqual($classe, FakeObjectGenerator::returnedCode()); $oggetto = new test_99(); $this->assertIsA($oggetto->prova_metodo(), test_101); $array = $oggetto->prova_metodo(); $this->assertIsA($array[0], test_101); $this->assertIsA($array[1], test_101); }