activerecord-oracle_enhanced-adapter 1.2.3 → 1.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -290,6 +290,12 @@ describe "OracleEnhancedAdapter integer type detection based on column names" do
290
290
  @employee2.job_id.class.should == Fixnum
291
291
  end
292
292
 
293
+ it "should return Fixnum value from NUMBER column with integer value using _before_type_cast method" do
294
+ ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter.emulate_integers_by_column_name = true
295
+ create_employee2
296
+ @employee2.job_id_before_type_cast.class.should == Fixnum
297
+ end
298
+
293
299
  it "should return BigDecimal value from NUMBER column if column name does not contain 'id' and emulate_integers_by_column_name is true" do
294
300
  ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter.emulate_integers_by_column_name = true
295
301
  create_employee2
@@ -1,61 +1,5 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
2
 
3
- describe "OracleEnhancedAdapter original schema dump" do
4
-
5
- before(:all) do
6
- if !defined?(RUBY_ENGINE)
7
- if ActiveRecord::Base.respond_to?(:oracle_connection)
8
- @old_conn = ActiveRecord::Base.oracle_connection(CONNECTION_PARAMS)
9
- @old_conn.class.should == ActiveRecord::ConnectionAdapters::OracleAdapter
10
- end
11
- elsif RUBY_ENGINE == 'jruby'
12
- @old_conn = ActiveRecord::Base.jdbc_connection(JDBC_CONNECTION_PARAMS)
13
- @old_conn.class.should == ActiveRecord::ConnectionAdapters::JdbcAdapter
14
- end
15
-
16
- @new_conn = ActiveRecord::Base.oracle_enhanced_connection(CONNECTION_PARAMS)
17
- @new_conn.class.should == ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter
18
- end
19
-
20
- after(:all) do
21
- # Workaround for undefining callback that was defined by JDBC adapter
22
- if defined?(RUBY_ENGINE) && RUBY_ENGINE == 'jruby'
23
- ActiveRecord::Base.class_eval do
24
- def after_save_with_oracle_lob
25
- nil
26
- end
27
- end
28
- end
29
- end
30
-
31
- if !defined?(RUBY_ENGINE) && ActiveRecord::Base.respond_to?(:oracle_connection) || defined?(RUBY_ENGINE) && RUBY_ENGINE == 'jruby'
32
- it "should return the same tables list as original oracle adapter" do
33
- @new_conn.tables.sort.should == @old_conn.tables.sort
34
- end
35
-
36
- it "should return the same index list as original oracle adapter" do
37
- @new_conn.indexes('employees').sort_by(&:name).should == @old_conn.indexes('employees').sort_by(&:name)
38
- end
39
-
40
- it "should return the same pk_and_sequence_for as original oracle adapter" do
41
- if @old_conn.respond_to?(:pk_and_sequence_for)
42
- @new_conn.tables.each do |t|
43
- @new_conn.pk_and_sequence_for(t).should == @old_conn.pk_and_sequence_for(t)
44
- end
45
- end
46
- end
47
-
48
- it "should return the same structure dump as original oracle adapter" do
49
- @new_conn.structure_dump.split(";\n\n").sort.should == @old_conn.structure_dump.split(";\n\n").sort
50
- end
51
-
52
- it "should return the same structure drop as original oracle adapter" do
53
- @new_conn.structure_drop.split(";\n\n").sort.should == @old_conn.structure_drop.split(";\n\n").sort
54
- end
55
- end
56
-
57
- end
58
-
59
3
  describe "OracleEnhancedAdapter schema dump" do
60
4
  include SchemaSpecHelper
61
5
 
@@ -225,32 +169,35 @@ describe "OracleEnhancedAdapter schema dump" do
225
169
 
226
170
  end
227
171
 
228
- end
229
-
230
- describe "OracleEnhancedAdapter structure dump" do
231
- before(:all) do
232
- ActiveRecord::Base.establish_connection(CONNECTION_PARAMS)
233
- @conn = ActiveRecord::Base.connection
172
+ describe "temporary tables" do
173
+ after(:each) do
174
+ drop_test_posts_table
175
+ end
176
+
177
+ it "should include temporary options" do
178
+ create_test_posts_table(:temporary => true)
179
+ standard_dump.should =~ /create_table "test_posts", :temporary => true/
180
+ end
234
181
  end
