Class: FluidDb::Mock
- Inherits:
-
Base
- Object
- Base
- FluidDb::Mock
show all
- Defined in:
- lib/FluidDb/Mock.rb
Overview
A constant way of enabling testing for FluidDb
Instance Attribute Summary collapse
Attributes inherited from Base
#connection
Instance Method Summary
collapse
Methods inherited from Base
#convertTupleToHash, #escape_string, #format_to_sql, #reconnect, #splice_sql, #verboseLog
Constructor Details
#initialize(uri) ⇒ Mock
Returns a new instance of Mock.
15
16
17
18
|
# File 'lib/FluidDb/Mock.rb', line 15
def initialize(uri)
@hash = Hash.new
end
|
Instance Attribute Details
#hash ⇒ Object
Returns the value of attribute hash.
11
12
13
|
# File 'lib/FluidDb/Mock.rb', line 11
def hash
@hash
end
|
Instance Method Details
#addSql(sql, result) ⇒ Object
86
87
88
89
90
91
92
|
# File 'lib/FluidDb/Mock.rb', line 86
def addSql( sql, result )
if !result.is_a? Array then
raise TypeError.new( "Expecting an Array of Hashes, eg [{'field1'=>1, 'field2'=>2}]. Note, the Array may be empty" )
end
@hash[sql] = result;
end
|
#addSqlWithParams(sql, params, result) ⇒ Object
94
95
96
97
98
|
# File 'lib/FluidDb/Mock.rb', line 94
def addSqlWithParams( sql, params, result )
sql = self.format_to_sql( sql, params )
self.addSql( sql, result )
end
|
#Begin ⇒ Object
101
102
|
# File 'lib/FluidDb/Mock.rb', line 101
def Begin
end
|
#close ⇒ Object
28
29
|
# File 'lib/FluidDb/Mock.rb', line 28
def close
end
|
#Commit ⇒ Object
105
106
|
# File 'lib/FluidDb/Mock.rb', line 105
def Commit
end
|
#connect ⇒ Object
25
26
|
# File 'lib/FluidDb/Mock.rb', line 25
def connect()
end
|
#execute(sql, params = [], expected_affected_rows = nil) ⇒ Object
76
77
78
79
80
|
# File 'lib/FluidDb/Mock.rb', line 76
def execute( sql, params=[], expected_affected_rows=nil )
sql = self.format_to_sql( sql, params )
puts "FluidDb::Mock.execute. sql: #{sql}" if @verbose == true
return self.getSqlFromHash( sql )
end
|
#getSqlFromHash(sql) ⇒ Object
31
32
33
34
35
|
# File 'lib/FluidDb/Mock.rb', line 31
def getSqlFromHash( sql )
raise SqlNotMatchedError.new( sql ) unless @hash.has_key?( sql )
return @hash[sql]
end
|
#insert(sql, params) ⇒ Object
82
83
84
|
# File 'lib/FluidDb/Mock.rb', line 82
def insert( sql, params )
raise "Pgsql uses SEQUENCES, so possibly easier to use 2 executes"
end
|
#queryForArray(sql, params = []) ⇒ Object
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# File 'lib/FluidDb/Mock.rb', line 37
def queryForArray( sql, params=[] )
sql = self.format_to_sql( sql, params )
puts "FluidDb::Mock.queryForArray. sql: #{sql}" if @verbose == true
results = self.getSqlFromHash( sql )
case results.length
when 0
raise FluidDb::NoDataFoundError.new
when 1
return results.first
return r
else
raise FluidDb::TooManyRowsError.new
end
end
|
#queryForResultset(sql, params = []) ⇒ Object
70
71
72
73
74
|
# File 'lib/FluidDb/Mock.rb', line 70
def queryForResultset( sql, params=[] )
sql = self.format_to_sql( sql, params )
puts "FluidDb::Mock.queryForResultset. sql: #{sql}" if @verbose == true
return self.getSqlFromHash( sql )
end
|
#queryForValue(sql, params = []) ⇒ Object
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
# File 'lib/FluidDb/Mock.rb', line 54
def queryForValue( sql, params=[] )
sql = self.format_to_sql( sql, params )
puts "FluidDb::Mock.queryForValue. sql: #{sql}" if @verbose == true
results = self.getSqlFromHash( sql )
case results.length
when 0
raise FluidDb::NoDataFoundError.new
when 1
return results.first.first[1]
else
raise FluidDb::TooManyRowsError.new
end
return @hash[sql]
end
|
#Rollback ⇒ Object
109
110
|
# File 'lib/FluidDb/Mock.rb', line 109
def Rollback
end
|
#verbose ⇒ Object
20
21
22
23
|
# File 'lib/FluidDb/Mock.rb', line 20
def verbose()
@verbose = true
return self
end
|