sql_query_builder 2.6.2

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

  #[test]
  fn method_update_or_should_add_the_update_or_clause() {
    let query = sql::Update::new().update_or("ABORT users (login, name)").as_string();
    let expected_query = "UPDATE OR ABORT users (login, name)";

    assert_eq!(query, expected_query);
  }

  #[test]
  fn method_update_or_should_override_value_on_consecutive_calls() {
    let query = sql::Update::new()
      .update_or("FAIL users")
      .update_or("IGNORE orders")
      .as_string();
    let expected_query = "UPDATE OR IGNORE orders";

    assert_eq!(query, expected_query);
  }

  #[test]
  fn methods_update_and_update_or_should_override_each_other() {
    let query = sql::Update::new()
      .update("users")
      .update_or("IGNORE orders")
      .as_string();
    let expected_query = "UPDATE OR IGNORE orders";

    assert_eq!(query, expected_query);

    let query = sql::Update::new()
      .update_or("IGNORE orders")
      .update("users")
      .as_string();
    let expected_query = "UPDATE users";

    assert_eq!(query, expected_query);
  }

  #[test]
  fn method_update_or_should_not_add_clause_when_argument_is_empty() {
    let query = sql::Update::new().update_or("").as_string();
    let expected_query = "";

    assert_eq!(query, expected_query);
  }

  #[test]
  fn method_update_or_should_trim_space_of_the_argument() {
    let query = sql::Update::new().update_or("  REPLACE orders  ").as_string();
    let expected_query = "UPDATE OR REPLACE orders";

    assert_eq!(query, expected_query);
  }

  #[test]
  fn method_raw_before_should_add_raw_sql_before_update_or_clause() {
    let query = sql::Update::new()
      .raw_before(sql::UpdateClause::UpdateOr, "/* update_or users */")
      .update_or("ROLLBACK users")
      .as_string();
    let expected_query = "/* update_or users */ UPDATE OR ROLLBACK users";

    assert_eq!(query, expected_query);
  }

  #[test]
  fn method_raw_after_should_add_raw_sql_after_update_or_clause() {
    let query = sql::Update::new()
      .update_or("ABORT users")
      .raw_after(sql::UpdateClause::UpdateOr, "set login = 'foo'")
      .as_string();
    let expected_query = "UPDATE OR ABORT users set login = 'foo'";

    assert_eq!(query, expected_query);
  }
}