1+ require 'cases/sqlserver_helper'
2+
3+ class DatabaseStatementsTestSqlserver < ActiveRecord ::TestCase
4+
5+ self . use_transactional_fixtures = false
6+
7+ setup do
8+ @connection = ActiveRecord ::Base . connection
9+ end
10+
11+ should 'create database' do
12+ @connection . create_database 'activerecord_unittest3' #, 'SQL_Latin1_General_CP1_CI_AS'
13+ database_name = @connection . select_value "SELECT name FROM master.dbo.sysdatabases WHERE name = 'activerecord_unittest3'"
14+ puts @connection . select_value "SELECT DATABASEPROPERTYEX('activerecord_unittest3', 'Collation') SQLCollation"
15+ assert_equal 'activerecord_unittest3' , database_name
16+ end
17+
18+ should 'drop database' do
19+ @connection . drop_database 'activerecord_unittest3'
20+ database_name = @connection . select_value "SELECT name FROM master.dbo.sysdatabases WHERE name = 'activerecord_unittest3'"
21+ assert_equal nil , database_name
22+ end
23+
24+ context 'with collation' do
25+ teardown do
26+ @connection . drop_database 'activerecord_unittest3'
27+ end
28+
29+ should 'create database with default collation for the server' do
30+ @connection . create_database 'activerecord_unittest3'
31+ default_collation = @connection . select_value "SELECT SERVERPROPERTY('Collation')"
32+ database_collation = @connection . select_value "SELECT DATABASEPROPERTYEX('activerecord_unittest3', 'Collation') SQLCollation"
33+ assert_equal default_collation , database_collation
34+ end
35+
36+ should 'create database with collation set by the method' do
37+ @connection . create_database 'activerecord_unittest3' , 'SQL_Latin1_General_CP1_CI_AS'
38+ collation = @connection . select_value "SELECT DATABASEPROPERTYEX('activerecord_unittest3', 'Collation') SQLCollation"
39+ assert_equal 'SQL_Latin1_General_CP1_CI_AS' , collation
40+ end
41+
42+ should 'create database with collation set by the config' do
43+ @connection . instance_variable_get ( :@connection_options ) [ :collation ] = 'SQL_Latin1_General_CP1_CI_AS'
44+ @connection . create_database 'activerecord_unittest3'
45+ collation = @connection . select_value "SELECT DATABASEPROPERTYEX('activerecord_unittest3', 'Collation') SQLCollation"
46+ assert_equal 'SQL_Latin1_General_CP1_CI_AS' , collation
47+ end
48+ end
49+ end
0 commit comments