function test_addDefault_object() { $rvm = new ReturnValuesManager('classe'); $rvm->setReturnValue('metodo', 'primo', 1)->setReturnObjectDefault('metodo', 'pdefault'); FakeObjectGenerator::generate($rvm, new CodeGenerator(null)); //echo FakeObjectGenerator::returnedCode();die(); $classe = "class classe{\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\npublic function __construct()\n{ \$rvm_pdefault = new ReturnValuesManager('pdefault');\n FakeObjectGenerator::generate(\$rvm_pdefault, new CodeGenerator(null));\n}\n function metodo(){\n if(isset(self::\$times['metodo'])){\n self::\$times['metodo']++;\n }\n else{\n self::\$times['metodo'] = 1;\n }\nswitch (self::\$times['metodo']){\n case 1:\n return 'primo';\n break;\n default: return new pdefault();\n }\n }\n}"; $this->assertEqual(FakeObjectGenerator::returnedCode(), $classe); $test_deault = new classe(); $this->assertEqual($test_deault->metodo(), 'primo'); $this->assertIsA($test_deault->metodo(), 'pdefault'); $this->assertIsA($test_deault->metodo(), 'pdefault'); }
function test_returnJustGeneratedClass_return_objects_array_two_or_more_level_deep_without_methods_list() { $rvm = new ReturnValuesManager('test_66'); $rvm1 = new ReturnValuesManager('test_77'); $rvm2 = new ReturnValuesManager('test_88'); $rvm2->setReturnValue('prova_metodo', 'ritorno'); $rvm->setReturnObjectsArray('prova_metodo', array($rvm1, $rvm2)); FakeObjectGenerator::generate($rvm, new CodeGenerator(null)); $classe = "class test_66{\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 }\n \$rvm_test_77 = new ReturnValuesManager('test_77');\n if(self::\$times['prova_metodo'] == 1){\n FakeObjectGenerator::generate(\$rvm_test_77, new CodeGenerator(null));\n }\n \$mocktest_77 = new test_77();\n \$rvm_test_88 = new ReturnValuesManager('test_88');\n \$rvm_test_88->setReturnValue('prova_metodo', 'ritorno');\n if(self::\$times['prova_metodo'] == 1){\n FakeObjectGenerator::generate(\$rvm_test_88, new CodeGenerator(null));\n }\n \$mocktest_88 = new test_88();\n return array(\$mocktest_77,\$mocktest_88);\n }\n}"; $this->assertEqual($classe, FakeObjectGenerator::returnedCode()); $oggetto = new test_66(); $this->assertTrue(is_array($oggetto->prova_metodo())); $array = $oggetto->prova_metodo(); $this->assertIsA($array[0], test_77); $this->assertIsA($array[1], test_88); $this->assertEqual('ritorno', $array[1]->prova_metodo()); }
function test_returnJustGeneratedClass_return_value_at() { $rvm = new ReturnValuesManager('test_8'); $rvm->setReturnValue('prova_metodo', 1, 1)->setReturnValue('prova_metodo', 'ciao', 2)->setReturnValue('prova_metodo', false, 3)->setReturnValue('prova_metodo', true, 4); FakeObjectGenerator::generate($rvm, new CodeGenerator(dirname(__FILE__) . '/list.php')); $classe = "class test_8{\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 return 1;\n break;\n case 2:\n return 'ciao';\n break;\n case 3:\n return false;\n break;\n case 4:\n return true;\n break;\n default: return null;\n }\n }\n}"; $this->assertEqual($classe, FakeObjectGenerator::returnedCode()); $oggetto = new test_8(); $this->assertEqual(1, $oggetto->prova_metodo()); $this->assertEqual('ciao', $oggetto->prova_metodo()); $this->assertFalse($oggetto->prova_metodo()); $this->assertTrue($oggetto->prova_metodo()); $this->assertNull($oggetto->prova_metodo()); }
function test_cannot_declare_any_after_declaring_at() { $rvm = new ReturnValuesManager('foo'); $rvm->setReturnValue('bar', 'foo', 1)->setReturnValue('bar', 'foo2', 2); $this->expectException(); $rvm->setReturnValue('bar', 'foo3'); }