public function testDynamicallyDerivedAttributeBothOnRelatedModelWhereDifferentAttributes() { $q = DatabaseCompatibilityUtil::getQuote(); //Related createdByUser__User and related owner__User. On same related model $joinTablesAdapter = new RedBeanModelJoinTablesQueryAdapter('ReportModelTestItem9'); $selectQueryAdapter = new RedBeanModelSelectQueryAdapter(); $builder = new DisplayAttributesReportQueryBuilder($joinTablesAdapter, $selectQueryAdapter); $displayAttribute = new DisplayAttributeForReportForm('ReportsTestModule', 'ReportModelTestItem9', Report::TYPE_ROWS_AND_COLUMNS); $displayAttribute->attributeIndexOrDerivedType = 'hasOne___createdByUser__User'; $displayAttribute2 = new DisplayAttributeForReportForm('ReportsTestModule', 'ReportModelTestItem9', Report::TYPE_ROWS_AND_COLUMNS); $displayAttribute2->attributeIndexOrDerivedType = 'hasOne___owner__User'; $content = $builder->makeQueryContent(array($displayAttribute, $displayAttribute2)); $compareContent = "select {$q}reportmodeltestitem{$q}.{$q}id{$q} reportmodeltestitemid "; $this->assertEquals($compareContent, $content); $this->assertEquals(0, $joinTablesAdapter->getFromTableJoinCount()); $this->assertEquals(1, $joinTablesAdapter->getLeftTableJoinCount()); $idTableAliasesAndModelClassNames = $selectQueryAdapter->getIdTableAliasesAndModelClassNames(); $this->assertCount(1, $idTableAliasesAndModelClassNames); $this->assertEquals('ReportModelTestItem', $idTableAliasesAndModelClassNames['reportmodeltestitem']); }