public function testConvertToJSON() { $biomcs = new BiomCS(); // Test for conversion of biom content in HDF5 format $results = $biomcs->convertToJSON(file_get_contents(__DIR__ . '/../files/simpleBiom.hdf5')); $results_obj = json_decode($results, true); // var_dump($results_obj); $this->assertEquals("b'No Table ID'", $results_obj["id"]); $this->assertEquals("Biological Observation Matrix 1.0.0", $results_obj["format"]); $this->assertEquals(array(3, 1, 12), $results_obj["data"][1]); $this->assertEquals("OTU_8", $results_obj["rows"][7]["id"]); $this->assertEquals("Sample_3", $results_obj["columns"][2]["id"]); }
header("Content-Type: application/json"); require_once __DIR__ . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php'; // explicitly set CONTENT_TYPE if empty (required for testing) if (empty($_SERVER['CONTENT_TYPE'])) { $_SERVER['CONTENT_TYPE'] = "application/x-www-form-urlencoded"; } // load json data into $_REQUEST if content type is application/json if ($_SERVER["CONTENT_TYPE"] === 'application/json') { $_REQUEST = json_decode(file_get_contents('php://input'), true); } $to = isset($_REQUEST["to"]) ? $_REQUEST["to"] : false; $content = isset($_REQUEST["content"]) ? $_REQUEST["content"] : false; $content = base64_decode($content); if (!$to) { echo json_encode(array("error" => "Missing parameter 'to' please set to 'json' or 'hdf5'")); } elseif ($to !== 'json' && $to !== 'hdf5') { echo json_encode(array("error" => "Illegal value of 'to' parameter please set to 'json' or 'hdf5'")); } elseif (!$content) { echo json_encode(array("error" => "Missing parameter 'content' please send the content to convert as base64 encoded string")); } else { $biomcs = new BiomCS(); try { if ($to === "json") { echo json_encode(array("content" => base64_encode($biomcs->convertToJSON($content)), "error" => null), JSON_PRETTY_PRINT); } elseif ($to === "hdf5") { print json_encode(array("content" => base64_encode($biomcs->convertToHDF5($content)), "error" => null), JSON_PRETTY_PRINT); } } catch (\Exception $e) { echo json_encode(array("error" => $e->getMessage()), JSON_PRETTY_PRINT); } }