Skip to main content

datasources_sqlserver/
lib.rs

1mod alter_table_statement_renderer;
2mod command;
3mod connection;
4mod create_table_statement_renderer;
5mod create_trigger_statement_renderer;
6mod drop_routine_statement_renderer;
7mod driver;
8mod export;
9mod identity_insert_statement_renderer;
10mod sql_generate;
11mod statement_renderer;
12mod stored_procedure_statement_renderer;
13
14pub use driver::SqlServerDriver;
15pub use sql_generate::{DEFAULTS, QUOTE_LEFT, QUOTE_RIGHT, TYPES};
16
17#[cfg(test)]
18mod tests {
19    use super::*;
20    use datasources::{create, register, reset, BuiltDatasource, Datasource};
21    use std::collections::HashMap;
22    use std::sync::Arc;
23
24    fn ds() -> BuiltDatasource {
25        BuiltDatasource::new("sqlserver", Arc::new(SqlServerDriver), None)
26    }
27
28    #[test]
29    fn creates() {
30        reset();
31        register("sqlserver", Arc::new(SqlServerDriver));
32        assert_eq!(
33            create(Some(&HashMap::from([(
34                "PROVIDER".into(),
35                "sqlserver".into()
36            )])))
37            .unwrap()
38            .provider(),
39            "sqlserver"
40        );
41    }
42
43    #[tokio::test]
44    async fn creates_connection() {
45        let connection = ds().create_connection().await.unwrap();
46        assert!(connection.open().await.is_err());
47    }
48
49    #[tokio::test]
50    async fn creates_command() {
51        let ds = ds();
52        let connection = ds.create_connection().await.unwrap();
53        let command = ds.create_command(Some(connection)).await.unwrap();
54        assert!(command.execute("", None).await.is_err());
55        assert!(command.execute_reader("", None).await.is_err());
56        assert!(ds.create_command(None).await.is_err());
57    }
58}