235
182
 
236
- describe "database stucture dump extentions" do
237
- before(:all) do
238
- @conn.execute <<-SQL
239
- CREATE TABLE nvarchartable (
240
- unq_nvarchar NVARCHAR2(255) DEFAULT NULL
241
- )
242
- SQL
183
+ describe "indexes" do
184
+ after(:each) do
185
+ drop_test_posts_table
243
186
  end
244
187
 
245
- after(:all) do
246
- @conn.execute "DROP TABLE nvarchartable"
188
+ it "should not specify default tablespace in add index" do
189
+ create_test_posts_table
190
+ standard_dump.should =~ /add_index \"test_posts\", \[\"title\"\], :name => \"index_test_posts_on_title\"$/
247
191
  end
248
192
 
249
- it "should return the character size of nvarchar fields" do
250
- if /.*unq_nvarchar nvarchar2\((\d+)\).*/ =~ @conn.structure_dump
251
- "#$1".should == "255"
252
- end
193
+ it "should not specify default tablespace in add index" do
194
+ tablespace_name = @conn.default_tablespace
195
+ @conn.stub!(:default_tablespace).and_return('dummy')
196
+ create_test_posts_table
197
+ standard_dump.should =~ /add_index \"test_posts\", \[\"title\"\], :name => \"index_test_posts_on_title\", :tablespace => \"#{tablespace_name}\"$/
253
198
  end
199
+
254
200
  end
255
201
 
256
202
  end
203
+
@@ -720,4 +720,65 @@ describe "OracleEnhancedAdapter schema definition" do
720
720
 
721
721
  end
722
722
 
723
+ describe "alter columns with column cache" do
724
+ include LoggerSpecHelper
725
+
726
+ before(:all) do
727
+ ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter.cache_columns = true
728
+ end
729
+
730
+ after(:all) do
731
+ ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter.cache_columns = nil
732
+ end
733
+
734
+ before(:each) do
735
+ schema_define do
736
+ create_table :test_posts, :force => true do |t|
737
+ t.string :title, :null => false
738
+ end
739
+ end
740
+ class ::TestPost < ActiveRecord::Base; end
741
+ TestPost.columns_hash['title'].null.should be_false
742
+ end
743
+
744
+ after(:each) do
745
+ Object.send(:remove_const, "TestPost")
746
+ schema_define { drop_table :test_posts }
747
+ end
748
+
749
+ it "should change column to nullable" do
750
+ schema_define do
751
+ change_column :test_posts, :title, :string, :null => true
752
+ end
753
+ TestPost.reset_column_information
754
+ TestPost.columns_hash['title'].null.should be_true
755
+ end
756
+
757
+ it "should add column" do
758
+ schema_define do
759
+ add_column :test_posts, :body, :string
760
+ end
761
+ TestPost.reset_column_information
762
+ TestPost.columns_hash['body'].should_not be_nil
763
+ end
764
+
765
+ it "should rename column" do
766
+ schema_define do
767
+ rename_column :test_posts, :title, :subject
768
+ end
769
+ TestPost.reset_column_information
770
+ TestPost.columns_hash['subject'].should_not be_nil
771
+ TestPost.columns_hash['title'].should be_nil
772
+ end
773
+
774
+ it "should remove column" do
775
+ schema_define do
776
+ remove_column :test_posts, :title
777
+ end
778
+ TestPost.reset_column_information
779
+ TestPost.columns_hash['title'].should be_nil
780
+ end
781
+
782
+ end
783
+
723
784
  end
data/spec/spec_helper.rb CHANGED
@@ -41,13 +41,8 @@ else
41
41
  require 'action_controller/session/active_record_store'
42
42
  end
43
43
  if !defined?(RUBY_ENGINE)
