sql_query_builder 2.6.2

Write SQL queries in a simple and composable way
Documentation
#[cfg(feature = "sqlite")]
mod insert_command {
  use pretty_assertions::assert_eq;
  use sql_query_builder as sql;

  #[test]
  fn method_replace_into_should_add_a_replace_into_clause() {
    let query = sql::Insert::new().replace_into("users (login, name)").as_string();
    let expected_query = "REPLACE INTO users (login, name)";

    assert_eq!(query, expected_query);
  }

  #[test]
  fn method_replace_into_should_override_value_on_consecutive_calls() {
    let query = sql::Insert::new()
      .replace_into("users (login, name)")
      .replace_into("orders (product_name, price)")
      .as_string();
    let expected_query = "REPLACE INTO orders (product_name, price)";

    assert_eq!(query, expected_query);
  }

  #[test]
  fn method_replace_into_should_not_add_clause_when_argument_is_empty() {
    let query = sql::Insert::new().replace_into("").as_string();
    let expected_query = "";

    assert_eq!(query, expected_query);
  }

  #[test]
  fn method_replace_into_should_trim_space_of_the_argument() {
    let query = sql::Insert::new().replace_into("  users (name)  ").as_string();
    let expected_query = "REPLACE INTO users (name)";

    assert_eq!(query, expected_query);
  }

  #[test]
  fn method_raw_before_should_add_raw_sql_before_replace_into_clause() {
    let query = sql::Insert::new()
      .raw_before(sql::InsertClause::ReplaceInto, "/* replace into users */")
      .replace_into("users")
      .as_string();
    let expected_query = "/* replace into users */ REPLACE INTO users";

    assert_eq!(query, expected_query);
  }

  #[test]
  fn method_raw_after_should_add_raw_sql_after_replace_into_clause() {
    let query = sql::Insert::new()
      .replace_into("users (name)")
      .raw_after(sql::InsertClause::ReplaceInto, "values ('foo')")
      .as_string();
    let expected_query = "REPLACE INTO users (name) values ('foo')";

    assert_eq!(query, expected_query);
  }
}