From 828b9ae9f6217f7e5e97ec704134c786dd401bad Mon Sep 17 00:00:00 2001 From: Joe Carstairs Date: Wed, 30 Oct 2024 07:27:13 +0000 Subject: Separates date_utc and datetime_utc --- backend/core/tests/models/date_time_utc.rs | 59 ----------------------------- backend/core/tests/models/date_utc.rs | 60 ++++++++++++++++++++++++++++++ backend/core/tests/models/datetime_utc.rs | 60 ++++++++++++++++++++++++++++++ backend/core/tests/models/mod.rs | 3 +- 4 files changed, 122 insertions(+), 60 deletions(-) delete mode 100644 backend/core/tests/models/date_time_utc.rs create mode 100644 backend/core/tests/models/date_utc.rs create mode 100644 backend/core/tests/models/datetime_utc.rs (limited to 'backend/core/tests/models') diff --git a/backend/core/tests/models/date_time_utc.rs b/backend/core/tests/models/date_time_utc.rs deleted file mode 100644 index 1f86968..0000000 --- a/backend/core/tests/models/date_time_utc.rs +++ /dev/null @@ -1,59 +0,0 @@ -use anyhow::Result; -use budgeting_app_core::models::date_time_utc::DateTimeUtc; -use diesel::{sql_query, Connection, ExpressionMethods, QueryDsl, RunQueryDsl, Selectable, SelectableHelper, SqliteConnection}; -use diesel::prelude::{Insertable, Queryable}; - -use crate::common::test_context::TestContext; - -diesel::table! { - date_time_utc_test (id) { - id -> Integer, - date_time_utc -> Text, - } -} - -#[derive(Insertable, Queryable, Selectable, Clone)] -#[diesel(table_name = date_time_utc_test)] -pub struct DateTimeUtcTest { - pub id: i32, - pub date_time_utc: DateTimeUtc, -} - -fn new_test_context() -> Result { - let test_context = TestContext::new(); - let connection = &mut SqliteConnection::establish(&test_context.db_url)?; - let query = "CREATE TABLE date_time_utc_test(id INTEGER PRIMARY KEY, date_time_utc TEXT);"; - sql_query(query).execute(connection)?; - Ok(test_context) -} - -fn insert_date_time_utc(id: i32, date_time_utc: &DateTimeUtc, connection: &mut SqliteConnection) -> Result { - let model = DateTimeUtcTest { - id, - date_time_utc: date_time_utc.clone(), - }; - let num_rows_inserted = diesel::insert_into(date_time_utc_test::dsl::date_time_utc_test) - .values(&[model]) - .execute(connection)?; - Ok(num_rows_inserted) -} - -fn get_date_time_utc(id: i32, connection: &mut SqliteConnection) -> Result { - let date_time_utc: Vec = date_time_utc_test::dsl::date_time_utc_test - .select(DateTimeUtcTest::as_select()) - .filter(date_time_utc_test::id.eq(id)) - .load(connection)?; - Ok(date_time_utc[0].clone()) -} - -#[test] -fn when_insert_date_time_utc_and_select_then_returns_original_value() -> Result<()> { - let date_time_utc = DateTimeUtc::now(); - let test_context = new_test_context()?; - let connection = &mut SqliteConnection::establish(&test_context.db_url)?; - let num_rows_inserted = insert_date_time_utc(0, &date_time_utc, connection)?; - assert_eq!(num_rows_inserted, 1); - let date_time_utc_returned = get_date_time_utc(0, connection)?; - assert_eq!(date_time_utc_returned.date_time_utc.to_date_str(), date_time_utc.to_date_str()); - Ok(()) -} diff --git a/backend/core/tests/models/date_utc.rs b/backend/core/tests/models/date_utc.rs new file mode 100644 index 0000000..40f8c36 --- /dev/null +++ b/backend/core/tests/models/date_utc.rs @@ -0,0 +1,60 @@ +use anyhow::Result; +use budgeting_app_core::models::date_utc::DateUtc; +use budgeting_app_core::traits::nowlike::Nowlike; +use diesel::{sql_query, Connection, ExpressionMethods, QueryDsl, RunQueryDsl, Selectable, SelectableHelper, SqliteConnection}; +use diesel::prelude::{Insertable, Queryable}; + +use crate::common::test_context::TestContext; + +diesel::table! { + date_utc_test (id) { + id -> Integer, + date_utc -> Text, + } +} + +#[derive(Insertable, Queryable, Selectable, Clone)] +#[diesel(table_name = date_utc_test)] +pub struct DateUtcTest { + pub id: i32, + pub date_utc: DateUtc, +} + +fn new_test_context() -> Result { + let test_context = TestContext::new(); + let connection = &mut SqliteConnection::establish(&test_context.db_url)?; + let query = "CREATE TABLE date_utc_test(id INTEGER PRIMARY KEY, date_utc TEXT);"; + sql_query(query).execute(connection)?; + Ok(test_context) +} + +fn insert_date_utc(id: i32, date_utc: &DateUtc, connection: &mut SqliteConnection) -> Result { + let model = DateUtcTest { + id, + date_utc: date_utc.clone(), + }; + let num_rows_inserted = diesel::insert_into(date_utc_test::dsl::date_utc_test) + .values(&[model]) + .execute(connection)?; + Ok(num_rows_inserted) +} + +fn get_date_utc(id: i32, connection: &mut SqliteConnection) -> Result { + let date_utc: Vec = date_utc_test::dsl::date_utc_test + .select(DateUtcTest::as_select()) + .filter(date_utc_test::id.eq(id)) + .load(connection)?; + Ok(date_utc[0].clone()) +} + +#[test] +fn when_insert_date_utc_and_select_then_returns_original_value() -> Result<()> { + let date_utc = DateUtc::now(); + let test_context = new_test_context()?; + let connection = &mut SqliteConnection::establish(&test_context.db_url)?; + let num_rows_inserted = insert_date_utc(0, &date_utc, connection)?; + assert_eq!(num_rows_inserted, 1); + let date_utc_returned = get_date_utc(0, connection)?; + assert_eq!(date_utc_returned.date_utc, date_utc); + Ok(()) +} diff --git a/backend/core/tests/models/datetime_utc.rs b/backend/core/tests/models/datetime_utc.rs new file mode 100644 index 0000000..7029429 --- /dev/null +++ b/backend/core/tests/models/datetime_utc.rs @@ -0,0 +1,60 @@ +use anyhow::Result; +use budgeting_app_core::models::datetime_utc::DatetimeUtc; +use budgeting_app_core::traits::nowlike::Nowlike; +use diesel::{sql_query, Connection, ExpressionMethods, QueryDsl, RunQueryDsl, Selectable, SelectableHelper, SqliteConnection}; +use diesel::prelude::{Insertable, Queryable}; + +use crate::common::test_context::TestContext; + +diesel::table! { + datetime_utc_test (id) { + id -> Integer, + datetime_utc -> Text, + } +} + +#[derive(Insertable, Queryable, Selectable, Clone)] +#[diesel(table_name = datetime_utc_test)] +pub struct DatetimeUtcTest { + pub id: i32, + pub datetime_utc: DatetimeUtc, +} + +fn new_test_context() -> Result { + let test_context = TestContext::new(); + let connection = &mut SqliteConnection::establish(&test_context.db_url)?; + let query = "CREATE TABLE datetime_utc_test(id INTEGER PRIMARY KEY, datetime_utc TEXT);"; + sql_query(query).execute(connection)?; + Ok(test_context) +} + +fn insert_datetime_utc(id: i32, datetime_utc: &DatetimeUtc, connection: &mut SqliteConnection) -> Result { + let model = DatetimeUtcTest { + id, + datetime_utc: datetime_utc.clone(), + }; + let num_rows_inserted = diesel::insert_into(datetime_utc_test::dsl::datetime_utc_test) + .values(&[model]) + .execute(connection)?; + Ok(num_rows_inserted) +} + +fn get_datetime_utc(id: i32, connection: &mut SqliteConnection) -> Result { + let datetime_utc: Vec = datetime_utc_test::dsl::datetime_utc_test + .select(DatetimeUtcTest::as_select()) + .filter(datetime_utc_test::id.eq(id)) + .load(connection)?; + Ok(datetime_utc[0].clone()) +} + +#[test] +fn when_insert_datetime_utc_and_select_then_returns_original_value() -> Result<()> { + let datetime_utc = DatetimeUtc::now(); + let test_context = new_test_context()?; + let connection = &mut SqliteConnection::establish(&test_context.db_url)?; + let num_rows_inserted = insert_datetime_utc(0, &datetime_utc, connection)?; + assert_eq!(num_rows_inserted, 1); + let datetime_utc_returned = get_datetime_utc(0, connection)?; + assert_eq!(datetime_utc_returned.datetime_utc, datetime_utc); + Ok(()) +} diff --git a/backend/core/tests/models/mod.rs b/backend/core/tests/models/mod.rs index 5837dcd..d0d0e4a 100644 --- a/backend/core/tests/models/mod.rs +++ b/backend/core/tests/models/mod.rs @@ -1 +1,2 @@ -mod date_time_utc; +mod date_utc; +mod datetime_utc; -- cgit v1.2.3