Beispiel #1
0
 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'"));
 }
Beispiel #2
0
 /**
  * @param Config $config // not used anywhere in real aps (yet? - analyze)
  * @param Logger $logger
  * @param Temp $temp
  * @param array $metadata
  * @return static
  */
 public static function create(Config $config, Monolog $logger, Temp $temp, array $metadata = [])
 {
     // TODO move this if to $this->validateStruct altogether
     if (!empty($metadata['json_parser.struct']) && is_array($metadata['json_parser.struct'])) {
         if (empty($metadata['json_parser.structVersion']) || $metadata['json_parser.structVersion'] != Struct::STRUCT_VERSION) {
             // temporary
             $metadata['json_parser.struct'] = self::updateStruct($metadata['json_parser.struct']);
         }
         $struct = $metadata['json_parser.struct'];
     } else {
         $struct = [];
     }
     $rowsToAnalyze = null != $config && !empty($config->getRuntimeParams()["analyze"]) ? $config->getRuntimeParams()["analyze"] : -1;
     $parser = JsonParser::create($logger, $struct, $rowsToAnalyze);
     $parser->setTemp($temp);
     return new static($parser);
 }
 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']));
 }
 protected function getParser()
 {
     return Parser::create(new \Monolog\Logger('test', [new \Monolog\Handler\TestHandler()]));
 }
Beispiel #5
0
 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', []));
 }