public function testResolve()
 {
     $memberName = "memberNameGoesHere";
     $columnName = RedBeanModelMemberToColumnUtil::resolve($memberName);
     $this->assertNotEquals($memberName, $columnName);
     $this->assertEquals(strtolower($memberName), $columnName);
 }
 /**
  * Provided modelClassName and rules for a member we resolve a column in table.
  * @param string $modelClassName
  * @param array $rules
  * @param $messageLogger
  * @return array|bool
  */
 public static function resolve($modelClassName, array $rules, &$messageLogger)
 {
     if (empty($rules)) {
         return false;
     }
     $member = $rules[0][0];
     assert('strpos($member, " ") === false');
     $name = RedBeanModelMemberToColumnUtil::resolve($member);
     $type = null;
     $length = null;
     $notNull = null;
     $default = null;
     static::resolveColumnTypeAndLengthFromRules($modelClassName, $member, $rules, $type, $length, $notNull, $default, $messageLogger);
     if (!isset($type)) {
         return false;
     }
     return RedBeanModelMemberToColumnUtil::resolveColumnMetadataByHintType($name, $type, $length, null, $notNull, $default, null);
 }
 /**
  * Provided indexName and metadata is resolved to match the requirements of schema definition
  * @param array $indexMetadata passed by reference, array containing index definition
  * @return bool whether or not we were able to resolve index correctly
  */
 public static function resolve(array &$indexMetadata)
 {
     if (empty($indexMetadata['members']) || !is_array($indexMetadata['members'])) {
         return false;
     }
     $unique = false;
     if (isset($indexMetadata['unique'])) {
         $unique = $indexMetadata['unique'];
     }
     $indexMembers = $indexMetadata['members'];
     // Begin Not Coding Standard
     $indexMembers = array_map(function ($indexMember) {
         return RedBeanModelMemberToColumnUtil::resolve($indexMember);
     }, $indexMembers);
     // End Not Coding Standard
     $indexMetadata = array('columns' => $indexMembers, 'unique' => $unique);
     return true;
 }
 protected static function setColumnsForPolymorphicLink($relatedModelClassName, $linkName)
 {
     $columns = array();
     $columns[] = RedBeanModelMemberToColumnUtil::resolveForeignKeyColumnMetadata(RedBeanModelMemberToColumnUtil::resolve($linkName) . '_id');
     $columns[] = static::resolvePolymorphicTypeColumnByLinkName($linkName);
     $tableName = $relatedModelClassName::getTableName();
     $polymorphicLinkColumns = GeneralCache::getEntry(static::CACHE_KEY, array());
     $polymorphicLinkColumns[$tableName] = $columns;
     GeneralCache::cacheEntry(static::CACHE_KEY, $polymorphicLinkColumns);
 }