/** * Sets new metadata. * @param $metadata An array of metadata. * @param $user The current user. */ public static function setMetadata($className, array $metadata, User $user = null) { assert('is_string($className) && $className != ""'); if ($user instanceof User && isset($metadata['perUser'])) { try { $perUserMetadata = PerUserMetadata::getByClassNameAndUser($className, $user); } catch (NotFoundException $e) { $perUserMetadata = new PerUserMetadata(); $perUserMetadata->className = $className; $perUserMetadata->user = $user; } $perUserMetadata->serializedMetadata = serialize($metadata['perUser']); $saved = $perUserMetadata->save(); assert('$saved'); } if (isset($metadata['global'])) { try { $globalMetadata = GlobalMetadata::getByClassName($className); } catch (NotFoundException $e) { $globalMetadata = new GlobalMetadata(); $globalMetadata->className = $className; } $globalMetadata->serializedMetadata = serialize($metadata['global']); $saved = $globalMetadata->save(); assert('$saved'); } }
public function testPerUserMetadata() { $user = UserTestHelper::createBasicUser('Steven'); $perUserMetadata = new PerUserMetadata(); $perUserMetadata->className = 'Something'; $perUserMetadata->user = $user; $perUserMetadata->serializedMetadata = serialize(array('doovas', 2)); $this->assertTrue($perUserMetadata->save()); unset($perUserMetadata); $perUserMetadata = PerUserMetadata::getByClassNameAndUser('Something', $user); $this->assertEquals('a:2:{i:0;s:6:"doovas";i:1;i:2;}', $perUserMetadata->serializedMetadata); }
public function testRequiredRelatedModel2() { $perUserMetadata = new PerUserMetadata(); $this->assertFalse($perUserMetadata->validate()); $errors = $perUserMetadata->getErrors(); $this->assertEquals(3, count($errors)); $this->assertEquals('Class Name cannot be blank.', $errors['className'][0]); $this->assertEquals('Serialized Metadata cannot be blank.', $errors['serializedMetadata'][0]); $this->assertEquals('Username cannot be blank.', $errors['user']['username'][0]); $this->assertEquals('Last Name cannot be blank.', $errors['user']['lastName'][0]); }