| 
 | 1 | +use futures::TryStreamExt;  | 
1 | 2 | use sqlx_oldapi::odbc::Odbc;  | 
 | 3 | +use sqlx_oldapi::Column;  | 
2 | 4 | use sqlx_oldapi::Connection;  | 
 | 5 | +use sqlx_oldapi::Executor;  | 
 | 6 | +use sqlx_oldapi::Row;  | 
3 | 7 | use sqlx_test::new;  | 
4 | 8 | 
 
  | 
5 |  | -#[sqlx_macros::test]  | 
 | 9 | +#[tokio::test]  | 
6 | 10 | async fn it_connects_and_pings() -> anyhow::Result<()> {  | 
7 | 11 |     let mut conn = new::<Odbc>().await?;  | 
8 | 12 |     conn.ping().await?;  | 
9 | 13 |     conn.close().await?;  | 
10 | 14 |     Ok(())  | 
11 | 15 | }  | 
12 | 16 | 
 
  | 
13 |  | -#[sqlx_macros::test]  | 
 | 17 | +#[tokio::test]  | 
14 | 18 | async fn it_can_work_with_transactions() -> anyhow::Result<()> {  | 
15 | 19 |     let mut conn = new::<Odbc>().await?;  | 
16 | 20 |     let tx = conn.begin().await?;  | 
17 | 21 |     tx.rollback().await?;  | 
18 | 22 |     Ok(())  | 
19 | 23 | }  | 
 | 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