/**
  * @depends testResolveIndexNameNonUnique
  */
 public function testResolveIndexNameUnique()
 {
     $indexName = 'ThisIsAUniqueIndex';
     $resolvedIndexName = RedBeanModelMemberIndexMetadataAdapter::resolveRandomIndexName($indexName, true);
     $this->assertNotEmpty($resolvedIndexName);
     $this->assertNotEquals($indexName, $resolvedIndexName);
     $this->assertContains('unique_', $resolvedIndexName);
 }
 protected static function registerUniqueIndexByMemberName($member, $modelClassName)
 {
     $indexName = RedBeanModelMemberIndexMetadataAdapter::resolveRandomIndexName($member, true);
     $uniqueIndexes = GeneralCache::getEntry(static::CACHE_KEY, array());
     $uniqueIndexes[$modelClassName][$indexName] = array('members' => array($member), 'unique' => true);
     GeneralCache::cacheEntry(static::CACHE_KEY, $uniqueIndexes);
 }
 protected static function resolveIndexesByColumnNames($columns)
 {
     $indexes = array();
     $compositeIndexKey = null;
     $compositeIndexValues = array('columns' => array(), 'unique' => true);
     foreach ($columns as $column) {
         $columnName = $column['name'];
         $indexName = RedBeanModelMemberIndexMetadataAdapter::resolveRandomIndexName($columnName, false);
         $indexes[$indexName] = array('columns' => array($columnName), 'unique' => false);
         if (!empty($compositeIndexKey)) {
             $compositeIndexKey .= '_';
         }
         $compositeIndexKey .= $columnName;
         $compositeIndexValues['columns'][] = $columnName;
     }
     $indexName = RedBeanModelMemberIndexMetadataAdapter::resolveRandomIndexName($compositeIndexKey, true);
     $indexes[$indexName] = $compositeIndexValues;
     return $indexes;
 }