public static function setUpBeforeClass() { if (defined('PHPUNIT_CREDENTIALS_MYSQL_SCHEMALESS_HOST')) { $configuration = new MySQLSchemalessConfiguration(); $configuration->initDatabase(PHPUNIT_CREDENTIALS_MYSQL_SCHEMALESS_HOST, PHPUNIT_CREDENTIALS_MYSQL_SCHEMALESS_DBNAME, PHPUNIT_CREDENTIALS_MYSQL_SCHEMALESS_USERNAME, PHPUNIT_CREDENTIALS_MYSQL_SCHEMALESS_PASSWORD); $configuration->setCMDLFolder(__DIR__ . '/../../resources/ContentArchiveExample1/cmdl'); $configuration->setRepositoryName('phpunit'); $configuration->addContentTypes(); $database = $configuration->getDatabase(); $database->execute('DROP TABLE IF EXISTS _cmdl_'); $database->execute('DROP TABLE IF EXISTS _counter_'); $database->execute('DROP TABLE IF EXISTS phpunit$profiles'); $connection = $configuration->createReadWriteConnection(); $repository = new Repository('phpunit', $connection); $repository->selectContentType('profiles'); $record = $repository->createRecord('dmc digital media center', 5); $repository->saveRecord($record); $record = $repository->createRecord('Agency 16', 16); $repository->saveRecord($record); $repository->selectWorkspace('live'); $record = $repository->createRecord('dmc digital media center', 5); $repository->saveRecord($record); $repository->selectLanguage('de'); $record = $repository->createRecord('dmc digital media center', 5); $repository->saveRecord($record); KVMLoggerFactory::createWithKLogger(__DIR__ . '/../../../tmp'); } }
public function testSaveRecords() { $this->repository->selectContentType('example01'); $record = $this->repository->createRecord('New Record'); $record->setProperty('source', 'a'); $id = $this->repository->saveRecord($record); $this->assertEquals(1, $id); $record = $this->repository->createRecord('New Record'); $record->setProperty('source', 'b'); $id = $this->repository->saveRecord($record); $this->assertEquals(2, $id); $record = $this->repository->createRecord('Differing Name'); $record->setProperty('source', 'c'); $id = $this->repository->saveRecord($record); $this->assertEquals(3, $id); $records = $this->repository->getRecords('name = New Record'); $this->assertCount(2, $records); $filter1 = new PropertyFilter('name = New Record'); $filter2 = new PropertyFilter('name = Differing Name'); $orFilter = new ORFilter([$filter1, $filter2]); $records = $this->repository->getRecords($orFilter); $this->assertCount(3, $records); $records = $this->repository->getRecords('source > b'); $this->assertCount(1, $records); $filter1 = new PropertyFilter('source > a'); $filter2 = new PropertyFilter('name = Differing Name'); $andFilter = new ANDFilter([$filter1, $filter2]); $records = $this->repository->getRecords($andFilter); $this->assertCount(1, $records); }
public function testGetSortedRecords() { $this->repository->selectContentType('example01'); for ($i = 1; $i <= 10; $i++) { $record = $this->repository->createRecord('New Record'); $record->setPosition(11 - $i); $id = $this->repository->saveRecord($record); $this->assertEquals($i, $id); } $records = $this->repository->getSortedRecords(0); $this->assertEquals([10, 9, 8, 7, 6, 5, 4, 3, 2, 1], array_keys($records)); }
public function testSaveRecords() { $this->repository->selectContentType('example01'); for ($i = 1; $i <= 5; $i++) { $record = $this->repository->createRecord('New Record ' . $i); $this->assertEquals('DEFAULT', $record->getProperty('article', 'DEFAULT')); $record->setProperty('article', ''); $id = $this->repository->saveRecord($record); $this->assertEquals($i, $id); } $record = $this->repository->getRecord(1); $this->assertEquals('DEFAULT', $record->getProperty('article', 'DEFAULT')); $record->setProperty('article', 0); $id = $this->repository->saveRecord($record); $record = $this->repository->getRecord(1); $this->assertEquals('0', $record->getProperty('article', 'DEFAULT')); $record->setProperty('article', null); $id = $this->repository->saveRecord($record); $record = $this->repository->getRecord(1); $this->assertEquals('DEFAULT', $record->getProperty('article', 'DEFAULT')); }
public function testSliceRecords() { $this->repository->selectContentType('example01'); for ($i = 1; $i <= 10; $i++) { $record = $this->repository->createRecord('New Record'); $record->setProperty('source', $i); $id = $this->repository->saveRecord($record); $this->assertEquals($i, $id); } $records = $this->repository->getRecords('', ['.id'], 1, 5); $this->assertCount(5, $records); $records = $this->repository->getRecords('', ['.id'], 2, 5); $this->assertCount(5, $records); $records = $this->repository->getRecords('', ['.id'], 3, 5); $this->assertCount(0, $records); $records = $this->repository->getRecords('', ['.id'], 99, 99); $this->assertCount(0, $records); $records = $this->repository->getRecords('', ['.id'], 1, 6); $this->assertCount(6, $records); $records = $this->repository->getRecords('', ['.id'], 2, 6); $this->assertCount(4, $records); }
public function testSaveRecords() { $this->repository->selectContentType('example01'); for ($i = 1; $i <= 5; $i++) { $record = $this->repository->createRecord('New Record ' . $i); $record->setProperty('article', 'Test ' . $i); $id = $this->repository->saveRecord($record); $this->assertEquals($i, $id); } for ($i = 2; $i <= 5; $i++) { $record = $this->repository->createRecord('New Record 1 - Revision ' . $i); $record->setId(1); $id = $this->repository->saveRecord($record); $this->assertEquals(1, $id); $this->assertEquals($i, $record->getRevision()); } $record = $this->repository->getRecord(1); $this->assertEquals(5, $record->getRevision()); $records = $this->repository->getRecords(); $this->assertCount(5, $records); $this->assertEquals(5, $this->repository->countRecords()); $record = $this->repository->getRecord(99); $this->assertFalse($record); }
public function testSaveRecords() { $this->repository->selectContentType('example01'); for ($i = 1; $i <= 5; $i++) { $record = $this->repository->createRecord('New Record ' . $i); $record->setProperty('article', 'Test ' . $i); $id = $this->repository->saveRecord($record); $this->assertEquals($i, $id); } $this->repository->selectLanguage('es'); for ($i = 1; $i <= 5; $i++) { $record = $this->repository->createRecord('New Record ' . (5 + $i)); $record->setProperty('article', 'Test ' . (5 + $i)); $id = $this->repository->saveRecord($record); $this->assertEquals(5 + $i, $id); } $this->repository->selectWorkspace('live'); for ($i = 1; $i <= 5; $i++) { $record = $this->repository->createRecord('New Record ' . (10 + $i)); $record->setProperty('article', 'Test ' . (10 + $i)); $id = $this->repository->saveRecord($record); $this->assertEquals(10 + $i, $id); } $this->repository->reset(); $c = $this->repository->countRecords(); $this->assertEquals(5, $c); $this->repository->selectLanguage('es'); $c = $this->repository->countRecords(); $this->assertEquals(5, $c); $this->repository->selectWorkspace('live'); $c = $this->repository->countRecords(); $this->assertEquals(5, $c); $this->repository->selectLanguage('default'); $c = $this->repository->countRecords(); $this->assertEquals(0, $c); }
public static function setUpBeforeClass() { if (defined('PHPUNIT_CREDENTIALS_MYSQL_SCHEMALESS_HOST')) { $source = __DIR__ . '/../../resources/ContentArchiveExample1/cmdl'; $target = __DIR__ . '/../../../tmp/MySqlSchemaLessCMDL'; $fs = new Filesystem(); if (file_exists($target)) { $fs->remove($target); } $fs->mirror($source, $target); $configuration = new MySQLSchemalessConfiguration(); $configuration->initDatabase(PHPUNIT_CREDENTIALS_MYSQL_SCHEMALESS_HOST, PHPUNIT_CREDENTIALS_MYSQL_SCHEMALESS_DBNAME, PHPUNIT_CREDENTIALS_MYSQL_SCHEMALESS_USERNAME, PHPUNIT_CREDENTIALS_MYSQL_SCHEMALESS_PASSWORD); $configuration->setCMDLFolder($target); $configuration->setRepositoryName('phpunit'); $configuration->addContentTypes(); $database = $configuration->getDatabase(); $database->execute('DROP TABLE IF EXISTS _cmdl_'); $database->execute('DROP TABLE IF EXISTS _counter_'); $database->execute('DROP TABLE IF EXISTS phpunit$profiles'); $connection = $configuration->createReadWriteConnection(); $repository = new Repository('phpunit', $connection); $repository->selectContentType('profiles'); $record = $repository->createRecord('Agency 1', 1); $repository->saveRecord($record); $record = $repository->createRecord('Agency 2', 2); $repository->saveRecord($record); $record = $repository->createRecord('Agency 5', 5); $repository->saveRecord($record); $repository->selectWorkspace('live'); $record = $repository->createRecord('Agency 1', 1); $repository->saveRecord($record); $record = $repository->createRecord('Agency 2', 2); $repository->saveRecord($record); KVMLoggerFactory::createWithKLogger(__DIR__ . '/../../../tmp'); } }
public function saveRecord(Record $record) { $this->flushCacheBeforeChange(); $result = parent::saveRecord($record); $this->flushCacheAfterChange(); return $result; }
/** * Test showing the flaws of the full flash cache strategy * * @throws \AnyContent\AnyContentClientException */ public function testCacheStrategyFailure() { $repository = $this->repository; $repository->enableSingleContentRecordCaching(60); $repository->enableAllContentRecordsCaching(60); $repository->selectContentType('profiles'); $record = $repository->getRecord(1); $this->assertEquals('UDG', $record->getName()); $nonCachingRepository = new Repository('phpunit', $this->connection); $nonCachingRepository->selectContentType('profiles'); $record = $nonCachingRepository->getRecord(1); $this->assertEquals('UDG', $record->getName()); $record->setName(''); $nonCachingRepository->saveRecord($record); $record = $nonCachingRepository->getRecord(1); $this->assertEquals('', $record->getName()); $record = $repository->getRecord(1); $this->assertEquals('UDG', $record->getName()); }