class MockController
This Mock
controller keep the data in memory in hash/Array data.
Public Instance Methods
create(sObjectType, hParams)
click to toggle source
# File lib/providers/mock/mock.rb, line 30 def create(sObjectType, hParams) PrcLib.debug("Mock: create object '%s' with parameters (hdata) '%s'", sObjectType, hParams[:hdata]) result = {} hParams[].keys.each do |key| next if key == :hdata result[key] = hParams[key] end result.merge!(hParams[:hdata]) @@data[sObjectType] = [] unless @@data.key?(sObjectType) array = @@data[sObjectType] array.each do |value| fail if value.key?(result[:name]) end array << result result[:id] = array.length - 1 # Typical code: # ~ case sObjectType # ~ when :public_ip # Following function can be executed to ensure the object :connection exists # ~ required?(hParams, :connection) # ~ required?(hParams, :server) # ~ ... CODE to create # ~ else # ~ controller_error "'%s' is not a valid object for 'create'", sObjectType # ~ end # The code should return some data # This data will be encapsulated in Lorj::Data object. # data will be extracted by the framework with the controller get_attr # function and mapped. PrcLib.debug("Mock: object '%s' = '%s' is created.", sObjectType, result) result end
delete(sObjectType, hParams)
click to toggle source
# File lib/providers/mock/mock.rb, line 91 def delete(sObjectType, hParams) PrcLib.debug("Mock: delete object '%s' with hdata '%s'", sObjectType, hParams[:hdata]) return nil unless @@data.key?(sObjectType) return false if !hParams.exist?(sObjectType) || hParams[sObjectType].nil? @@data[sObjectType].delete(hParams[sObjectType]) PrcLib.debug("Mock: object '%s' = '%s' is deleted.", sObjectType, hParams[sObjectType]) true end
get(sObjectType, sUniqId, hParams)
click to toggle source
# File lib/providers/mock/mock.rb, line 103 def get(sObjectType, sUniqId, hParams) PrcLib.debug("Mock: Get object '%s' = '%s' with hdata '%s'", sObjectType, sUniqId, hParams[:hdata]) return nil unless @@data.key?(sObjectType) @@data[sObjectType][sUniqId] end
get_attr(oControlerObject, key)
click to toggle source
# File lib/providers/mock/mock.rb, line 110 def get_attr(oControlerObject, key) # This controller function read the data and # extract the information requested by the framework. # Those data will be mapped to the process data model. # The key is an array, to get data from a level tree. # [data_l1, data_l2, data_l3] => should retrieve data from structure like # data[ data_l2[ data_l3 ] ] attributes = oControlerObject attributes.rh_get(key) rescue => e controller_error "Unable to map '%s'.\n%s", key, e.message end
query(sObjectType, sQuery, hParams)
click to toggle source
This function return a collection which have to provide: functions: [], length, each Used by network process.
# File lib/providers/mock/mock.rb, line 73 def query(sObjectType, sQuery, hParams) PrcLib.debug("Mock: query object '%s' with hdata '%s' using query '%s'", sObjectType, hParams[:hdata], sQuery) return [] unless @@data.key?(sObjectType) result = [] @@data[sObjectType].each do |value| elem = value sQuery.each do |query_key, query_value| elem = nil if !value.key?(query_key) || value[query_key] != query_value end result << elem if elem end result end
set_attr(oControlerObject, key, value)
click to toggle source
# File lib/providers/mock/mock.rb, line 124 def set_attr(oControlerObject, key, value) attributes = oControlerObject attributes.rh_set(value, key) rescue => e controller_error "Unable to map '%s' on '%s'.\n%s", key, sObjectType, e.message end
update(sObjectType, oObject, hParams)
click to toggle source
# File lib/providers/mock/mock.rb, line 133 def update(sObjectType, oObject, hParams) PrcLib.debug("Mock: Update object '%s' = '%s' with hdata '%s'", sObjectType, sUniqId, hParams[:hdata]) return false unless @@data.key?(sObjectType) return false unless @@data[sObjectType][oObject[:id]].nil? # Considered hash object is already updated. # This action emule the object save which doesn't make sense in this empty # Mock controller. true end