From 03a206109a8fc098b07264400b00f401252270d9 Mon Sep 17 00:00:00 2001 From: Hamish Friedlander Date: Mon, 2 Sep 2013 10:10:14 +1200 Subject: [PATCH] Make tests run --- .travis.yml | 5 ++--- code/search/SearchIndex.php | 4 ++-- composer.json | 1 + tests/SearchUpdaterTest.php | 18 +++++++++++------- ...archVariantSiteTreeSubsitesPolyhomeTest.php | 2 +- tests/SearchVariantVersionedTest.php | 2 +- tests/SolrIndexTest.php | 11 ++++++----- 7 files changed, 24 insertions(+), 19 deletions(-) diff --git a/.travis.yml b/.travis.yml index b42deee..8f1e3cf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,12 +6,11 @@ php: env: - DB=MYSQL CORE_RELEASE=3.1 - - DB=PGSQL CORE_RELEASE=master matrix: include: - - php: 5.4 - env: DB=MYSQL CORE_RELEASE=master + - php: 5.3 + env: DB=PGSQL CORE_RELEASE=3.1 before_script: - git clone git://github.com/silverstripe-labs/silverstripe-travis-support.git ~/travis-support diff --git a/code/search/SearchIndex.php b/code/search/SearchIndex.php index 15fe830..1dcc40c 100644 --- a/code/search/SearchIndex.php +++ b/code/search/SearchIndex.php @@ -464,13 +464,13 @@ abstract class SearchIndex extends ViewableData { foreach ($derivation['chain'] as $step) { if ($step['through'] == 'has_one') { - $sql = new SQLQuery('ID', $step['class'], $step['foreignkey'].' IN ('.implode(',', $ids).')'); + $sql = new SQLQuery('"ID"', '"'.$step['class'].'"', '"'.$step['foreignkey'].'" IN ('.implode(',', $ids).')'); singleton($step['class'])->extend('augmentSQL', $sql); $ids = $sql->execute()->column(); } else if ($step['through'] == 'has_many') { - $sql = new SQLQuery('"'.$step['class'].'"."ID"', $step['class'], '"'.$step['otherclass'].'"."ID" IN ('.implode(',', $ids).')'); + $sql = new SQLQuery('"'.$step['class'].'"."ID"', '"'.$step['class'].'"', '"'.$step['otherclass'].'"."ID" IN ('.implode(',', $ids).')'); $sql->addInnerJoin($step['otherclass'], '"'.$step['class'].'"."ID" = "'.$step['otherclass'].'"."'.$step['foreignkey'].'"'); singleton($step['class'])->extend('augmentSQL', $sql); diff --git a/composer.json b/composer.json index c3c6300..37bb90b 100644 --- a/composer.json +++ b/composer.json @@ -13,6 +13,7 @@ "silverstripe/framework": "~3.1" }, "require-dev": { + "silverstripe/cms": "~3.1", "hafriedlander/silverstripe-phockito": "*" }, "minimum-stability": "dev" diff --git a/tests/SearchUpdaterTest.php b/tests/SearchUpdaterTest.php index fe70838..52ab987 100644 --- a/tests/SearchUpdaterTest.php +++ b/tests/SearchUpdaterTest.php @@ -1,39 +1,39 @@ 'Varchar', 'Field2' => 'Varchar', 'MyDate' => 'Date', ); - static $has_one = array( + private static $has_one = array( 'HasOneObject' => 'SearchUpdaterTest_HasOne' ); - static $has_many = array( + private static $has_many = array( 'HasManyObjects' => 'SearchUpdaterTest_HasMany' ); } class SearchUpdaterTest_HasOne extends DataObject { - static $db = array( + private static $db = array( 'Field1' => 'Varchar', 'Field2' => 'Varchar' ); - static $has_many = array( + private static $has_many = array( 'HasManyContainers' => 'SearchUpdaterTest_Container' ); } class SearchUpdaterTest_HasMany extends DataObject { - static $db = array( + private static $db = array( 'Field1' => 'Varchar', 'Field2' => 'Varchar' ); - static $has_one = array( + private static $has_one = array( 'HasManyContainer' => 'SearchUpdaterTest_Container' ); } @@ -50,6 +50,8 @@ class SearchUpdaterTest_Index extends SearchIndex_Recording { class SearchUpdaterTest extends SapphireTest { + protected $usesDatabase = true; + private static $index = null; function setUp() { @@ -72,6 +74,8 @@ class SearchUpdaterTest extends SapphireTest { function tearDown() { Config::unnest(); + + parent::tearDown(); } function testBasic() { diff --git a/tests/SearchVariantSiteTreeSubsitesPolyhomeTest.php b/tests/SearchVariantSiteTreeSubsitesPolyhomeTest.php index d4be090..7337291 100644 --- a/tests/SearchVariantSiteTreeSubsitesPolyhomeTest.php +++ b/tests/SearchVariantSiteTreeSubsitesPolyhomeTest.php @@ -2,7 +2,7 @@ class SearchVariantSiteTreeSubsitesPolyhomeTest_Item extends SiteTree { // TODO: Currently theres a failure if you addClass a non-table class - static $db = array( + private static $db = array( 'TestText' => 'Varchar' ); } diff --git a/tests/SearchVariantVersionedTest.php b/tests/SearchVariantVersionedTest.php index 0d59f60..3c1e25c 100644 --- a/tests/SearchVariantVersionedTest.php +++ b/tests/SearchVariantVersionedTest.php @@ -2,7 +2,7 @@ class SearchVariantVersionedTest_Item extends SiteTree { // TODO: Currently theres a failure if you addClass a non-table class - static $db = array( + private static $db = array( 'TestText' => 'Varchar' ); } diff --git a/tests/SolrIndexTest.php b/tests/SolrIndexTest.php index b741768..0a7b5af 100644 --- a/tests/SolrIndexTest.php +++ b/tests/SolrIndexTest.php @@ -18,7 +18,7 @@ class SolrIndexTest extends SapphireTest { function testBoost() { $serviceMock = $this->getServiceMock(); - Phockito::when($serviceMock)->search()->return($this->getFakeRawSolrResponse()); + Phockito::when($serviceMock)->search(anything(), anything(), anything(), anything(), anything())->return($this->getFakeRawSolrResponse()); $index = new SolrIndexTest_FakeIndex(); $index->setService($serviceMock); @@ -31,7 +31,7 @@ class SolrIndexTest extends SapphireTest { ); $index->search($query); - Phockito::verify($serviceMock)->search('+(Field1:term^1.5 OR HasOneObject_Field1:term^3)'); + Phockito::verify($serviceMock)->search('+(Field1:term^1.5 OR HasOneObject_Field1:term^3)', anything(), anything(), anything(), anything()); } function testIndexExcludesNullValues() { @@ -58,8 +58,9 @@ class SolrIndexTest extends SapphireTest { } function testAddFieldExtraOptions() { - $origMode = Director::get_environment_type(); - Director::set_environment_type('live'); // dev mode would for stored=true for everything + Config::inst()->nest(); + Config::inst()->update('Director', 'environment_type', 'live'); // dev mode sets stored=true for everything + $index = new SolrIndexTest_FakeIndex(); $defs = simplexml_load_string('' . $index->getFieldDefinitions() . ''); @@ -71,7 +72,7 @@ class SolrIndexTest extends SapphireTest { $defField1 = $defs->xpath('field[@name="SearchUpdaterTest_Container_Field1"]'); $this->assertEquals((string)$defField1[0]['stored'], 'true'); - Director::set_environment_type($origMode); + Config::inst()->unnest(); } function testAddAnalyzer() {