/** * @covers Monolog\Handler\ElasticSearchHandler::write * @covers Monolog\Handler\ElasticSearchHandler::handleBatch * @covers Monolog\Handler\ElasticSearchHandler::bulkSend * @covers Monolog\Handler\ElasticSearchHandler::getDefaultFormatter */ public function testHandle() { // log message $msg = array('level' => Logger::ERROR, 'level_name' => 'ERROR', 'channel' => 'meh', 'context' => array('foo' => 7, 'bar', 'class' => new \stdClass()), 'datetime' => new \DateTime("@0"), 'extra' => array(), 'message' => 'log'); // format expected result $formatter = new ElasticaFormatter($this->options['index'], $this->options['type']); $expected = array($formatter->format($msg)); // setup ES client mock $this->client->expects($this->any())->method('addDocuments')->with($expected); // perform tests $handler = new ElasticSearchHandler($this->client, $this->options); $handler->handle($msg); $handler->handleBatch(array($msg)); }
/** * @covers Monolog\Formatter\ElasticaFormatter::__construct * @covers Monolog\Formatter\ElasticaFormatter::format * @covers Monolog\Formatter\ElasticaFormatter::getDocument */ public function testFormat() { // test log message $msg = array('level' => Logger::ERROR, 'level_name' => 'ERROR', 'channel' => 'meh', 'context' => array('foo' => 7, 'bar', 'class' => new \stdClass()), 'datetime' => new \DateTime("@0"), 'extra' => array(), 'message' => 'log'); // expected values $expected = $msg; $expected['datetime'] = '1970-01-01T00:00:00+0000'; $expected['context'] = array('class' => '[object] (stdClass: {})', 'foo' => 7, 0 => 'bar'); // format log message $formatter = new ElasticaFormatter('my_index', 'doc_type'); $doc = $formatter->format($msg); $this->assertInstanceOf('Elastica\\Document', $doc); // Document parameters $params = $doc->getParams(); $this->assertEquals('my_index', $params['_index']); $this->assertEquals('doc_type', $params['_type']); // Document data values $data = $doc->getData(); foreach (array_keys($expected) as $key) { $this->assertEquals($expected[$key], $data[$key]); } }