public function __construct(\ReflectionClass $intf, $className) { $this->intf = $intf; $this->className = $className; $this->factory = new DomainFactory(); $this->paramCaseSensor = $this->returnCaseSensor = CaseSensor::LowerSnake(); }
/** * @test */ public function test_convert_from_camel() { fromLowerCamel: $cs = CaseSensor::LowerSnake(); $this->assertEquals('foo_bar_baz', $cs->convert('fooBarBaz')); $cs = CaseSensor::UpperSnake(); $this->assertEquals('FOO_BAR_BAZ', $cs->convert('fooBarBaz')); $cs = CaseSensor::LowerCamel(); $this->assertEquals('fooBarBaz', $cs->convert('fooBarBaz')); $cs = CaseSensor::UpperCamel(); $this->assertEquals('FooBarBaz', $cs->convert('fooBarBaz')); fromUpperCamel: $cs = CaseSensor::LowerSnake(); $this->assertEquals('foo_bar_baz', $cs->convert('FooBarBaz')); $cs = CaseSensor::UpperSnake(); $this->assertEquals('FOO_BAR_BAZ', $cs->convert('FooBarBaz')); $cs = CaseSensor::LowerCamel(); $this->assertEquals('fooBarBaz', $cs->convert('FooBarBaz')); $cs = CaseSensor::UpperCamel(); $this->assertEquals('FooBarBaz', $cs->convert('FooBarBaz')); }
/** * @test */ public function test_build_prepare_with_returning() { $context = new DaoBuilderContext(new Configuration(function ($conf) { $conf->connectionString = 'sqlite:///:memory:'; })); $builder = new DaoBuilder(new \ReflectionClass(TodoDao2::class), $context->getDaoClassName(TodoDao2::class)); $factory = new DomainFactory(); $builder->prepare(); $methods = $builder->getMethods(); listById: $info = $methods['listById']; $this->assertArrayHasKey('returnDomain', $info); $this->assertInstanceOf(Domain\ArrayDomain::class, $info['returnDomain']); $this->assertInstanceOf(Domain\AnyArrayDomain::class, $info['returnDomain']->childDomain()); $this->assertInstanceOf(Domain\BuiltinDomain::class, $info['returnDomain']->childDomain()->childDomain()); $this->assertEquals(Type::STRING, $info['returnDomain']->childDomain()->childDomain()->getType()); listAll: $info = $methods['listAll']; $actial = $factory->parse('', Todo::class, CaseSensor::LowerSnake()); $this->assertArrayHasKey('returnDomain', $info); $this->assertInstanceOf(Domain\ArrayDomain::class, $info['returnDomain']); $this->assertInstanceOf(Domain\ObjectDomain::class, $info['returnDomain']->childDomain()); $this->assertEquals($actial, $info['returnDomain']->childDomain()); listAllAsRawArray: $info = $methods['listAllAsRawArray']; $actial = $factory->parse('', Todo::class, CaseSensor::LowerSnake()); $this->assertArrayHasKey('returnDomain', $info); $this->assertInstanceOf(Domain\AnyArrayDomain::class, $info['returnDomain']); $this->assertInstanceOf(Domain\BuiltinDomain::class, $info['returnDomain']->childDomain()); $this->assertEquals(Type::STRING, $info['returnDomain']->childDomain()->getType()); listByPub: $info = $methods['listByPub']; $actial = $factory->parse('', Todo::class, CaseSensor::LowerSnake()); $this->assertArrayHasKey('returnDomain', $info); $this->assertInstanceOf(Domain\ArrayDomain::class, $info['returnDomain']); $this->assertInstanceOf(Domain\ObjectDomain::class, $info['returnDomain']->childDomain()); $this->assertEquals($actial, $info['returnDomain']->childDomain()); findById: $info = $methods['findById']; $actial = $factory->parse('', Todo::class, CaseSensor::LowerSnake()); $this->assertArrayHasKey('returnDomain', $info); $this->assertInstanceOf(Domain\ObjectDomain::class, $info['returnDomain']); $this->assertEquals($actial, $info['returnDomain']); }
/** * @test */ public function test_built_complex_domain() { $factory = new DomainFactory(); $defs = new Domain\ComplexDomain(['obj' => $factory->parse('', '\\Omelet\\Tests\\Target\\Todo', CaseSensor::LowerSnake()), 'hoge' => $factory->parse('', 'int', CaseSensor::LowerSnake())]); $children = $defs->getChildren(); $this->assertCount(2, $children); $this->assertInstanceOf(Domain\ObjectDomain::class, $children['obj']); $this->assertInstanceOf(Domain\BuiltinDomain::class, $children['hoge']); $values = ['obj' => Todo::__set_state(['id' => 1024, 'todo' => 'test', 'created' => new \DateTime('2015/5/18 12:7:09'), 'hidden' => new Hidden(true)]), 'hoge' => 4096]; $this->assertEquals(['obj_id' => Type::getType(Type::INTEGER), 'obj_todo' => Type::getType(Type::STRING), 'obj_created' => Type::getType(Type::DATETIME), 'obj_hidden' => Type::getType(Type::BOOLEAN), 'obj_creator' => Type::getType(Type::STRING), 'hoge' => Type::getType(Type::INTEGER)], $defs->expandTypes(['obj_id', 'obj_todo', 'obj_created', 'obj_hidden', 'obj_creator', 'hoge'], '', $values, CaseSensor::LowerSnake())); $this->assertEquals(['obj_id' => 1024, 'obj_todo' => 'test', 'obj_created' => new \DateTime('2015/5/18 12:7:09'), 'obj_hidden' => true, 'obj_creator' => null, 'hoge' => 4096], $defs->expandValues(['obj_id', 'obj_todo', 'obj_created', 'obj_hidden', 'obj_creator', 'hoge'], '', $values, CaseSensor::LowerSnake())); }