1pub mod csv_helper;
2pub mod sql_builder;
3
4#[cfg(test)]
5mod tests {
6 use crate::sql_builder::build_sql_statement;
7
8 #[test]
9 fn build_sql_statement_returns_statement(){
10 let statement = build_sql_statement(vec!["RunDt".to_string(), "Amount".to_string(), "Some Header With Spaces".to_string()], "default_table", "default_db");
11
12 let expected: String = r#"USE [default_db]
13GO
14
15IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='dbo' AND TABLE_NAME = 'default_table')
16BEGIN
17CREATE TABLE [dbo].[default_table]
18[RowID] [int] IDENTITY(1,1) NOT NULL,
19[RunDt] [date] NULL,
20[Amount] [numeric](18,2) NULL,
21[SomeHeaderWithSpaces] [varchar](50) NULL,
22[CreateDate] [date] NOT NULL
23CONSTRAINT [PK_default_table] PRIMARY KEY CLUSTERED(
24[RowID] ASC
25)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
26) ON [PRIMARY]
27ALTER TABLE [dbo].[default_table] ADD CONSTRAINT [DF_default_table_CreateDate] DEFAULT (getdate()) FOR [CreateDate]
28END
29GO"#.to_string();
30
31 assert_eq!(statement, expected)
32
33 }
34}