public function testProcessNoData() { $logHandler = new \Monolog\Handler\TestHandler(); $logger = new \Monolog\Logger('test', [$logHandler]); Logger::setLogger($logger); $parser = new Json(Parser::create($logger)); $parser->process([], 'empty'); self::assertTrue($logHandler->hasDebug("No data returned in 'empty'")); }
public function testNestedArrays() { $logHandler = new \Monolog\Handler\TestHandler(); $parser = Parser::create(new \Monolog\Logger('test', [$logHandler])); $parser->getAnalyzer()->setNestedArrayAsJson(true); $data = [[1, 2, 3, [7, 8]], [4, 5, 6]]; $parser->process($data); self::assertEquals(true, $logHandler->hasWarning("Unsupported array nesting in 'root'! Converting to JSON string."), "Warning should have been logged"); self::assertEquals(file_get_contents($this->getDataDir() . 'NestedArraysJson.csv'), file_get_contents($parser->getCsvFiles()['root'])); }
/** * @return array */ public function getMetadata() { return ['json_parser.struct' => $this->parser->getStruct()->getStruct(), 'json_parser.structVersion' => $this->parser->getStructVersion()]; }
protected function getParser() { return Parser::create(new \Monolog\Logger('test', [new \Monolog\Handler\TestHandler()])); }
public function testGetDataTypeFromEndpoint() { $jobConfig = JobConfig::create(['endpoint' => 'resources/res.json']); $job = $this->getMockForAbstractClass('Keboola\\Juicer\\Extractor\\Job', [$jobConfig, RestClient::create(), new Json(Parser::create($this->getLogger('job', true)))]); $this->assertEquals($jobConfig->getEndpoint(), $this->callMethod($job, 'getDataType', [])); }