public function test_adding_multiple_fields_to_a_resource() { $resource = new Resource('my__0', 'myCoolResource', 'my_cool_table', 'my_cool_id'); $field = new Field($resource, 'myCoolField', 'my_cool_field', Field::TYPE_STRING); $otherField = new Field($resource, 'myOtherCoolField', 'my_other_cool_field', Field::TYPE_STRING); $resource->addFieldsArray(array($field, $otherField)); $this->assertEquals(2, $resource->countFields()); }
public function test_multiple_fields_mapping_generated_query() { $resource = new Resource('my__0', 'myCoolResource', 'my_cool_table', 'my_cool_id'); $fields = array(new Field($resource, 'myCoolField', 'my_cool_field', Field::TYPE_STRING), new Field($resource, 'myMoreCoolField', 'my_more_cool_field', Field::TYPE_STRING)); $resource->addFieldsArray($fields); $generatedSql = $this->dbalQueryBuilder->buildQuery($resource); $expectedSql = 'select my__0.my_cool_id as my__0_my_cool_id, my__0.my_cool_field as my__0_myCoolField, my__0.my_more_cool_field as my__0_myMoreCoolField from my_cool_table my__0'; $this->assertEquals($expectedSql, $generatedSql); }
public function test_that_a_resource_with_one_related_many_to_one_is_mapped() { $input = <<<EOT resource: alias: 'myResource' table: 'myTable' primary-key: 'my_id' fields: - name: 'myName' alias: 'myAlias' relationships: - type: 'many-to-one' join-column: 'idMyTable' resource: alias: 'myOtherResource' table: 'myOtherTable' primary-key: 'my_other_id' fields: - name: 'myOtherField' alias: 'myOtherAlias' EOT; /** @var \FlyRRM\Mapping\Resource $rootResource */ $rootResource = $this->parseInput($input); $relationships = $rootResource->getRelationships(); $this->assertEquals(1, sizeof($relationships)); /** @var \FlyRRM\Mapping\Relationship $firstRelationship */ $firstRelationship = $relationships[0]; $expectedMainResource = new Resource('myT_0', 'myResource', 'myTable', 'my_id'); $expectedMainResourceFields = array(new Field($expectedMainResource, 'myAlias', 'myName', Field::TYPE_STRING)); $expectedMainResource->addFieldsArray($expectedMainResourceFields); $expectedReferencedResource = new Resource('myO_1', 'myOtherResource', 'myOtherTable', 'my_other_id'); $expectedReferencedResourceFields = array(new Field($expectedReferencedResource, 'myOtherAlias', 'myOtherField', Field::TYPE_STRING)); $expectedReferencedResource->addFieldsArray($expectedReferencedResourceFields); $expectedRelationship = new Relationship($expectedMainResource, $expectedReferencedResource, 'many-to-one', 'idMyTable'); $expectedMainResource->addRelationship($expectedRelationship); $this->assertEquals($expectedRelationship, $firstRelationship); }