Class: FluidDb2::Mock
Overview
A constant way of enabling testing for FluidDb
Instance Attribute Summary collapse
-
#hash ⇒ Object
readonly
Returns the value of attribute hash.
Attributes inherited from Base
Instance Method Summary collapse
- #add_sql(sql, result) ⇒ Object
- #add_sql_with_params(sql, params, result) ⇒ Object
-
#begin ⇒ Object
Transaction Semantics.
- #close ⇒ Object
-
#commit ⇒ Object
Transaction Semantics.
- #connect ⇒ Object
- #execute(sql, params = [], _expected_affected_rows = nil) ⇒ Object
- #get_sql_from_hash(sql) ⇒ Object
-
#initialize(_uri) ⇒ Mock
constructor
A new instance of Mock.
- #insert(_sql, _params) ⇒ Object
- #query_for_array(sql, params = []) ⇒ Object
- #query_for_resultset(sql, params = []) ⇒ Object
- #query_for_value(sql, params = []) ⇒ Object
-
#rollback ⇒ Object
Transaction Semantics.
- #verbose ⇒ Object
Methods inherited from Base
Constructor Details
#initialize(_uri) ⇒ Mock
11 12 13 14 |
# File 'lib/fluiddb2/mock.rb', line 11 def initialize(_uri) @hash = {} @verbose = false end |
Instance Attribute Details
#hash ⇒ Object (readonly)
Returns the value of attribute hash.
9 10 11 |
# File 'lib/fluiddb2/mock.rb', line 9 def hash @hash end |
Instance Method Details
#add_sql(sql, result) ⇒ Object
80 81 82 83 84 |
# File 'lib/fluiddb2/mock.rb', line 80 def add_sql(sql, result) raise TypeError.new( "Expecting an Array of Hashes, eg [{'field1'=>1, 'field2'=>2}]. Note, the Array may be empty" ) unless result.is_a? Array @hash[sql] = result end |
#add_sql_with_params(sql, params, result) ⇒ Object
86 87 88 89 |
# File 'lib/fluiddb2/mock.rb', line 86 def add_sql_with_params(sql, params, result) sql = format_to_sql(sql, params) add_sql(sql, result) end |
#begin ⇒ Object
Transaction Semantics
92 93 |
# File 'lib/fluiddb2/mock.rb', line 92 def begin end |
#close ⇒ Object
24 25 |
# File 'lib/fluiddb2/mock.rb', line 24 def close end |
#commit ⇒ Object
Transaction Semantics
96 97 |
# File 'lib/fluiddb2/mock.rb', line 96 def commit end |
#connect ⇒ Object
21 22 |
# File 'lib/fluiddb2/mock.rb', line 21 def connect end |
#execute(sql, params = [], _expected_affected_rows = nil) ⇒ Object
70 71 72 73 74 |
# File 'lib/fluiddb2/mock.rb', line 70 def execute(sql, params = [], _expected_affected_rows = nil) sql = format_to_sql(sql, params) puts "FluidDb::Mock.execute. sql: #{sql}" if @verbose == true get_sql_from_hash(sql) end |
#get_sql_from_hash(sql) ⇒ Object
27 28 29 30 31 |
# File 'lib/fluiddb2/mock.rb', line 27 def get_sql_from_hash(sql) fail SqlNotMatchedError, sql unless @hash.key?(sql) @hash[sql] end |
#insert(_sql, _params) ⇒ Object
76 77 78 |
# File 'lib/fluiddb2/mock.rb', line 76 def insert(_sql, _params) fail 'Mock uses SEQUENCES, so possibly easier to use 2 executes' end |
#query_for_array(sql, params = []) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/fluiddb2/mock.rb', line 33 def query_for_array(sql, params = []) sql = format_to_sql(sql, params) puts "FluidDb::Mock.query_for_array. sql: #{sql}" if @verbose == true results = get_sql_from_hash(sql) case results.length when 0 fail FluidDb::NoDataFoundError when 1 return results.first else fail FluidDb::TooManyRowsError end end |
#query_for_resultset(sql, params = []) ⇒ Object
64 65 66 67 68 |
# File 'lib/fluiddb2/mock.rb', line 64 def query_for_resultset(sql, params = []) sql = format_to_sql(sql, params) puts "FluidDb::Mock.queryForResultset. sql: #{sql}" if @verbose == true get_sql_from_hash(sql) end |
#query_for_value(sql, params = []) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/fluiddb2/mock.rb', line 48 def query_for_value(sql, params = []) sql = format_to_sql(sql, params) puts "FluidDb::Mock.queryForValue. sql: #{sql}" if @verbose == true results = get_sql_from_hash(sql) case results.length when 0 fail FluidDb::NoDataFoundError when 1 return results.first.first[1] else fail FluidDb::TooManyRowsError end @hash[sql] end |
#rollback ⇒ Object
Transaction Semantics
100 101 |
# File 'lib/fluiddb2/mock.rb', line 100 def rollback end |
#verbose ⇒ Object
16 17 18 19 |
# File 'lib/fluiddb2/mock.rb', line 16 def verbose @verbose = true self end |