mirror of
https://github.com/isar/rusqlite.git
synced 2025-08-20 21:09:31 +08:00
Intoduce one_column for tests
This commit is contained in:
@@ -178,9 +178,9 @@ mod test {
|
||||
let date = NaiveDate::from_ymd(2016, 2, 23);
|
||||
db.execute("INSERT INTO foo (t) VALUES (?)", [date])?;
|
||||
|
||||
let s: String = db.query_row("SELECT t FROM foo", [], |r| r.get(0))?;
|
||||
let s: String = db.one_column("SELECT t FROM foo")?;
|
||||
assert_eq!("2016-02-23", s);
|
||||
let t: NaiveDate = db.query_row("SELECT t FROM foo", [], |r| r.get(0))?;
|
||||
let t: NaiveDate = db.one_column("SELECT t FROM foo")?;
|
||||
assert_eq!(date, t);
|
||||
Ok(())
|
||||
}
|
||||
@@ -191,9 +191,9 @@ mod test {
|
||||
let time = NaiveTime::from_hms(23, 56, 4);
|
||||
db.execute("INSERT INTO foo (t) VALUES (?)", [time])?;
|
||||
|
||||
let s: String = db.query_row("SELECT t FROM foo", [], |r| r.get(0))?;
|
||||
let s: String = db.one_column("SELECT t FROM foo")?;
|
||||
assert_eq!("23:56:04", s);
|
||||
let v: NaiveTime = db.query_row("SELECT t FROM foo", [], |r| r.get(0))?;
|
||||
let v: NaiveTime = db.one_column("SELECT t FROM foo")?;
|
||||
assert_eq!(time, v);
|
||||
Ok(())
|
||||
}
|
||||
@@ -207,13 +207,13 @@ mod test {
|
||||
|
||||
db.execute("INSERT INTO foo (t) VALUES (?)", [dt])?;
|
||||
|
||||
let s: String = db.query_row("SELECT t FROM foo", [], |r| r.get(0))?;
|
||||
let s: String = db.one_column("SELECT t FROM foo")?;
|
||||
assert_eq!("2016-02-23 23:56:04", s);
|
||||
let v: NaiveDateTime = db.query_row("SELECT t FROM foo", [], |r| r.get(0))?;
|
||||
let v: NaiveDateTime = db.one_column("SELECT t FROM foo")?;
|
||||
assert_eq!(dt, v);
|
||||
|
||||
db.execute("UPDATE foo set b = datetime(t)", [])?; // "YYYY-MM-DD HH:MM:SS"
|
||||
let hms: NaiveDateTime = db.query_row("SELECT b FROM foo", [], |r| r.get(0))?;
|
||||
let hms: NaiveDateTime = db.one_column("SELECT b FROM foo")?;
|
||||
assert_eq!(dt, hms);
|
||||
Ok(())
|
||||
}
|
||||
@@ -228,21 +228,19 @@ mod test {
|
||||
|
||||
db.execute("INSERT INTO foo (t) VALUES (?)", [utc])?;
|
||||
|
||||
let s: String = db.query_row("SELECT t FROM foo", [], |r| r.get(0))?;
|
||||
let s: String = db.one_column("SELECT t FROM foo")?;
|
||||
assert_eq!("2016-02-23 23:56:04.789+00:00", s);
|
||||
|
||||
let v1: DateTime<Utc> = db.query_row("SELECT t FROM foo", [], |r| r.get(0))?;
|
||||
let v1: DateTime<Utc> = db.one_column("SELECT t FROM foo")?;
|
||||
assert_eq!(utc, v1);
|
||||
|
||||
let v2: DateTime<Utc> =
|
||||
db.query_row("SELECT '2016-02-23 23:56:04.789'", [], |r| r.get(0))?;
|
||||
let v2: DateTime<Utc> = db.one_column("SELECT '2016-02-23 23:56:04.789'")?;
|
||||
assert_eq!(utc, v2);
|
||||
|
||||
let v3: DateTime<Utc> = db.query_row("SELECT '2016-02-23 23:56:04'", [], |r| r.get(0))?;
|
||||
let v3: DateTime<Utc> = db.one_column("SELECT '2016-02-23 23:56:04'")?;
|
||||
assert_eq!(utc - Duration::milliseconds(789), v3);
|
||||
|
||||
let v4: DateTime<Utc> =
|
||||
db.query_row("SELECT '2016-02-23 23:56:04.789+00:00'", [], |r| r.get(0))?;
|
||||
let v4: DateTime<Utc> = db.one_column("SELECT '2016-02-23 23:56:04.789+00:00'")?;
|
||||
assert_eq!(utc, v4);
|
||||
Ok(())
|
||||
}
|
||||
@@ -258,10 +256,10 @@ mod test {
|
||||
db.execute("INSERT INTO foo (t) VALUES (?)", [local])?;
|
||||
|
||||
// Stored string should be in UTC
|
||||
let s: String = db.query_row("SELECT t FROM foo", [], |r| r.get(0))?;
|
||||
let s: String = db.one_column("SELECT t FROM foo")?;
|
||||
assert!(s.ends_with("+00:00"));
|
||||
|
||||
let v: DateTime<Local> = db.query_row("SELECT t FROM foo", [], |r| r.get(0))?;
|
||||
let v: DateTime<Local> = db.one_column("SELECT t FROM foo")?;
|
||||
assert_eq!(local, v);
|
||||
Ok(())
|
||||
}
|
||||
@@ -274,10 +272,10 @@ mod test {
|
||||
db.execute("INSERT INTO foo (t) VALUES (?)", [time])?;
|
||||
|
||||
// Stored string should preserve timezone offset
|
||||
let s: String = db.query_row("SELECT t FROM foo", [], |r| r.get(0))?;
|
||||
let s: String = db.one_column("SELECT t FROM foo")?;
|
||||
assert!(s.ends_with("+04:00"));
|
||||
|
||||
let v: DateTime<FixedOffset> = db.query_row("SELECT t FROM foo", [], |r| r.get(0))?;
|
||||
let v: DateTime<FixedOffset> = db.one_column("SELECT t FROM foo")?;
|
||||
assert_eq!(time.offset(), v.offset());
|
||||
assert_eq!(time, v);
|
||||
Ok(())
|
||||
@@ -286,15 +284,13 @@ mod test {
|
||||
#[test]
|
||||
fn test_sqlite_functions() -> Result<()> {
|
||||
let db = checked_memory_handle()?;
|
||||
let result: Result<NaiveTime> = db.query_row("SELECT CURRENT_TIME", [], |r| r.get(0));
|
||||
let result: Result<NaiveTime> = db.one_column("SELECT CURRENT_TIME");
|
||||
result.unwrap();
|
||||
let result: Result<NaiveDate> = db.query_row("SELECT CURRENT_DATE", [], |r| r.get(0));
|
||||
let result: Result<NaiveDate> = db.one_column("SELECT CURRENT_DATE");
|
||||
result.unwrap();
|
||||
let result: Result<NaiveDateTime> =
|
||||
db.query_row("SELECT CURRENT_TIMESTAMP", [], |r| r.get(0));
|
||||
let result: Result<NaiveDateTime> = db.one_column("SELECT CURRENT_TIMESTAMP");
|
||||
result.unwrap();
|
||||
let result: Result<DateTime<Utc>> =
|
||||
db.query_row("SELECT CURRENT_TIMESTAMP", [], |r| r.get(0));
|
||||
let result: Result<DateTime<Utc>> = db.one_column("SELECT CURRENT_TIMESTAMP");
|
||||
result.unwrap();
|
||||
Ok(())
|
||||
}
|
||||
|
@@ -155,7 +155,7 @@ mod test {
|
||||
let v1234 = vec![1u8, 2, 3, 4];
|
||||
db.execute("INSERT INTO foo(b) VALUES (?)", [&v1234])?;
|
||||
|
||||
let v: Vec<u8> = db.query_row("SELECT b FROM foo", [], |r| r.get(0))?;
|
||||
let v: Vec<u8> = db.one_column("SELECT b FROM foo")?;
|
||||
assert_eq!(v, v1234);
|
||||
Ok(())
|
||||
}
|
||||
@@ -167,7 +167,7 @@ mod test {
|
||||
let empty = vec![];
|
||||
db.execute("INSERT INTO foo(b) VALUES (?)", [&empty])?;
|
||||
|
||||
let v: Vec<u8> = db.query_row("SELECT b FROM foo", [], |r| r.get(0))?;
|
||||
let v: Vec<u8> = db.one_column("SELECT b FROM foo")?;
|
||||
assert_eq!(v, empty);
|
||||
Ok(())
|
||||
}
|
||||
@@ -179,7 +179,7 @@ mod test {
|
||||
let s = "hello, world!";
|
||||
db.execute("INSERT INTO foo(t) VALUES (?)", [&s])?;
|
||||
|
||||
let from: String = db.query_row("SELECT t FROM foo", [], |r| r.get(0))?;
|
||||
let from: String = db.one_column("SELECT t FROM foo")?;
|
||||
assert_eq!(from, s);
|
||||
Ok(())
|
||||
}
|
||||
@@ -191,7 +191,7 @@ mod test {
|
||||
let s = "hello, world!";
|
||||
db.execute("INSERT INTO foo(t) VALUES (?)", [s.to_owned()])?;
|
||||
|
||||
let from: String = db.query_row("SELECT t FROM foo", [], |r| r.get(0))?;
|
||||
let from: String = db.one_column("SELECT t FROM foo")?;
|
||||
assert_eq!(from, s);
|
||||
Ok(())
|
||||
}
|
||||
@@ -202,10 +202,7 @@ mod test {
|
||||
|
||||
db.execute("INSERT INTO foo(i) VALUES (?)", [Value::Integer(10)])?;
|
||||
|
||||
assert_eq!(
|
||||
10i64,
|
||||
db.query_row::<i64, _, _>("SELECT i FROM foo", [], |r| r.get(0))?
|
||||
);
|
||||
assert_eq!(10i64, db.one_column::<i64>("SELECT i FROM foo")?);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
@@ -26,6 +26,7 @@ impl FromSql for Value {
|
||||
mod test {
|
||||
use crate::types::ToSql;
|
||||
use crate::{Connection, Result};
|
||||
use serde_json::Value;
|
||||
|
||||
fn checked_memory_handle() -> Result<Connection> {
|
||||
let db = Connection::open_in_memory()?;
|
||||
@@ -38,15 +39,15 @@ mod test {
|
||||
let db = checked_memory_handle()?;
|
||||
|
||||
let json = r#"{"foo": 13, "bar": "baz"}"#;
|
||||
let data: serde_json::Value = serde_json::from_str(json).unwrap();
|
||||
let data: Value = serde_json::from_str(json).unwrap();
|
||||
db.execute(
|
||||
"INSERT INTO foo (t, b) VALUES (?, ?)",
|
||||
[&data as &dyn ToSql, &json.as_bytes()],
|
||||
)?;
|
||||
|
||||
let t: serde_json::Value = db.query_row("SELECT t FROM foo", [], |r| r.get(0))?;
|
||||
let t: Value = db.one_column("SELECT t FROM foo")?;
|
||||
assert_eq!(data, t);
|
||||
let b: serde_json::Value = db.query_row("SELECT b FROM foo", [], |r| r.get(0))?;
|
||||
let b: Value = db.one_column("SELECT b FROM foo")?;
|
||||
assert_eq!(data, b);
|
||||
Ok(())
|
||||
}
|
||||
|
@@ -93,7 +93,7 @@ mod test {
|
||||
for ts in ts_vec {
|
||||
db.execute("INSERT INTO foo(t) VALUES (?)", [ts])?;
|
||||
|
||||
let from: OffsetDateTime = db.query_row("SELECT t FROM foo", [], |r| r.get(0))?;
|
||||
let from: OffsetDateTime = db.one_column("SELECT t FROM foo")?;
|
||||
|
||||
db.execute("DELETE FROM foo", [])?;
|
||||
|
||||
@@ -152,8 +152,7 @@ mod test {
|
||||
#[test]
|
||||
fn test_sqlite_functions() -> Result<()> {
|
||||
let db = Connection::open_in_memory()?;
|
||||
let result: Result<OffsetDateTime> =
|
||||
db.query_row("SELECT CURRENT_TIMESTAMP", [], |r| r.get(0));
|
||||
let result: Result<OffsetDateTime> = db.one_column("SELECT CURRENT_TIMESTAMP");
|
||||
result.unwrap();
|
||||
Ok(())
|
||||
}
|
||||
|
Reference in New Issue
Block a user