Example #1
0
 /**
  * @test
  */
 public function test_build_prepare()
 {
     $context = new DaoBuilderContext(new Configuration(function ($conf) {
         $conf->connectionString = 'sqlite:///:memory:';
     }));
     $builder = new DaoBuilder(new \ReflectionClass(TodoDao::class), $context->getDaoClassName(TodoDao::class));
     $this->assertEquals('Omelet\\Tests\\Target\\TodoDao', $builder->getInterfaceName());
     $this->assertEquals('Omelet\\Tests\\Target\\TodoDaoImpl', $builder->getClassName());
     $this->assertCount(0, $builder->getMethods());
     $builder->prepare();
     $methods = $builder->getMethods();
     $this->assertCount(6, $builder->getMethods());
     select1:
     $this->assertArrayHasKey('listAll', $methods);
     $info = $methods['listAll'];
     $this->assertArrayHasKey('name', $info);
     $this->assertEquals('listAll', $info['name']);
     $this->assertArrayHasKey('type', $info);
     $this->assertInstanceOf('\\Omelet\\Annotation\\Select', $info['type']);
     $this->assertArrayHasKey('paramDomain', $info);
     $this->assertInstanceOf(Domain\ComplexDomain::class, $info['paramDomain']);
     $this->assertCount(0, $info['paramDomain']->getChildren());
     select2:
     $this->assertArrayHasKey('listById', $methods);
     $info = $methods['listById'];
     $this->assertArrayHasKey('name', $info);
     $this->assertEquals('listById', $info['name']);
     $this->assertArrayHasKey('type', $info);
     $this->assertInstanceOf('\\Omelet\\Annotation\\Select', $info['type']);
     $this->assertArrayHasKey('paramDomain', $info);
     $this->assertInstanceOf(Domain\ComplexDomain::class, $info['paramDomain']);
     $this->assertCount(1, $info['paramDomain']->getChildren());
     $this->assertArrayHasKey('id', $info['paramDomain']->getChildren());
     select3:
     $this->assertArrayHasKey('listByPub', $methods);
     $info = $methods['listByPub'];
     $this->assertArrayHasKey('name', $info);
     $this->assertEquals('listByPub', $info['name']);
     $this->assertArrayHasKey('type', $info);
     $this->assertInstanceOf('\\Omelet\\Annotation\\Select', $info['type']);
     $this->assertArrayHasKey('paramDomain', $info);
     $this->assertInstanceOf(Domain\ComplexDomain::class, $info['paramDomain']);
     $this->assertCount(2, $info['paramDomain']->getChildren());
     $this->assertArrayHasKey('from', $info['paramDomain']->getChildren());
     $this->assertArrayHasKey('to', $info['paramDomain']->getChildren());
     insert:
     $this->assertArrayHasKey('insert', $methods);
     $info = $methods['insert'];
     $this->assertArrayHasKey('name', $info);
     $this->assertEquals('insert', $info['name']);
     $this->assertArrayHasKey('type', $info);
     $this->assertInstanceOf('\\Omelet\\Annotation\\Insert', $info['type']);
     $this->assertArrayHasKey('paramDomain', $info);
     $this->assertInstanceOf(Domain\ComplexDomain::class, $info['paramDomain']);
     $this->assertCount(1, $info['paramDomain']->getChildren());
     $this->assertArrayHasKey('fields', $info['paramDomain']->getChildren());
     update:
     $this->assertArrayHasKey('update', $methods);
     $info = $methods['update'];
     $this->assertArrayHasKey('name', $info);
     $this->assertEquals('update', $info['name']);
     $this->assertArrayHasKey('type', $info);
     $this->assertInstanceOf('\\Omelet\\Annotation\\Update', $info['type']);
     $this->assertArrayHasKey('paramDomain', $info);
     $this->assertInstanceOf(Domain\ComplexDomain::class, $info['paramDomain']);
     $this->assertCount(1, $info['paramDomain']->getChildren());
     $this->assertArrayHasKey('fields', $info['paramDomain']->getChildren());
     delete:
     $this->assertArrayHasKey('delete', $methods);
     $info = $methods['delete'];
     $this->assertArrayHasKey('name', $info);
     $this->assertEquals('delete', $info['name']);
     $this->assertArrayHasKey('type', $info);
     $this->assertInstanceOf('\\Omelet\\Annotation\\Delete', $info['type']);
     $this->assertArrayHasKey('paramDomain', $info);
     $this->assertInstanceOf(Domain\ComplexDomain::class, $info['paramDomain']);
     $this->assertCount(1, $info['paramDomain']->getChildren());
     $this->assertArrayHasKey('id', $info['paramDomain']->getChildren());
 }