1212 * @group generator
1313 */
1414class ClassGeneratorTest extends \PHPUnit_Framework_TestCase {
15-
15+
1616 use TestUtils;
1717
1818 public function testSignature () {
@@ -24,103 +24,121 @@ public function testSignature() {
2424
2525 $ this ->assertEquals ($ expected , $ code );
2626 }
27-
27+
2828 public function testAbstract () {
2929 $ expected = 'abstract class MyClass { ' . "\n" . '} ' ;
30-
30+
3131 $ class = PhpClass::create ('MyClass ' )->setAbstract (true );
3232 $ generator = new ModelGenerator ();
3333 $ code = $ generator ->generate ($ class );
34-
34+
3535 $ this ->assertEquals ($ expected , $ code );
3636 }
37-
37+
3838 public function testFinal () {
3939 $ expected = 'final class MyClass { ' . "\n" . '} ' ;
40-
40+
4141 $ class = PhpClass::create ('MyClass ' )->setFinal (true );
4242 $ generator = new ModelGenerator ();
4343 $ code = $ generator ->generate ($ class );
44-
44+
4545 $ this ->assertEquals ($ expected , $ code );
4646 }
47-
47+
4848 public function testInterfaces () {
4949 $ generator = new ModelGenerator ();
50-
50+
5151 $ expected = 'class MyClass implements \Iterator { ' . "\n" . '} ' ;
5252 $ class = PhpClass::create ('MyClass ' )->addInterface ('\Iterator ' );
5353 $ this ->assertEquals ($ expected , $ generator ->generate ($ class ));
54-
54+
5555 $ expected = 'class MyClass implements \Iterator, \ArrayAccess { ' . "\n" . '} ' ;
5656 $ class = PhpClass::create ('MyClass ' )->addInterface ('\Iterator ' )->addInterface ('\ArrayAccess ' );
5757 $ this ->assertEquals ($ expected , $ generator ->generate ($ class ));
5858 }
5959
6060 public function testParent () {
6161 $ expected = 'class MyClass extends MyParent { ' . "\n" . '} ' ;
62-
62+
6363 $ class = PhpClass::create ('MyClass ' )->setParentClassName ('MyParent ' );
6464 $ generator = new ModelGenerator ();
6565 $ code = $ generator ->generate ($ class );
66-
66+
6767 $ this ->assertEquals ($ expected , $ code );
6868 }
6969
7070 public function testUseStatements () {
7171 $ class = new PhpClass ('Foo \\Bar ' );
7272 $ class ->addUseStatement ('Bam \\Baz ' );
73-
73+
7474 $ codegen = new CodeFileGenerator (['generateDocblock ' => false , 'generateEmptyDocblock ' => false ]);
7575 $ code = $ codegen ->generate ($ class );
76-
76+
7777 $ this ->assertEquals ($ this ->getGeneratedContent ('FooBar.php ' ), $ code );
78-
78+
7979 $ class = new PhpClass ('Foo \\Bar ' );
8080 $ class ->addUseStatement ('Bam \\Baz ' , 'BamBaz ' );
81-
81+
8282 $ codegen = new CodeFileGenerator (['generateDocblock ' => false , 'generateEmptyDocblock ' => false ]);
8383 $ code = $ codegen ->generate ($ class );
84-
84+
8585 $ this ->assertEquals ($ this ->getGeneratedContent ('FooBarWithAlias.php ' ), $ code );
86-
86+
8787 $ class = new PhpClass ('Foo ' );
8888 $ class ->addUseStatement ('Bar ' );
89-
89+
9090 $ generator = new ModelGenerator ();
9191 $ code = $ generator ->generate ($ class );
9292 $ expected = 'class Foo { ' . "\n" . '} ' ;
93-
93+
9494 $ this ->assertEquals ($ expected , $ code );
9595 }
9696
9797 public function testABClass () {
9898 $ class = Fixtures::createABClass ();
99-
99+
100100 $ modelGenerator = new ModelGenerator ();
101101 $ modelCode = $ modelGenerator ->generate ($ class );
102102 $ this ->assertEquals ($ this ->getGeneratedContent ('ABClass.php ' ), $ modelCode );
103103 $ generator = new CodeGenerator (['generateDocblock ' => false ]);
104104 $ code = $ generator ->generate ($ class );
105105 $ this ->assertEquals ($ modelCode , $ code );
106-
106+
107107 $ modelGenerator = new ModelGenerator (['generateDocblock ' => true ]);
108108 $ modelCode = $ modelGenerator ->generate ($ class );
109109 $ this ->assertEquals ($ this ->getGeneratedContent ('ABClassWithComments.php ' ), $ modelCode );
110110 $ generator = new CodeGenerator (['generateDocblock ' => true ]);
111111 $ code = $ generator ->generate ($ class );
112112 $ this ->assertEquals ($ modelCode , $ code );
113113 }
114-
114+
115115 public function testRequireTraitsClass () {
116116 $ class = PhpClass::create ('RequireTraitsClass ' )
117117 ->addRequiredFile ('FooBar.php ' )
118118 ->addRequiredFile ('ABClass.php ' )
119119 ->addTrait ('Iterator ' );
120-
120+
121121 $ generator = new ModelGenerator ();
122122 $ code = $ generator ->generate ($ class );
123123 $ this ->assertEquals ($ this ->getGeneratedContent ('RequireTraitsClass.php ' ), $ code );
124124 }
125125
126+ public function testMyCollection () {
127+ $ class = PhpClass::fromFile (__DIR__ . '/../fixtures/MyCollection.php ' );
128+
129+ $ generator = new CodeFileGenerator (['generateDocblock ' => false ]);
130+ $ code = $ generator ->generate ($ class );
131+
132+ $ this ->assertEquals ($ this ->getFixtureContent ('MyCollection.php ' ), $ code );
133+ }
134+
135+ public function testMyCollection2 () {
136+ $ class = PhpClass::fromFile (__DIR__ . '/../fixtures/MyCollection2.php ' );
137+
138+ $ generator = new CodeFileGenerator (['generateDocblock ' => false ]);
139+ $ code = $ generator ->generate ($ class );
140+
141+ $ this ->assertEquals ($ this ->getFixtureContent ('MyCollection2.php ' ), $ code );
142+ }
143+
126144}
0 commit comments