public function testDecoratorDestruct() { new LogDecorator(new Component(), $this->monolog); $this->assertTrue($this->handler->hasDebugRecords()); $this->assertFalse($this->handler->hasInfoRecords()); $this->assertCount(2, $this->handler->getRecords()); }
public function testProcessorRecords() { $Handler = new \Monolog\Handler\TestHandler(); $config = array('rules' => array('*' => array('error' => array('handler' => array('error-handler'), 'processor' => array('uid')))), 'handler' => array('error-handler' => $Handler), 'processor' => array('uid' => array('type' => 'Monolog\\Processor\\UidProcessor', 'args' => array()))); Monoconf::config($config); $Logger = Monoconf::getLogger('MyApp\\Other\\Class'); $Logger->error('foo'); $this->assertTrue($Handler->hasErrorRecords('foo')); $records = $Handler->getRecords(); $this->assertTrue(isset($records[0]['extra']['uid'])); }
/** * Cannot use dataProvider because that gets set up before all tests * and the delay causes issues */ public function testCurlBackoff() { // mapped curl error $retries = 3; $handler = new \Monolog\Handler\TestHandler(); $logger = new \Monolog\Logger("test", [$handler]); Logger::setLogger($logger); $client = RestClient::create([], ['maxRetries' => $retries, 'curl' => ['codes' => [6]]]); try { $client->download(new RestRequest('http://keboolakeboolakeboola.com')); $this->fail("Request shoul fail"); } catch (\Exception $e) { $this->assertCount($retries, $handler->getRecords()); foreach ($handler->getRecords() as $record) { $this->assertEquals(100, $record['level']); $this->assertRegExp('/retrying/ui', $record['message']); $this->assertRegExp('/curl error 6\\:/ui', $record['context']['message']); } $this->assertRegExp('/curl error 6\\:/ui', $e->getMessage()); $this->assertTrue($e instanceof \Keboola\Juicer\Exception\UserException); } // non-mapped curl error $retries = 3; $handler = new \Monolog\Handler\TestHandler(); $logger = new \Monolog\Logger("test", [$handler]); Logger::setLogger($logger); $client = RestClient::create([], ['maxRetries' => $retries, 'curl' => ['codes' => [77]]]); try { $client->download(new RestRequest('http://keboolakeboolakeboola.com')); $this->fail("Request shoul fail"); } catch (\Exception $e) { $this->assertCount(0, $handler->getRecords()); $this->assertRegExp('/curl error 6\\:/ui', $e->getMessage()); $this->assertTrue($e instanceof \Keboola\Juicer\Exception\UserException); } }