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());
 }
Ejemplo n.º 3
0
 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());
 }
Ejemplo n.º 4
0
 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');
 }