Skip to content

Commit bfd4dd4

Browse files
committed
odbc tests
1 parent a21c637 commit bfd4dd4

File tree

1 file changed

+47
-2
lines changed

1 file changed

+47
-2
lines changed

tests/odbc/odbc.rs

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,64 @@
1+
use futures::TryStreamExt;
12
use sqlx_oldapi::odbc::Odbc;
3+
use sqlx_oldapi::Column;
24
use sqlx_oldapi::Connection;
5+
use sqlx_oldapi::Executor;
6+
use sqlx_oldapi::Row;
37
use sqlx_test::new;
48

5-
#[sqlx_macros::test]
9+
#[tokio::test]
610
async fn it_connects_and_pings() -> anyhow::Result<()> {
711
let mut conn = new::<Odbc>().await?;
812
conn.ping().await?;
913
conn.close().await?;
1014
Ok(())
1115
}
1216

13-
#[sqlx_macros::test]
17+
#[tokio::test]
1418
async fn it_can_work_with_transactions() -> anyhow::Result<()> {
1519
let mut conn = new::<Odbc>().await?;
1620
let tx = conn.begin().await?;
1721
tx.rollback().await?;
1822
Ok(())
1923
}
24+
25+
#[tokio::test]
26+
async fn it_streams_row_and_metadata() -> anyhow::Result<()> {
27+
let mut conn = new::<Odbc>().await?;
28+
29+
let mut s = conn.fetch("SELECT 42 AS n, 'hi' AS s, NULL AS z");
30+
let mut saw_row = false;
31+
while let Some(row) = s.try_next().await? {
32+
assert_eq!(row.column(0).name(), "n");
33+
assert_eq!(row.column(1).name(), "s");
34+
assert_eq!(row.column(2).name(), "z");
35+
saw_row = true;
36+
}
37+
assert!(saw_row);
38+
Ok(())
39+
}
40+
41+
#[tokio::test]
42+
async fn it_streams_multiple_rows() -> anyhow::Result<()> {
43+
let mut conn = new::<Odbc>().await?;
44+
45+
let mut s = conn.fetch("SELECT 1 AS v UNION ALL SELECT 2 UNION ALL SELECT 3");
46+
let mut row_count = 0;
47+
while let Some(_row) = s.try_next().await? {
48+
row_count += 1;
49+
}
50+
assert_eq!(row_count, 3);
51+
Ok(())
52+
}
53+
54+
#[tokio::test]
55+
async fn it_handles_empty_result() -> anyhow::Result<()> {
56+
let mut conn = new::<Odbc>().await?;
57+
let mut s = conn.fetch("SELECT 1 WHERE 1=0");
58+
let mut saw_row = false;
59+
while let Some(_row) = s.try_next().await? {
60+
saw_row = true;
61+
}
62+
assert!(!saw_row);
63+
Ok(())
64+
}

0 commit comments

Comments
 (0)