-
Notifications
You must be signed in to change notification settings - Fork 1.1k
/
spec_helper.rb
62 lines (49 loc) · 1.16 KB
/
spec_helper.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
require 'rubygems'
unless Object.const_defined?('Sequel')
$:.unshift(File.join(File.dirname(File.expand_path(__FILE__)), "../../lib/"))
require 'sequel/core'
end
if ENV['SEQUEL_COLUMNS_INTROSPECTION']
Sequel.extension :columns_introspection
Sequel::Dataset.introspect_all_columns
end
class MockDataset < Sequel::Dataset
def insert(*args)
@db.execute insert_sql(*args)
end
def update(*args)
@db.execute update_sql(*args)
end
def fetch_rows(sql)
@db.execute(sql)
yield({:id => 1, :x => 1})
end
def quoted_identifier(c)
"\"#{c}\""
end
end
class MockDatabase < Sequel::Database
set_adapter_scheme :mock
@@quote_identifiers = false
self.identifier_input_method = nil
self.identifier_output_method = nil
attr_reader :sqls
def execute(sql, opts={})
@sqls ||= []
@sqls << sql
end
def reset
@sqls = []
end
def transaction(opts={}); yield; end
def dataset; MockDataset.new(self); end
end
class SchemaDummyDatabase < Sequel::Database
attr_reader :sqls
self.identifier_input_method = nil
self.identifier_output_method = nil
def execute(sql, opts={})
@sqls ||= []
@sqls << sql
end
end