44
- # change version to 1.0.6 to test with old oracle_adapter
45
44
  gem 'ruby-oci8', '=2.0.3'
46
45
  require 'oci8'
47
- if OCI8::VERSION =~ /^1\./
48
- gem "activerecord-oracle-adapter"
49
- require 'active_record/connection_adapters/oracle_adapter'
50
- end
51
46
  elsif RUBY_ENGINE == 'ruby'
52
47
  gem 'ruby-oci8', '=2.0.3'
53
48
  require 'oci8'
@@ -57,6 +52,7 @@ elsif RUBY_ENGINE == 'jruby'
57
52
  end
58
53
 
59
54
  require 'active_record/connection_adapters/oracle_enhanced_adapter'
55
+ require 'ruby-plsql'
60
56
 
61
57
  module LoggerSpecHelper
62
58
  def log_to(stream)
@@ -84,8 +80,8 @@ end
84
80
  DATABASE_NAME = ENV['DATABASE_NAME'] || 'orcl'
85
81
  DATABASE_HOST = ENV['DATABASE_HOST'] || 'localhost'
86
82
  DATABASE_PORT = ENV['DATABASE_PORT'] || 1521
87
- DATABASE_USER = ENV['DATABASE_USER'] || 'hr'
88
- DATABASE_PASSWORD = ENV['DATABASE_PASSWORD'] || 'hr'
83
+ DATABASE_USER = ENV['DATABASE_USER'] || 'oracle_enhanced'
84
+ DATABASE_PASSWORD = ENV['DATABASE_PASSWORD'] || 'oracle_enhanced'
89
85
  DATABASE_SYS_PASSWORD = ENV['DATABASE_SYS_PASSWORD'] || 'admin'
90
86
 
91
87
  CONNECTION_PARAMS = {
@@ -96,14 +92,6 @@ CONNECTION_PARAMS = {
96
92
  :password => DATABASE_PASSWORD
97
93
  }
98
94
 
99
- JDBC_CONNECTION_PARAMS = {
100
- :adapter => "jdbc",
101
- :driver => "oracle.jdbc.driver.OracleDriver",
102
- :url => "jdbc:oracle:thin:@#{DATABASE_HOST}:#{DATABASE_PORT}:#{DATABASE_NAME}",
103
- :username => DATABASE_USER,
104
- :password => DATABASE_PASSWORD
105
- }
106
-
107
95
  SYS_CONNECTION_PARAMS = {
108
96
  :adapter => "oracle_enhanced",
109
97
  :database => DATABASE_NAME,
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-oracle_enhanced-adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.3
4
+ version: 1.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Raimonds Simanovskis
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-12-09 00:00:00 +02:00
12
+ date: 2010-02-24 00:00:00 +02:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -68,6 +68,7 @@ files:
68
68
  - lib/active_record/connection_adapters/oracle_enhanced_tasks.rb
69
69
  - lib/active_record/connection_adapters/oracle_enhanced_version.rb
70
70
  - spec/active_record/connection_adapters/oracle_enhanced_adapter_spec.rb
71
+ - spec/active_record/connection_adapters/oracle_enhanced_adapter_structure_dumper_spec.rb
71
72
  - spec/active_record/connection_adapters/oracle_enhanced_connection_spec.rb
72
73
  - spec/active_record/connection_adapters/oracle_enhanced_core_ext_spec.rb
73
74
  - spec/active_record/connection_adapters/oracle_enhanced_cpk_spec.rb
@@ -110,6 +111,7 @@ specification_version: 3
110
111
  summary: Oracle enhanced adapter for ActiveRecord
111
112
  test_files:
112
113
  - spec/active_record/connection_adapters/oracle_enhanced_adapter_spec.rb
114
+ - spec/active_record/connection_adapters/oracle_enhanced_adapter_structure_dumper_spec.rb
113
115
  - spec/active_record/connection_adapters/oracle_enhanced_connection_spec.rb
114
116
  - spec/active_record/connection_adapters/oracle_enhanced_core_ext_spec.rb
115
117
  - spec/active_record/connection_adapters/oracle_enhanced_cpk_spec.rb