csv2parquet 0.26.1

Convert CSV files to Parquet
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(())
}