Sha256: 7dcf453fa4aad6e8fc6293e86c252fba8141bd69635734b77f9af3a642a56b6b

Contents?: true

Size: 1.07 KB

Versions: 7

Compression:

Stored size: 1.07 KB

Contents

module PaymentTest

  class PluginPropertyUtils

    def self.get_property_or_nil(properties, key_name)
      test_props = (properties || []).select { |e| e.key == key_name }
      if test_props.size > 1
        raise ArgumentError.new "multiple property with key #{key_name} is not allowed"
      end
      test_props.size == 1 ? test_props[0] : nil
    end

    def self.add_property_if_not_exist(properties, key_name, key_value)
      if get_property_or_nil(properties, key_name).nil?
        prop = Killbill::Plugin::Model::PluginProperty.new
        prop.key = key_name
        prop.value = key_value
        properties << prop
      end
    end

    def self.validate_properties(properties)
      if properties.nil?
        return
      end

      if !properties.is_a? Array
        raise ArgumentError.new "properties should be an Array"
      end

      properties.each do |p|
        if !p.is_a? Killbill::Plugin::Model::PluginProperty
          raise ArgumentError.new "Each property should be of type Killbill::Plugin::Model::PluginProperty"
        end
      end
    end

  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
killbill-payment-test-6.0.0 lib/payment_test/plugin_property_utils.rb
killbill-payment-test-5.0.0 lib/payment_test/plugin_property_utils.rb
killbill-payment-test-4.2.0 lib/payment_test/plugin_property_utils.rb
killbill-payment-test-4.1.0 lib/payment_test/plugin_property_utils.rb
killbill-payment-test-4.0.1 lib/payment_test/plugin_property_utils.rb
killbill-payment-test-4.0.0 lib/payment_test/plugin_property_utils.rb
killbill-payment-test-3.3.0 lib/payment_test/plugin_property_utils.rb