NEW Remove Phockito test dependency, update config API use

This commit is contained in:
Robbie Averill 2017-08-25 15:19:45 +12:00
parent 9dcfc4f337
commit 2131840da4
6 changed files with 108 additions and 111 deletions

View File

@ -18,7 +18,6 @@
"silverstripe/framework": "^4.0@dev"
},
"require-dev": {
"hafriedlander/phockito": "dev-master",
"silverstripe/versioned": "^1.0@dev"
},
"extra": {
@ -28,11 +27,7 @@
},
"autoload": {
"psr-4": {
"SilverStripe\\EnvironmentCheck\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"SilverStripe\\EnvironmentCheck\\": "src/",
"SilverStripe\\EnvironmentCheck\\Tests\\": "tests/"
}
}

View File

@ -193,10 +193,10 @@ class EnvironmentChecker extends RequestHandler
'ErrorCode' => $this->errorCode,
])->renderWith(__CLASS__);
if ($this->config()->email_results && !$result->ShouldPass()) {
if ($this->config()->get('email_results') && !$result->ShouldPass()) {
$email = new Email(
$this->config()->from_email_address,
$this->config()->to_email_address,
$this->config()->get('from_email_address'),
$this->config()->get('to_email_address'),
$this->title,
$resultText
);
@ -205,15 +205,15 @@ class EnvironmentChecker extends RequestHandler
// Optionally log errors and warnings individually
foreach ($result->Details() as $detail) {
if ($this->config()->log_results_warning && $detail->StatusCode == EnvironmentCheck::WARNING) {
if ($this->config()->get('log_results_warning') && $detail->StatusCode == EnvironmentCheck::WARNING) {
$this->log(
sprintf('EnvironmentChecker warning at "%s" check. Message: %s', $detail->Check, $detail->Message),
$this->config()->log_results_warning_level
$this->config()->get('log_results_warning_level')
);
} elseif ($this->config()->log_results_error && $detail->StatusCode == EnvironmentCheck::ERROR) {
} elseif ($this->config()->get('log_results_error') && $detail->StatusCode == EnvironmentCheck::ERROR) {
$this->log(
sprintf('EnvironmentChecker error at "%s" check. Message: %s', $detail->Check, $detail->Message),
$this->config()->log_results_error_level
$this->config()->get('log_results_error_level')
);
}
}
@ -260,7 +260,7 @@ class EnvironmentChecker extends RequestHandler
public static function set_from_email_address($from)
{
Deprecation::notice('2.0', 'Use config API instead');
Config::modify()->set(__CLASS__, 'from_email_address', $from);
static::config()->set('from_email_address', $from);
}
/**
@ -270,7 +270,7 @@ class EnvironmentChecker extends RequestHandler
public static function get_from_email_address()
{
Deprecation::notice('2.0', 'Use config API instead');
return Config::inst()->get(__CLASS__, 'from_email_address');
return static::config()->get('from_email_address');
}
/**
@ -280,7 +280,7 @@ class EnvironmentChecker extends RequestHandler
public static function set_to_email_address($to)
{
Deprecation::notice('2.0', 'Use config API instead');
Config::modify()->set(__CLASS__, 'to_email_address', $to);
static::config()->set('to_email_address', $to);
}
/**
@ -290,7 +290,7 @@ class EnvironmentChecker extends RequestHandler
public static function get_to_email_address()
{
Deprecation::notice('2.0', 'Use config API instead');
return Config::inst()->get(__CLASS__, 'to_email_address');
return static::config()->get('to_email_address');
}
/**
@ -300,7 +300,7 @@ class EnvironmentChecker extends RequestHandler
public static function set_email_results($results)
{
Deprecation::notice('2.0', 'Use config API instead');
Config::modify()->set(__CLASS__, 'email_results', $results);
static::config()->set('email_results', $results);
}
/**
@ -310,6 +310,6 @@ class EnvironmentChecker extends RequestHandler
public static function get_email_results()
{
Deprecation::notice('2.0', 'Use config API instead');
return Config::inst()->get(__CLASS__, 'email_results');
return static::config()->get('email_results');
}
}

View File

@ -2,13 +2,12 @@
namespace SilverStripe\EnvironmentCheck\Tests;
use Phockito;
use Monolog\Logger;
use Psr\Log\LoggerInterface;
use Psr\Log\LogLevel;
use SilverStripe\Core\Config\Config;
use SilverStripe\Core\Injector\Injector;
use SilverStripe\Dev\SapphireTest;
use SilverStripe\Dev\TestOnly;
use SilverStripe\EnvironmentCheck\EnvironmentCheck;
use SilverStripe\EnvironmentCheck\EnvironmentChecker;
use SilverStripe\EnvironmentCheck\EnvironmentCheckSuite;
@ -19,43 +18,11 @@ use SilverStripe\EnvironmentCheck\EnvironmentCheckSuite;
*/
class EnvironmentCheckerTest extends SapphireTest
{
/**
* {@inheritDoc}
* @var bool
*/
protected $usesDatabase = true;
/**
* {@inheritDoc}
*/
public static function setUpBeforeClass()
protected function tearDown()
{
parent::setUpBeforeClass();
Phockito::include_hamcrest();
$logger = Injector::inst()->get(LoggerInterface::class);
if ($logger instanceof \Monolog\Logger) {
// It logs to stderr by default - disable
$logger->pushHandler(new \Monolog\Handler\NullHandler);
}
}
/**
* {@inheritDoc}
*/
public function setUp()
{
parent::setUp();
Config::nest();
}
/**
* {@inheritDoc}
*/
public function tearDown()
{
Config::unnest();
EnvironmentCheckSuite::reset();
parent::tearDown();
}
@ -63,75 +30,68 @@ class EnvironmentCheckerTest extends SapphireTest
{
Config::modify()->set(EnvironmentChecker::class, 'log_results_warning', true);
Config::modify()->set(EnvironmentChecker::class, 'log_results_error', true);
EnvironmentCheckSuite::register('test suite', new EnvironmentCheckerTest_CheckNoErrors());
$checker = Phockito::spy(
EnvironmentChecker::class,
'test suite',
'test'
);
$response = $checker->index();
Phockito::verify($checker, 0)->log(\anything(), \anything());
EnvironmentCheckSuite::reset();
EnvironmentCheckSuite::register('test suite', new EnvironmentCheckerTest\CheckNoErrors());
$logger = $this->getMockBuilder(Logger::class)
->disableOriginalConstructor()
->setMethods(['log'])
->getMock();
$logger->expects($this->never())->method('log');
Injector::inst()->registerService($logger, LoggerInterface::class);
(new EnvironmentChecker('test suite', 'test'))->index();
}
public function testLogsWithWarnings()
{
Config::modify()->set(EnvironmentChecker::class, 'log_results_warning', true);
Config::modify()->set(EnvironmentChecker::class, 'log_results_error', false);
EnvironmentCheckSuite::register('test suite', new EnvironmentCheckerTest_CheckWarnings());
EnvironmentCheckSuite::register('test suite', new EnvironmentCheckerTest_CheckErrors());
$checker = Phockito::spy(
EnvironmentChecker::class,
'test suite',
'test'
);
$response = $checker->index();
Phockito::verify($checker, 1)->log(containsString('warning'), \anything());
Phockito::verify($checker, 0)->log(containsString('error'), \anything());
EnvironmentCheckSuite::reset();
EnvironmentCheckSuite::register('test suite', new EnvironmentCheckerTest\CheckWarnings());
EnvironmentCheckSuite::register('test suite', new EnvironmentCheckerTest\CheckErrors());
$logger = $this->getMockBuilder(Logger::class)
->disableOriginalConstructor()
->setMethods(['log'])
->getMock();
$logger->expects($this->once())
->method('log')
->withConsecutive(
$this->equalTo(LogLevel::WARNING),
$this->anything()
);
Injector::inst()->registerService($logger, LoggerInterface::class);
(new EnvironmentChecker('test suite', 'test'))->index();
}
public function testLogsWithErrors()
{
Config::modify()->set(EnvironmentChecker::class, 'log_results_error', false);
Config::modify()->set(EnvironmentChecker::class, 'log_results_error', true);
EnvironmentCheckSuite::register('test suite', new EnvironmentCheckerTest_CheckWarnings());
EnvironmentCheckSuite::register('test suite', new EnvironmentCheckerTest_CheckErrors());
$checker = Phockito::spy(
EnvironmentChecker::class,
'test suite',
'test'
);
$response = $checker->index();
Phockito::verify($checker, 0)->log(containsString('warning'), \anything());
Phockito::verify($checker, 1)->log(containsString('error'), \anything());
EnvironmentCheckSuite::reset();
}
}
class EnvironmentCheckerTest_CheckNoErrors implements EnvironmentCheck, TestOnly
{
public function check()
{
return [EnvironmentCheck::OK, ''];
}
}
class EnvironmentCheckerTest_CheckWarnings implements EnvironmentCheck, TestOnly
{
public function check()
{
return [EnvironmentCheck::WARNING, 'test warning'];
}
}
class EnvironmentCheckerTest_CheckErrors implements EnvironmentCheck, TestOnly
{
public function check()
{
return [EnvironmentCheck::ERROR, 'test error'];
EnvironmentCheckSuite::register('test suite', new EnvironmentCheckerTest\CheckWarnings());
EnvironmentCheckSuite::register('test suite', new EnvironmentCheckerTest\CheckErrors());
$logger = $this->getMockBuilder(Logger::class)
->disableOriginalConstructor()
->setMethods(['log'])
->getMock();
$logger->expects($this->once())
->method('log')
->withConsecutive(
[$this->equalTo(LogLevel::ALERT), $this->anything()],
[$this->equalTo(LogLevel::WARNING), $this->anything()]
);
Injector::inst()->registerService($logger, LoggerInterface::class);
(new EnvironmentChecker('test suite', 'test'))->index();
}
}

View File

@ -0,0 +1,14 @@
<?php
namespace SilverStripe\EnvironmentCheck\Tests\EnvironmentCheckerTest;
use SilverStripe\Dev\TestOnly;
use SilverStripe\EnvironmentCheck\EnvironmentCheck;
class CheckErrors implements EnvironmentCheck, TestOnly
{
public function check()
{
return [EnvironmentCheck::ERROR, 'test error'];
}
}

View File

@ -0,0 +1,14 @@
<?php
namespace SilverStripe\EnvironmentCheck\Tests\EnvironmentCheckerTest;
use SilverStripe\Dev\TestOnly;
use SilverStripe\EnvironmentCheck\EnvironmentCheck;
class CheckNoErrors implements EnvironmentCheck, TestOnly
{
public function check()
{
return [EnvironmentCheck::OK, ''];
}
}

View File

@ -0,0 +1,14 @@
<?php
namespace SilverStripe\EnvironmentCheck\Tests\EnvironmentCheckerTest;
use SilverStripe\Dev\TestOnly;
use SilverStripe\EnvironmentCheck\EnvironmentCheck;
class CheckWarnings implements EnvironmentCheck, TestOnly
{
public function check()
{
return [EnvironmentCheck::WARNING, 'test warning'];
}
}