From 5c101ae3141bc266e5d32b4529d0a8644c29b72a Mon Sep 17 00:00:00 2001 From: resurtm Date: Sat, 11 May 2013 14:58:35 +0600 Subject: [PATCH] Initial MSSQL tests. --- tests/unit/data/config.php | 6 + tests/unit/data/mssql.sql | 374 +++++---------------- .../framework/db/mssql/MssqlActiveRecordTest.php | 12 + tests/unit/framework/db/mssql/MssqlCommandTest.php | 31 ++ .../framework/db/mssql/MssqlConnectionTest.php | 43 +++ tests/unit/framework/db/mssql/MssqlQueryTest.php | 12 + 6 files changed, 185 insertions(+), 293 deletions(-) create mode 100644 tests/unit/framework/db/mssql/MssqlActiveRecordTest.php create mode 100644 tests/unit/framework/db/mssql/MssqlCommandTest.php create mode 100644 tests/unit/framework/db/mssql/MssqlConnectionTest.php create mode 100644 tests/unit/framework/db/mssql/MssqlQueryTest.php diff --git a/tests/unit/data/config.php b/tests/unit/data/config.php index c980c57..04db5f4 100644 --- a/tests/unit/data/config.php +++ b/tests/unit/data/config.php @@ -12,5 +12,11 @@ return array( 'dsn' => 'sqlite::memory:', 'fixture' => __DIR__ . '/sqlite.sql', ), + 'sqlsrv' => array( + 'dsn' => 'sqlsrv:Server=localhost;Database=test', + 'username' => '', + 'password' => '', + 'fixture' => __DIR__ . '/mssql.sql', + ), ) ); diff --git a/tests/unit/data/mssql.sql b/tests/unit/data/mssql.sql index 38967b2..d3bc8d2 100644 --- a/tests/unit/data/mssql.sql +++ b/tests/unit/data/mssql.sql @@ -1,306 +1,94 @@ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[categories]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) -BEGIN -CREATE TABLE [dbo].[categories]( +IF OBJECT_ID('[dbo].[tbl_order_item]', 'U') IS NOT NULL DROP TABLE [dbo].[tbl_order_item]; +IF OBJECT_ID('[dbo].[tbl_item]', 'U') IS NOT NULL DROP TABLE [dbo].[tbl_item]; +IF OBJECT_ID('[dbo].[tbl_order]', 'U') IS NOT NULL DROP TABLE [dbo].[tbl_order]; +IF OBJECT_ID('[dbo].[tbl_category]', 'U') IS NOT NULL DROP TABLE [dbo].[tbl_category]; +IF OBJECT_ID('[dbo].[tbl_customer]', 'U') IS NOT NULL DROP TABLE [dbo].[tbl_customer]; +IF OBJECT_ID('[dbo].[tbl_type]', 'U') IS NOT NULL DROP TABLE [dbo].[tbl_type]; + +CREATE TABLE [dbo].[tbl_customer] ( [id] [int] IDENTITY(1,1) NOT NULL, + [email] [varchar](128) NOT NULL, [name] [varchar](128) NOT NULL, - [parent_id] [int] NULL, - CONSTRAINT [PK_categories] PRIMARY KEY CLUSTERED -( - [id] ASC -) ON [PRIMARY] -) ON [PRIMARY] -END -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[orders]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) -BEGIN -CREATE TABLE [dbo].[orders]( - [key1] [int] NOT NULL, - [key2] [int] NOT NULL, + [address] [text], + [status] [int] DEFAULT 0, + CONSTRAINT [PK_customer] PRIMARY KEY CLUSTERED ( + [id] ASC + ) ON [PRIMARY] +); + +CREATE TABLE [dbo].[tbl_category] ( + [id] [int] IDENTITY(1,1) NOT NULL, [name] [varchar](128) NOT NULL, - CONSTRAINT [PK_orders] PRIMARY KEY CLUSTERED -( - [key1] ASC, - [key2] ASC -) ON [PRIMARY] -) ON [PRIMARY] -END -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[types]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) -BEGIN -CREATE TABLE [dbo].[types]( - [int_col] [int] NOT NULL, - [int_col2] [int] NULL CONSTRAINT [DF_types_int_col2] DEFAULT (1), - [char_col] [char](100) NOT NULL, - [char_col2] [varchar](100) NULL CONSTRAINT [DF_types_char_col2] DEFAULT ('something'), - [char_col3] [text] NULL, - [float_col] [real] NOT NULL, - [float_col2] [float] NULL CONSTRAINT [DF_types_float_col2] DEFAULT (1.23), - [blob_col] [image] NULL, - [numeric_col] [numeric](5, 2) NULL CONSTRAINT [DF_types_numeric_col] DEFAULT (33.22), - [time] [datetime] NULL CONSTRAINT [DF_types_time] DEFAULT ('2002-01-01 00:00:00'), - [bool_col] [bit] NOT NULL, - [bool_col2] [bit] NOT NULL CONSTRAINT [DF_types_bool_col2] DEFAULT (1) -) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] -END -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[users]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) -BEGIN -CREATE TABLE [dbo].[users]( + CONSTRAINT [PK_category] PRIMARY KEY CLUSTERED ( + [id] ASC + ) ON [PRIMARY] +); + +CREATE TABLE [dbo].[tbl_item] ( [id] [int] IDENTITY(1,1) NOT NULL, - [username] [varchar](128) NOT NULL, - [password] [varchar](128) NOT NULL, - [email] [varchar](128) NOT NULL, - CONSTRAINT [PK_users] PRIMARY KEY CLUSTERED -( - [id] ASC -) ON [PRIMARY] -) ON [PRIMARY] -END -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[post_category]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) -BEGIN -CREATE TABLE [dbo].[post_category]( + [name] [varchar](128) NOT NULL, [category_id] [int] NOT NULL, - [post_id] [int] NOT NULL, - CONSTRAINT [PK_post_category] PRIMARY KEY CLUSTERED -( - [category_id] ASC, - [post_id] ASC -) ON [PRIMARY] -) ON [PRIMARY] -END -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[items]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) -BEGIN -CREATE TABLE [dbo].[items]( - [id] [int] IDENTITY(1,1) NOT NULL, - [name] [varchar](128) NULL, - [col1] [int] NOT NULL, - [col2] [int] NOT NULL, - CONSTRAINT [PK_items] PRIMARY KEY CLUSTERED -( - [id] ASC -) ON [PRIMARY] -) ON [PRIMARY] -END -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[comments]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) -BEGIN -CREATE TABLE [dbo].[comments]( - [id] [int] IDENTITY(1,1) NOT NULL, - [content] [text] NOT NULL, - [post_id] [int] NOT NULL, - [author_id] [int] NOT NULL, - CONSTRAINT [PK_comments] PRIMARY KEY CLUSTERED -( - [id] ASC -) ON [PRIMARY] -) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] -END -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[posts]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) -BEGIN -CREATE TABLE [dbo].[posts]( - [id] [int] IDENTITY(1,1) NOT NULL, - [title] [varchar](128) NOT NULL, - [create_time] [datetime] NOT NULL, - [author_id] [int] NOT NULL, - [content] [text] NULL, - CONSTRAINT [PK_posts] PRIMARY KEY CLUSTERED -( - [id] ASC -) ON [PRIMARY] -) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] -END -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[profiles]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) -BEGIN -CREATE TABLE [dbo].[profiles]( - [id] [int] IDENTITY(1,1) NOT NULL, - [first_name] [varchar](128) NOT NULL, - [last_name] [varchar](128) NOT NULL, - [user_id] [int] NOT NULL, - CONSTRAINT [PK_profiles] PRIMARY KEY CLUSTERED -( - [id] ASC -) ON [PRIMARY] -) ON [PRIMARY] -END -GO -IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_categories_categories]') AND type = 'F') -ALTER TABLE [dbo].[categories] WITH CHECK ADD CONSTRAINT [FK_categories_categories] FOREIGN KEY([parent_id]) -REFERENCES [dbo].[categories] ([id]) -GO -IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_post_category_categories]') AND type = 'F') -ALTER TABLE [dbo].[post_category] WITH CHECK ADD CONSTRAINT [FK_post_category_categories] FOREIGN KEY([category_id]) -REFERENCES [dbo].[categories] ([id]) -ON DELETE CASCADE -GO -IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_post_category_posts]') AND type = 'F') -ALTER TABLE [dbo].[post_category] WITH NOCHECK ADD CONSTRAINT [FK_post_category_posts] FOREIGN KEY([post_id]) -REFERENCES [dbo].[posts] ([id]) -ON DELETE CASCADE -GO -ALTER TABLE [dbo].[post_category] CHECK CONSTRAINT [FK_post_category_posts] -GO -IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_items_orders]') AND type = 'F') -ALTER TABLE [dbo].[items] WITH CHECK ADD CONSTRAINT [FK_items_orders] FOREIGN KEY([col1], [col2]) -REFERENCES [dbo].[orders] ([key1], [key2]) -ON DELETE CASCADE -GO -IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_comments_users]') AND type = 'F') -ALTER TABLE [dbo].[comments] WITH NOCHECK ADD CONSTRAINT [FK_comments_users] FOREIGN KEY([author_id]) -REFERENCES [dbo].[users] ([id]) -ON DELETE CASCADE -GO -ALTER TABLE [dbo].[comments] CHECK CONSTRAINT [FK_comments_users] -GO -IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_post_comment]') AND type = 'F') -ALTER TABLE [dbo].[comments] WITH NOCHECK ADD CONSTRAINT [FK_post_comment] FOREIGN KEY([post_id]) -REFERENCES [dbo].[posts] ([id]) -ON DELETE CASCADE -GO -ALTER TABLE [dbo].[comments] CHECK CONSTRAINT [FK_post_comment] -GO -IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_posts_users]') AND type = 'F') -ALTER TABLE [dbo].[posts] WITH NOCHECK ADD CONSTRAINT [FK_posts_users] FOREIGN KEY([author_id]) -REFERENCES [dbo].[users] ([id]) -GO -ALTER TABLE [dbo].[posts] CHECK CONSTRAINT [FK_posts_users] -GO -IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_profile_user]') AND type = 'F') -ALTER TABLE [dbo].[profiles] WITH NOCHECK ADD CONSTRAINT [FK_profile_user] FOREIGN KEY([user_id]) -REFERENCES [dbo].[users] ([id]) -ON DELETE CASCADE -GO -ALTER TABLE [dbo].[profiles] CHECK CONSTRAINT [FK_profile_user] - -INSERT INTO users (username, password, email) VALUES ('user1','pass1','email1') -GO -INSERT INTO users (username, password, email) VALUES ('user2','pass2','email2') -GO -INSERT INTO users (username, password, email) VALUES ('user3','pass3','email3') -GO + CONSTRAINT [PK_item] PRIMARY KEY CLUSTERED ( + [id] ASC + ) ON [PRIMARY] +); -INSERT INTO profiles (first_name, last_name, user_id) VALUES ('first 1','last 1',1) -GO -INSERT INTO profiles (first_name, last_name, user_id) VALUES ('first 2','last 2',2) -GO - -INSERT INTO posts (title, create_time, author_id, content) VALUES ('post 1','2000-01-01',1,'content 1') -GO -INSERT INTO posts (title, create_time, author_id, content) VALUES ('post 2','2000-01-02',2,'content 2') -GO -INSERT INTO posts (title, create_time, author_id, content) VALUES ('post 3','2000-01-03',2,'content 3') -GO -INSERT INTO posts (title, create_time, author_id, content) VALUES ('post 4','2000-01-04',2,'content 4') -GO -INSERT INTO posts (title, create_time, author_id, content) VALUES ('post 5','2000-01-05',3,'content 5') -GO +CREATE TABLE [dbo].[tbl_order] ( + [id] [int] IDENTITY(1,1) NOT NULL, + [customer_id] [int] NOT NULL, + [create_time] [int] NOT NULL, + [total] [decimal](10,0) NOT NULL, + CONSTRAINT [PK_order] PRIMARY KEY CLUSTERED ( + [id] ASC + ) ON [PRIMARY] +); -INSERT INTO comments (content, post_id, author_id) VALUES ('comment 1',1, 2) -GO -INSERT INTO comments (content, post_id, author_id) VALUES ('comment 2',1, 2) -GO -INSERT INTO comments (content, post_id, author_id) VALUES ('comment 3',1, 2) -GO -INSERT INTO comments (content, post_id, author_id) VALUES ('comment 4',2, 2) -GO -INSERT INTO comments (content, post_id, author_id) VALUES ('comment 5',2, 2) -GO -INSERT INTO comments (content, post_id, author_id) VALUES ('comment 6',3, 2) -GO -INSERT INTO comments (content, post_id, author_id) VALUES ('comment 7',3, 2) -GO -INSERT INTO comments (content, post_id, author_id) VALUES ('comment 8',3, 2) -GO -INSERT INTO comments (content, post_id, author_id) VALUES ('comment 9',3, 2) -GO -INSERT INTO comments (content, post_id, author_id) VALUES ('comment 10',5, 3) -GO +CREATE TABLE [dbo].[tbl_order_item] ( + [order_id] [int] NOT NULL, + [item_id] [int] NOT NULL, + [quantity] [int] NOT NULL, + [subtotal] [decimal](10,0) NOT NULL, + CONSTRAINT [PK_order_item] PRIMARY KEY CLUSTERED ( + [order_id] ASC, + [item_id] ASC + ) ON [PRIMARY] +); -INSERT INTO categories (name, parent_id) VALUES ('cat 1',NULL) -GO -INSERT INTO categories (name, parent_id) VALUES ('cat 2',NULL) -GO -INSERT INTO categories (name, parent_id) VALUES ('cat 3',NULL) -GO -INSERT INTO categories (name, parent_id) VALUES ('cat 4',1) -GO -INSERT INTO categories (name, parent_id) VALUES ('cat 5',1) -GO -INSERT INTO categories (name, parent_id) VALUES ('cat 6',5) -GO -INSERT INTO categories (name, parent_id) VALUES ('cat 7',5) -GO +CREATE TABLE [dbo].[tbl_type] ( + [int_col] [int] NOT NULL, + [int_col2] [int] DEFAULT '1', + [char_col] [char](100) NOT NULL, + [char_col2] [varchar](100) DEFAULT 'something', + [char_col3] [text], + [float_col] [decimal](4,3) NOT NULL, + [float_col2] [float] DEFAULT '1.23', + [blob_col] [binary], + [numeric_col] [decimal](5,2) DEFAULT '33.22', + [time] [datetime] NOT NULL DEFAULT '2002-01-01 00:00:00', + [bool_col] [tinyint] NOT NULL, + [bool_col2] [tinyint] DEFAULT '1' +); -INSERT INTO post_category (category_id, post_id) VALUES (1,1) -GO -INSERT INTO post_category (category_id, post_id) VALUES (2,1) -GO -INSERT INTO post_category (category_id, post_id) VALUES (3,1) -GO -INSERT INTO post_category (category_id, post_id) VALUES (4,2) -GO -INSERT INTO post_category (category_id, post_id) VALUES (1,2) -GO -INSERT INTO post_category (category_id, post_id) VALUES (1,3) -GO +INSERT INTO [dbo].[tbl_customer] ([email], [name], [address], [status]) VALUES ('user1@example.com', 'user1', 'address1', 1); +INSERT INTO [dbo].[tbl_customer] ([email], [name], [address], [status]) VALUES ('user2@example.com', 'user2', 'address2', 1); +INSERT INTO [dbo].[tbl_customer] ([email], [name], [address], [status]) VALUES ('user3@example.com', 'user3', 'address3', 2); +INSERT INTO [dbo].[tbl_category] ([name]) VALUES ('Books'); +INSERT INTO [dbo].[tbl_category] ([name]) VALUES ('Movies'); -INSERT INTO orders (key1,key2,name) VALUES (1,2,'order 12') -GO -INSERT INTO orders (key1,key2,name) VALUES (1,3,'order 13') -GO -INSERT INTO orders (key1,key2,name) VALUES (2,1,'order 21') -GO -INSERT INTO orders (key1,key2,name) VALUES (2,2,'order 22') -GO +INSERT INTO [dbo].[tbl_item] ([name], [category_id]) VALUES ('Agile Web Application Development with Yii1.1 and PHP5', 1); +INSERT INTO [dbo].[tbl_item] ([name], [category_id]) VALUES ('Yii 1.1 Application Development Cookbook', 1); +INSERT INTO [dbo].[tbl_item] ([name], [category_id]) VALUES ('Ice Age', 2); +INSERT INTO [dbo].[tbl_item] ([name], [category_id]) VALUES ('Toy Story', 2); +INSERT INTO [dbo].[tbl_item] ([name], [category_id]) VALUES ('Cars', 2); +INSERT INTO [dbo].[tbl_order] ([customer_id], [create_time], [total]) VALUES (1, 1325282384, 110.0); +INSERT INTO [dbo].[tbl_order] ([customer_id], [create_time], [total]) VALUES (2, 1325334482, 33.0); +INSERT INTO [dbo].[tbl_order] ([customer_id], [create_time], [total]) VALUES (2, 1325502201, 40.0); -INSERT INTO items (name,col1,col2) VALUES ('item 1',1,2) -GO -INSERT INTO items (name,col1,col2) VALUES ('item 2',1,2) -GO -INSERT INTO items (name,col1,col2) VALUES ('item 3',1,3) -GO -INSERT INTO items (name,col1,col2) VALUES ('item 4',2,2) -GO -INSERT INTO items (name,col1,col2) VALUES ('item 5',2,2) -GO +INSERT INTO [dbo].[tbl_order_item] ([order_id], [item_id], [quantity], [subtotal]) VALUES (1, 1, 1, 30.0); +INSERT INTO [dbo].[tbl_order_item] ([order_id], [item_id], [quantity], [subtotal]) VALUES (1, 2, 2, 40.0); +INSERT INTO [dbo].[tbl_order_item] ([order_id], [item_id], [quantity], [subtotal]) VALUES (2, 4, 1, 10.0); +INSERT INTO [dbo].[tbl_order_item] ([order_id], [item_id], [quantity], [subtotal]) VALUES (2, 5, 1, 15.0); +INSERT INTO [dbo].[tbl_order_item] ([order_id], [item_id], [quantity], [subtotal]) VALUES (2, 3, 1, 8.0); +INSERT INTO [dbo].[tbl_order_item] ([order_id], [item_id], [quantity], [subtotal]) VALUES (3, 2, 1, 40.0); diff --git a/tests/unit/framework/db/mssql/MssqlActiveRecordTest.php b/tests/unit/framework/db/mssql/MssqlActiveRecordTest.php new file mode 100644 index 0000000..4a41663 --- /dev/null +++ b/tests/unit/framework/db/mssql/MssqlActiveRecordTest.php @@ -0,0 +1,12 @@ +driverName = 'sqlsrv'; + parent::setUp(); + } +} diff --git a/tests/unit/framework/db/mssql/MssqlCommandTest.php b/tests/unit/framework/db/mssql/MssqlCommandTest.php new file mode 100644 index 0000000..422a00c --- /dev/null +++ b/tests/unit/framework/db/mssql/MssqlCommandTest.php @@ -0,0 +1,31 @@ +driverName = 'sqlsrv'; + parent::setUp(); + } + + function testAutoQuoting() + { + $db = $this->getConnection(false); + + $sql = 'SELECT [[id]], [[t.name]] FROM {{tbl_customer}} t'; + $command = $db->createCommand($sql); + $this->assertEquals("SELECT [id], [t].[name] FROM [tbl_customer] t", $command->sql); + } + + function testPrepareCancel() + { + $this->markTestIncomplete(); + } + + function testBindParamValue() + { + $this->markTestIncomplete(); + } +} diff --git a/tests/unit/framework/db/mssql/MssqlConnectionTest.php b/tests/unit/framework/db/mssql/MssqlConnectionTest.php new file mode 100644 index 0000000..870af0a --- /dev/null +++ b/tests/unit/framework/db/mssql/MssqlConnectionTest.php @@ -0,0 +1,43 @@ +driverName = 'sqlsrv'; + parent::setUp(); + } + + function testQuoteValue() + { + $connection = $this->getConnection(false); + $this->assertEquals(123, $connection->quoteValue(123)); + $this->assertEquals("'string'", $connection->quoteValue('string')); + $this->assertEquals("'It''s interesting'", $connection->quoteValue("It's interesting")); + } + + function testQuoteTableName() + { + $connection = $this->getConnection(false); + $this->assertEquals('[table]', $connection->quoteTableName('table')); + $this->assertEquals('[table]', $connection->quoteTableName('[table]')); + $this->assertEquals('[schema].[table]', $connection->quoteTableName('schema.table')); + $this->assertEquals('[schema].[table]', $connection->quoteTableName('schema.[table]')); + $this->assertEquals('{{table}}', $connection->quoteTableName('{{table}}')); + $this->assertEquals('(table)', $connection->quoteTableName('(table)')); + } + + function testQuoteColumnName() + { + $connection = $this->getConnection(false); + $this->assertEquals('[column]', $connection->quoteColumnName('column')); + $this->assertEquals('[column]', $connection->quoteColumnName('[column]')); + $this->assertEquals('[table].[column]', $connection->quoteColumnName('table.column')); + $this->assertEquals('[table].[column]', $connection->quoteColumnName('table.[column]')); + $this->assertEquals('[[column]]', $connection->quoteColumnName('[[column]]')); + $this->assertEquals('{{column}}', $connection->quoteColumnName('{{column}}')); + $this->assertEquals('(column)', $connection->quoteColumnName('(column)')); + } +} diff --git a/tests/unit/framework/db/mssql/MssqlQueryTest.php b/tests/unit/framework/db/mssql/MssqlQueryTest.php new file mode 100644 index 0000000..17d6681 --- /dev/null +++ b/tests/unit/framework/db/mssql/MssqlQueryTest.php @@ -0,0 +1,12 @@ +driverName = 'sqlsrv'; + parent::setUp(); + } +}