| 1 |  |  | <?php | 
            
                                                                                                            
                            
            
                                    
            
            
                | 2 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 3 |  |  | namespace gotakk\ViewModelBundle\Tests\DependencyInjection; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 4 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 5 |  |  | use Symfony\Component\DependencyInjection\ContainerBuilder; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 6 |  |  | use gotakk\ViewModelBundle\DependencyInjection\gotakkViewModelExtension; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 7 |  |  | use gotakk\ViewModelBundle\Services\ViewModelService; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 8 |  |  | use gotakk\ViewModelBundle\ViewModel\ViewModelNode; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 9 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 10 |  |  | abstract class AbstractGotakkViewModelExtensionTest extends \PHPUnit_Framework_TestCase | 
            
                                                                                                            
                            
            
                                    
            
            
                | 11 |  |  | { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 12 |  |  |     private $extension; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 13 |  |  |     private $container; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 14 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 15 |  |  |     protected function setUp() | 
            
                                                                                                            
                            
            
                                    
            
            
                | 16 |  |  |     { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 17 |  |  |         $this->extension = new gotakkViewModelExtension(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 18 |  |  |         $this->container = new ContainerBuilder(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 19 |  |  |         $this->container->registerExtension($this->extension); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 20 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 21 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 22 |  |  |     abstract protected function loadConfiguration(ContainerBuilder $container, $resource); | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 23 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 24 |  |  |     public function testWithoutConfiguration() | 
            
                                                                        
                            
            
                                    
            
            
                | 25 |  |  |     { | 
            
                                                                        
                            
            
                                    
            
            
                | 26 |  |  |         $this->container->loadFromExtension($this->extension->getAlias()); | 
            
                                                                        
                            
            
                                    
            
            
                | 27 |  |  |         $this->container->compile(); | 
            
                                                                        
                            
            
                                    
            
            
                | 28 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 29 |  |  |         $this->assertTrue($this->container->has('gotakk.view_model.service')); | 
            
                                                                        
                            
            
                                    
            
            
                | 30 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 31 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 32 |  |  |     public function testPluralsConfiguration() | 
            
                                                                                                            
                            
            
                                    
            
            
                | 33 |  |  |     { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 34 |  |  |         $this->loadConfiguration($this->container, 'plurals'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 35 |  |  |         $this->container->compile(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 36 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 37 |  |  |         $this->assertTrue($this->container->has('gotakk.view_model.service')); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 38 |  |  |         $service = $this->container->get('gotakk.view_model.service'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 39 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 40 |  |  |         $this->assertEquals(ViewModelNode::getPlurals(), array( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 41 |  |  |             'city' => 'cities', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 42 |  |  |             'mouse' => 'mice', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 43 |  |  |             'dependency' => 'dependencies', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 44 |  |  |             'family' => 'families', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 45 |  |  |         )); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 46 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 47 |  |  |         $vm = $service->createViewModel(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 48 |  |  |         $vm->addMouse('Mickey'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 49 |  |  |         $vm->addMouse('Jerry'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 50 |  |  |         $vm->addMan('Linus Torvaldis'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 51 |  |  |         $vm->addMan('Edward Snowden'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 52 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 53 |  |  |         $this->assertEquals($vm->toArray(), array( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 54 |  |  |             'mice' => array( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 55 |  |  |                 'Mickey', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 56 |  |  |                 'Jerry', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 57 |  |  |             ), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 58 |  |  |             'mans' => array( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 59 |  |  |                 'Linus Torvaldis', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 60 |  |  |                 'Edward Snowden', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 61 |  |  |             ), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 62 |  |  |         )); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 63 |  |  |     } | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 64 |  |  | } | 
            
                                                        
            
                                    
            
            
                | 65 |  |  |  |