diff --git a/.travis.yml b/.travis.yml index 2e3264b..6f10070 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,31 +7,32 @@ env: matrix: include: - php: 5.6 - env: DB=MYSQL PHPCS_TEST=1 PHPUNIT_TEST=1 + env: DB=MYSQL INSTALLER_VERSION=4.0.x-dev PHPCS_TEST=1 PHPUNIT_TEST=1 - php: 7.0 - env: DB=PGSQL PHPUNIT_TEST=1 + env: DB=PGSQL INSTALLER_VERSION=4.1.x-dev PHPUNIT_TEST=1 - php: 7.1 - env: DB=MYSQL PHPUNIT_COVERAGE_TEST=1 + env: DB=MYSQL INSTALLER_VERSION=4.1.x-dev PHPUNIT_COVERAGE_TEST=1 - php: 7.1 - env: DB=MYSQL PHPUNIT_TEST=1 SUBSITES=1 + env: DB=MYSQL INSTALLER_VERSION=4.2.x-dev PHPUNIT_TEST=1 SUBSITES=1 - php: 7.2 - env: DB=MYSQL PHPUNIT_TEST=1 + env: DB=MYSQL INSTALLER_VERSION=4.x-dev PHPUNIT_TEST=1 before_script: - phpenv rehash - phpenv config-rm xdebug.ini + - echo 'memory_limit=2G' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini - composer validate - composer require --no-update symbiote/silverstripe-queuedjobs ^4.0 - if [[ $SUBSITES ]]; then composer require --no-update silverstripe/subsites 2.0.x-dev; fi - if [[ $DB == "PGSQL" ]]; then composer require --no-update silverstripe/postgresql 2.0.x-dev; fi - - composer require --no-update silverstripe/installer 4.0.x-dev + - composer require --no-update silverstripe/installer "$INSTALLER_VERSION" - composer install --prefer-dist --no-interaction --no-progress --no-suggest --optimize-autoloader --verbose --profile script: - if [[ $PHPUNIT_TEST ]]; then vendor/bin/phpunit; fi - if [[ $PHPUNIT_COVERAGE_TEST ]]; then phpdbg -qrr vendor/bin/phpunit --coverage-clover=coverage.xml; fi - - if [[ $PHPCS_TEST ]]; then vendor/bin/phpcs --standard=vendor/silverstripe/framework/phpcs.xml.dist src tests; fi + - if [[ $PHPCS_TEST ]]; then vendor/bin/phpcs src tests; fi after_success: - if [[ $PHPUNIT_COVERAGE_TEST ]]; then bash <(curl -s https://codecov.io/bash) -f coverage.xml; fi diff --git a/phpcs.xml.dist b/phpcs.xml.dist new file mode 100644 index 0000000..d413415 --- /dev/null +++ b/phpcs.xml.dist @@ -0,0 +1,14 @@ + + + CodeSniffer ruleset for SilverStripe coding conventions. + + + + + + + + + + + diff --git a/tests/SolrReindexQueuedTest.php b/tests/SolrReindexQueuedTest.php index 84e1c42..038b869 100644 --- a/tests/SolrReindexQueuedTest.php +++ b/tests/SolrReindexQueuedTest.php @@ -5,23 +5,19 @@ namespace SilverStripe\FullTextSearch\Tests; use SilverStripe\Core\Config\Config; use SilverStripe\Core\Injector\Injector; use SilverStripe\Dev\SapphireTest; -use SilverStripe\FullTextSearch\Solr\Services\SolrService; -use SilverStripe\ORM\DataObject; -use SilverStripe\ORM\DB; use SilverStripe\FullTextSearch\Search\FullTextSearch; -use SilverStripe\FullTextSearch\Search\Updaters\SearchUpdater; -use SilverStripe\FullTextSearch\Solr\Reindex\Handlers\SolrReindexQueuedHandler; use SilverStripe\FullTextSearch\Solr\Reindex\Handlers\SolrReindexHandler; -use SilverStripe\FullTextSearch\Solr\Services\Solr4Service; -use SilverStripe\FullTextSearch\Solr\Reindex\Jobs\SolrReindexQueuedJob; +use SilverStripe\FullTextSearch\Solr\Reindex\Handlers\SolrReindexQueuedHandler; use SilverStripe\FullTextSearch\Solr\Reindex\Jobs\SolrReindexGroupQueuedJob; -use SilverStripe\FullTextSearch\Tests\SolrReindexTest\SolrReindexTest_Variant; +use SilverStripe\FullTextSearch\Solr\Reindex\Jobs\SolrReindexQueuedJob; +use SilverStripe\FullTextSearch\Solr\Services\Solr4Service; +use SilverStripe\FullTextSearch\Solr\Services\SolrService; +use SilverStripe\FullTextSearch\Tests\SolrReindexQueuedTest\SolrReindexQueuedTest_Service; use SilverStripe\FullTextSearch\Tests\SolrReindexTest\SolrReindexTest_Index; use SilverStripe\FullTextSearch\Tests\SolrReindexTest\SolrReindexTest_Item; use SilverStripe\FullTextSearch\Tests\SolrReindexTest\SolrReindexTest_RecordingLogger; -use SilverStripe\FullTextSearch\Tests\SolrReindexQueuedTest\SolrReindexQueuedTest_Service; +use SilverStripe\FullTextSearch\Tests\SolrReindexTest\SolrReindexTest_Variant; use Symbiote\QueuedJobs\Services\QueuedJob; -use Symbiote\QueuedJobs\Services\QueuedJobService; /** * Additional tests of solr reindexing processes when run with queuedjobs @@ -80,13 +76,9 @@ class SolrReindexQueuedTest extends SapphireTest */ protected function createDummyData($number) { - // Populate dataobjects. Use truncate to generate predictable IDs - $tableName = DataObject::getSchema()->tableName(SolrReindexTest_Item::class); - DB::get_conn()->clearTable($tableName); - // Note that we don't create any records in variant = 2, to represent a variant // that should be cleared without any re-indexes performed - foreach (array(0, 1) as $variant) { + foreach ([0, 1] as $variant) { for ($i = 1; $i <= $number; $i++) { $item = new SolrReindexTest_Item(); $item->Variant = $variant; @@ -104,7 +96,7 @@ class SolrReindexQueuedTest extends SapphireTest protected function serviceMock() { // Setup mock - /** @var SilverStripe\FullTextSearch\Solr\Services\Solr4Service|ObjectProphecy $serviceMock */ + /** @var Solr4Service $serviceMock */ $serviceMock = $this->getMockBuilder(Solr4Service::class) ->setMethods(['deleteByQuery', 'addDocument']) ->getMock(); @@ -112,7 +104,7 @@ class SolrReindexQueuedTest extends SapphireTest return $serviceMock; } - public function tearDown() + protected function tearDown() { FullTextSearch::force_index_list(); SolrReindexTest_Variant::disable(); @@ -212,6 +204,7 @@ class SolrReindexQueuedTest extends SapphireTest $this->assertEquals(6, $logger->countMessages('Queued Solr Reindex Group')); // Check next job is a group queued job + /** @var SolrReindexGroupQueuedJob $job */ $job = $this->getQueuedJobService()->getNextJob(); $this->assertInstanceOf(SolrReindexGroupQueuedJob::class, $job); $this->assertEquals( diff --git a/tests/SolrReindexQueuedTest/SolrReindexQueuedTest_Service.php b/tests/SolrReindexQueuedTest/SolrReindexQueuedTest_Service.php index 7150b55..e44912b 100644 --- a/tests/SolrReindexQueuedTest/SolrReindexQueuedTest_Service.php +++ b/tests/SolrReindexQueuedTest/SolrReindexQueuedTest_Service.php @@ -3,13 +3,13 @@ namespace SilverStripe\FullTextSearch\Tests\SolrReindexQueuedTest; use SilverStripe\Dev\TestOnly; +use Symbiote\QueuedJobs\Services\QueuedJob; +use Symbiote\QueuedJobs\Services\QueuedJobService; -if (!class_exists('Symbiote\QueuedJobs\Services\QueuedJobService')) { +if (!class_exists(QueuedJobService::class)) { return; } -use Symbiote\QueuedJobs\Services\QueuedJobService; - class SolrReindexQueuedTest_Service extends QueuedJobService implements TestOnly { private static $dependencies = [ diff --git a/tests/SolrReindexTest.php b/tests/SolrReindexTest.php index 0a34397..c64e0f5 100644 --- a/tests/SolrReindexTest.php +++ b/tests/SolrReindexTest.php @@ -2,22 +2,20 @@ namespace SilverStripe\FullTextSearch\Tests; -use SilverStripe\Dev\SapphireTest; -use SilverStripe\FullTextSearch\Search\FullTextSearch; -use SilverStripe\FullTextSearch\Search\Updaters\SearchUpdater; -use SilverStripe\FullTextSearch\Search\Variants\SearchVariant; -use SilverStripe\FullTextSearch\Tests\SolrReindexTest\SolrReindexTest_Variant; -use SilverStripe\FullTextSearch\Tests\SolrReindexTest\SolrReindexTest_Index; -use SilverStripe\FullTextSearch\Tests\SolrReindexTest\SolrReindexTest_TestHandler; -use SilverStripe\FullTextSearch\Tests\SolrReindexTest\SolrReindexTest_Item; -use SilverStripe\FullTextSearch\Tests\SolrReindexTest\SolrReindexTest_RecordingLogger; -use SilverStripe\FullTextSearch\Solr\Reindex\Handlers\SolrReindexHandler; -use SilverStripe\FullTextSearch\Solr\Services\Solr4Service; -use SilverStripe\FullTextSearch\Solr\Tasks\Solr_Reindex; use SilverStripe\Core\Config\Config; use SilverStripe\Core\Injector\Injector; -use SilverStripe\ORM\DataObject; -use SilverStripe\ORM\DB; +use SilverStripe\Dev\SapphireTest; +use SilverStripe\FullTextSearch\Search\FullTextSearch; +use SilverStripe\FullTextSearch\Search\Variants\SearchVariant; +use SilverStripe\FullTextSearch\Solr\Reindex\Handlers\SolrReindexHandler; +use SilverStripe\FullTextSearch\Solr\Services\Solr4Service; +use SilverStripe\FullTextSearch\Solr\Services\SolrService; +use SilverStripe\FullTextSearch\Solr\Tasks\Solr_Reindex; +use SilverStripe\FullTextSearch\Tests\SolrReindexTest\SolrReindexTest_Index; +use SilverStripe\FullTextSearch\Tests\SolrReindexTest\SolrReindexTest_Item; +use SilverStripe\FullTextSearch\Tests\SolrReindexTest\SolrReindexTest_RecordingLogger; +use SilverStripe\FullTextSearch\Tests\SolrReindexTest\SolrReindexTest_TestHandler; +use SilverStripe\FullTextSearch\Tests\SolrReindexTest\SolrReindexTest_Variant; class SolrReindexTest extends SapphireTest { @@ -70,11 +68,9 @@ class SolrReindexTest extends SapphireTest */ protected function createDummyData($number) { - self::resetDBSchema(); - // Note that we don't create any records in variant = 2, to represent a variant // that should be cleared without any re-indexes performed - foreach (array(0, 1) as $variant) { + foreach ([0, 1] as $variant) { for ($i = 1; $i <= $number; $i++) { $item = new SolrReindexTest_Item(); $item->Variant = $variant; @@ -97,7 +93,7 @@ class SolrReindexTest extends SapphireTest return $serviceMock->getMock(); } - public function tearDown() + protected function tearDown() { FullTextSearch::force_index_list(); SolrReindexTest_Variant::disable();