From 168ce9bed0789e9eb7f9d09ece774332cecd5cc6 Mon Sep 17 00:00:00 2001 From: Blaine Bublitz Date: Sun, 17 May 2020 21:15:05 -0700 Subject: [PATCH] Attempt to add integration tests --- tests/mysql-derives.rs | 19 +++++++++++++++++-- tests/postgres-derives.rs | 27 +++++++++++++++++++++++++++ tests/sqlite-derives.rs | 19 +++++++++++++++++-- 3 files changed, 61 insertions(+), 4 deletions(-) diff --git a/tests/mysql-derives.rs b/tests/mysql-derives.rs index 0e875e8c..6dd05ef0 100644 --- a/tests/mysql-derives.rs +++ b/tests/mysql-derives.rs @@ -19,7 +19,20 @@ enum Weak { // "Strong" enums can map to TEXT or a custom enum #[derive(PartialEq, Debug, sqlx::Type)] #[sqlx(rename_all = "lowercase")] -enum Color { +enum ColorLower { + Red, + Green, + Blue, +} +#[derive(PartialEq, Debug, sqlx::Type)] +#[sqlx(rename_all = "snake_case")] +enum ColorSnake { + RedGreen, + BlueBlack, +} +#[derive(PartialEq, Debug, sqlx::Type)] +#[sqlx(rename_all = "uppercase")] +enum ColorUpper { Red, Green, Blue, @@ -40,4 +53,6 @@ test_type!(weak_enum( "4" == Weak::Three )); -test_type!(strong_color_enum(MySql, Color, "'green'" == Color::Green)); +test_type!(strong_color_enum(MySql, ColorLower, "'green'" == ColorLower::Green)); +test_type!(strong_color_enum(MySql, ColorSnake, "'red_green'" == ColorSnake::RedGreen)); +test_type!(strong_color_enum(MySql, ColorLower, "'GREEN'" == ColorUpper::Green)); diff --git a/tests/postgres-derives.rs b/tests/postgres-derives.rs index 975b00e1..990a13f5 100644 --- a/tests/postgres-derives.rs +++ b/tests/postgres-derives.rs @@ -28,6 +28,28 @@ enum Strong { Three, } +// rename_all variants +#[derive(PartialEq, Debug, sqlx::Type)] +#[sqlx(rename_all = "lowercase")] +enum ColorLower { + Red, + Green, + Blue, +} +#[derive(PartialEq, Debug, sqlx::Type)] +#[sqlx(rename_all = "snake_case")] +enum ColorSnake { + RedGreen, + BlueBlack, +} +#[derive(PartialEq, Debug, sqlx::Type)] +#[sqlx(rename_all = "uppercase")] +enum ColorUpper { + Red, + Green, + Blue, +} + // "Strong" enum can map to a custom type #[derive(PartialEq, Debug, sqlx::Type)] #[sqlx(rename = "mood")] @@ -71,6 +93,11 @@ test_type!(strong_enum( "'four'::text" == Strong::Three )); +test_type!(strong_color_enum(MySql, ColorLower, "'green'" == ColorLower::Green)); +test_type!(strong_color_enum(MySql, ColorSnake, "'red_green'" == ColorSnake::RedGreen)); +test_type!(strong_color_enum(MySql, ColorLower, "'GREEN'" == ColorUpper::Green)); + + #[cfg_attr(feature = "runtime-async-std", async_std::test)] #[cfg_attr(feature = "runtime-tokio", tokio::test)] async fn test_enum_type() -> anyhow::Result<()> { diff --git a/tests/sqlite-derives.rs b/tests/sqlite-derives.rs index 8ebc8f9a..d87c61a2 100644 --- a/tests/sqlite-derives.rs +++ b/tests/sqlite-derives.rs @@ -19,7 +19,20 @@ enum Weak { // "Strong" enums can map to TEXT or a custom enum #[derive(PartialEq, Debug, sqlx::Type)] #[sqlx(rename_all = "lowercase")] -enum Color { +enum ColorLower { + Red, + Green, + Blue, +} +#[derive(PartialEq, Debug, sqlx::Type)] +#[sqlx(rename_all = "snake_case")] +enum ColorSnake { + RedGreen, + BlueBlack, +} +#[derive(PartialEq, Debug, sqlx::Type)] +#[sqlx(rename_all = "uppercase")] +enum ColorUpper { Red, Green, Blue, @@ -40,4 +53,6 @@ test_type!(weak_enum( "4" == Weak::Three )); -test_type!(strong_color_enum(Sqlite, Color, "'green'" == Color::Green)); +test_type!(strong_color_enum(MySql, ColorLower, "'green'" == ColorLower::Green)); +test_type!(strong_color_enum(MySql, ColorSnake, "'red_green'" == ColorSnake::RedGreen)); +test_type!(strong_color_enum(MySql, ColorLower, "'GREEN'" == ColorUpper::Green));