/**
  * @depends testResolveWithNonManyManyRelationship
  */
 public function testResolve()
 {
     $modelClassName = 'Person';
     $relationMetadata = array(RedBeanModel::MANY_MANY, 'User');
     RedBeanModelToJoinTableAdapter::resolve($modelClassName, $relationMetadata, static::$messageLogger);
     $processedTables = RedBeanModelToJoinTableAdapter::resolveProcessedTableNames();
     $this->assertNotEmpty($processedTables);
     $this->assertCount(1, $processedTables);
     $this->assertEquals('_user_person', $processedTables[0]);
 }
 /**
  * @depends testResolveWithManyManyAndLinkTypeAssumptive
  */
 public function testResolveWithManyManyAndLinkTypeSpecific()
 {
     $modelClassName = 'Conversation';
     $relationName = 'conversationItems';
     $relationMetadata = array(RedBeanModel::MANY_MANY, 'Item', RedBeanModel::OWNED, RedBeanModel::LINK_TYPE_SPECIFIC, 'cItems');
     $column = RedBeanModelRelationToColumnAdapter::resolve($modelClassName, $relationName, $relationMetadata, static::$messageLogger);
     $this->assertNull($column);
     $processedTables = RedBeanModelToJoinTableAdapter::resolveProcessedTableNames();
     $this->assertNotEmpty($processedTables);
     $this->assertCount(3, $processedTables);
     $this->assertEquals('contact_opportunity', $processedTables[0]);
     $this->assertEquals('conversation_item', $processedTables[1]);
     $this->assertEquals('citems_conversation_item', $processedTables[2]);
 }