use assert_cmd::prelude::*;
use predicates::prelude::*;
use std::process::Command;
#[test]
#[allow(deprecated)]
fn get_schema() -> Result<(), Box<dyn std::error::Error>> {
let mut cmd = Command::cargo_bin("csv2parquet")?;
let assert = cmd
.arg("../../data/simple.csv")
.arg("-n")
.arg("out.parquet")
.assert();
assert.success().stdout(predicate::str::contains(
r#""fields": [
{
"name": "a",
"data_type": "Int64",
"nullable": true,
"dict_id": 0,
"dict_is_ordered": false,
"metadata": {}
},
{
"name": "b",
"data_type": "Boolean",
"nullable": true,
"dict_id": 0,
"dict_is_ordered": false,
"metadata": {}
}
]"#,
));
Ok(())
}
#[test]
#[allow(deprecated)]
fn get_schema_gz() -> Result<(), Box<dyn std::error::Error>> {
let mut cmd = Command::cargo_bin("csv2parquet")?;
let assert = cmd
.arg("../../data/simple.csv.gz")
.arg("-n")
.arg("out.parquet")
.assert();
assert.success().stdout(predicate::str::contains(
r#""fields": [
{
"name": "a",
"data_type": "Int64",
"nullable": true,
"dict_id": 0,
"dict_is_ordered": false,
"metadata": {}
},
{
"name": "b",
"data_type": "Boolean",
"nullable": true,
"dict_id": 0,
"dict_is_ordered": false,
"metadata": {}
}
]"#,
));
Ok(())
}
#[test]
#[allow(deprecated)]
fn help() -> Result<(), Box<dyn std::error::Error>> {
let mut cmd = Command::cargo_bin("csv2parquet")?;
let assert = cmd.arg("--help").assert();
assert
.success()
.stdout(predicate::str::contains(if cfg!(windows) {
"Usage: csv2parquet.exe [OPTIONS] <CSV> <PARQUET>"
} else {
"Usage: csv2parquet [OPTIONS] <CSV> <PARQUET>"
}));
Ok(())
}