From a0ed40b3c6583d85103fc5430125d4c0878c193a Mon Sep 17 00:00:00 2001 From: divyajayan Date: Fri, 30 Sep 2016 20:21:47 +0530 Subject: [PATCH] added specs for all operations --- Gemfile | 2 +- Gemfile.lock | 26 ++-- models/pc_app.rb | 11 ++ models/pc_customer.rb | 13 ++ models/pc_product.rb | 14 +++ models/pc_program.rb | 10 ++ spec/BlockCardMatchers.rb | 8 +- spec/BlockCard_spec.rb | 64 ++++++---- spec/LoadCardMatchers.rb | 8 +- spec/LoadCard_spec.rb | 72 +++++++---- spec/RegisterCardMatchers.rb | 7 +- spec/RegisterCard_spec.rb | 223 ++++++++++++++--------------------- spec/config/data.yml | 36 +++++- spec/operations.rb | 75 ++++++++++++ spec/spec_helper.rb | 2 + spec/suite.rb | 13 ++ 16 files changed, 378 insertions(+), 206 deletions(-) create mode 100644 models/pc_customer.rb create mode 100644 spec/operations.rb create mode 100644 spec/suite.rb diff --git a/Gemfile b/Gemfile index e3525c5..5751977 100644 --- a/Gemfile +++ b/Gemfile @@ -3,4 +3,4 @@ ruby '2.2.2' gem 'api_banking', path: "/Users/divya/code/ruby/api_banking" gem 'rspec' gem 'dotenv' -gem 'manacle_for' +gem 'manacle_for', path: '/Users/divya/code/ruby/manacle_gem' diff --git a/Gemfile.lock b/Gemfile.lock index 8508695..7455b65 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,10 +1,22 @@ PATH remote: /Users/divya/code/ruby/api_banking specs: - api_banking (0.1.11) + api_banking (0.1.12) nokogiri typhoeus +PATH + remote: /Users/divya/code/ruby/manacle_gem + specs: + manacle_for (0.0.11) + activerecord-oracle_enhanced-adapter + api_banking + dotenv + factory_girl + nokogiri + rspec + ruby-oci8 + GEM remote: https://rubygems.org/ specs: @@ -33,16 +45,8 @@ GEM activesupport (>= 3.0.0) ffi (1.9.14) i18n (0.7.0) - manacle_for (0.0.7) - activerecord-oracle_enhanced-adapter - api_banking - dotenv - factory_girl - nokogiri - rspec - ruby-oci8 mini_portile2 (2.1.0) - minitest (5.9.0) + minitest (5.9.1) nokogiri (1.6.8) mini_portile2 (~> 2.1.0) pkg-config (~> 1.1.7) @@ -74,7 +78,7 @@ PLATFORMS DEPENDENCIES api_banking! dotenv - manacle_for + manacle_for! rspec RUBY VERSION diff --git a/models/pc_app.rb b/models/pc_app.rb index 40ab283..ed394ac 100644 --- a/models/pc_app.rb +++ b/models/pc_app.rb @@ -1,4 +1,5 @@ class PcApp < ActiveRecord::Base + after_initialize :defaults, unless: :persisted? self.table_name = "pc_apps" belongs_to :pc_program, :foreign_key => 'program_code', :primary_key => 'code',:class_name => 'PcProgram' @@ -12,4 +13,14 @@ def enable! self.is_enabled = 'Y' save! end + + private + def defaults + self.is_enabled = 'Y' + self.approval_status = 'A' + self.lock_version = 0 + self.last_action = 'C' + self.identity_user_id = '12345' + end + end \ No newline at end of file diff --git a/models/pc_customer.rb b/models/pc_customer.rb new file mode 100644 index 0000000..a643c04 --- /dev/null +++ b/models/pc_customer.rb @@ -0,0 +1,13 @@ +class PcCustomer < ActiveRecord::Base + self.table_name = "pc_customers" + + def disable! + self.cust_status = 'inactive' + save! + end + + def enable! + self.cust_status = 'active' + save! + end +end \ No newline at end of file diff --git a/models/pc_product.rb b/models/pc_product.rb index 0e3d6ab..67b5203 100644 --- a/models/pc_product.rb +++ b/models/pc_product.rb @@ -1,6 +1,9 @@ class PcProduct < ActiveRecord::Base + after_initialize :defaults, unless: :persisted? self.table_name = "pc_products" + attr_accessor :prod + belongs_to :pc_program, :foreign_key => 'program_code', :primary_key => 'code', :class_name => 'PcProgram' def disable! @@ -12,4 +15,15 @@ def enable! self.is_enabled = 'Y' save! end + + private + def defaults + self.is_enabled = 'Y' + self.approval_status = 'A' + self.lock_version = 0 + self.last_action = 'C' + self.mm_admin_password = Manacle::Helper.encrypt(self.mm_admin_password) + self.rkb_password = Manacle::Helper.encrypt(self.rkb_password) + end + end \ No newline at end of file diff --git a/models/pc_program.rb b/models/pc_program.rb index dd1d88a..5a1e2d4 100644 --- a/models/pc_program.rb +++ b/models/pc_program.rb @@ -1,4 +1,5 @@ class PcProgram < ActiveRecord::Base + after_initialize :defaults, unless: :persisted? self.table_name = "pc_programs" has_many :pc_products, :foreign_key => 'program_code', :primary_key => 'code', :class_name => 'PcProduct' @@ -12,4 +13,13 @@ def enable! self.is_enabled = 'Y' save! end + + private + def defaults + self.is_enabled = 'Y' + self.approval_status = 'A' + self.lock_version = 0 + self.last_action = 'C' + end + end \ No newline at end of file diff --git a/spec/BlockCardMatchers.rb b/spec/BlockCardMatchers.rb index c3d340a..2e2e519 100644 --- a/spec/BlockCardMatchers.rb +++ b/spec/BlockCardMatchers.rb @@ -1,16 +1,18 @@ require 'rspec/expectations' module BlockCardMatchers - RSpec::Matchers.define :be_completed do + extend RSpec::Matchers::DSL + matcher :be_completed do match do |response| + p response.try(:uniqueResponseNo) expect(response).to be_an_instance_of ApiBanking::PrepaidCardManagementService::BlockCard::Result end failure_message do |response| if actual.instance_of?(ApiBanking::Fault) - "expected result would be a success instead of #{actual.class} code #{actual.code} : #{actual.subCode} : #{actual.reasonText}" + "expected result should be BlockCard::Result instead of #{actual.class} code #{actual.code} : #{actual.subCode} : #{actual.reasonText}" else - "expected result would be a success instead of #{response}" + "expected result should be BlockCard::Result instead of #{response} " end end end diff --git a/spec/BlockCard_spec.rb b/spec/BlockCard_spec.rb index 197ba51..a43b2dc 100644 --- a/spec/BlockCard_spec.rb +++ b/spec/BlockCard_spec.rb @@ -1,23 +1,15 @@ +require_relative 'operations' require_relative 'BlockCardMatchers' -ActiveRecord::Base.logger = Logger.new(STDOUT) - -class BlockCard - # specify the list of paramaters that are always required to be printed in the report - def self.param_defaults - [{appID: nil}, {mobileNo: nil}] - end -end +# ActiveRecord::Base.logger = Logger.new(STDOUT) RSpec.describe BlockCard do include BlockCardMatchers let(:appID) { 'MANACLE' } - def build_request() - request = ApiBanking::PrepaidCardManagementService::BlockCard::Request.new() - - request + def build_request + BlockCard.build_request end def blockCard(request) @@ -25,23 +17,53 @@ def blockCard(request) end before(:all) do - # initialize factories + @pc_program = PcProgram.create(code: 'PROGRAM1') + @pc_app = PcApp.create(app_id: 'MANACLE', program_code: @pc_program.code) + @pc_product1 = PcProduct.create({code: 'prod1', program_code: @pc_program.code}.merge(Manacle::DATA['product_attributes'])) + @pc_product2 = PcProduct.create({code: 'prod2', program_code: @pc_program.code}.merge(Manacle::DATA['product_attributes'])) + + (@reg_request = RegisterCard.build_request()).appID = @pc_app.app_id + @reg_request.productCode = @pc_product1.code + @reg_request.proxyCardNumber = Manacle::DATA['available_proxy_card6'] + ApiBanking::PrepaidCardManagementService.registerCard(@reg_request) end after(:all) do - # destroy factories + @pc_app.delete + @pc_program.delete + @pc_product1.delete + @pc_product2.delete end - context "with some scenario " do - before(:each) do + context "with a registered mobile" do + context "with a card which is not blocked" do + it "should return success", case: :PPCMB2 do + (request = build_request()).appID = @pc_app.app_id + request.mobileNo = @reg_request.mobileNo + expect(blockCard(request)).to be_completed + end end - - context "and an empty request" do - it "should return fault", case: :PPC01 do - (request = build_request()) - expect(blockCard(request)).to fail_with('ns:E400') + context "with a card which is already blocked" do + it "should return fault", case: :PPCMB3 do + (request = build_request()).appID = @pc_app.app_id + request.mobileNo = @reg_request.mobileNo + expect(blockCard(request)).to fail_with('http:status-400') end end + end + context "with an unregistered mobile" do + it "should return fault", case: :PPCMB4 do + (request = build_request()).appID = @pc_app.app_id + request.mobileNo = Manacle::DATA['unregistered_customer_mobile'] + expect(blockCard(request)).to fail_with('http:status-400') + end + end + + context "with an invalid app_id " do + it "should return fault", case: :PPCMB1 do + (request = build_request()).appID = 'BLANK' + expect(blockCard(request)).to fail_with('ns:E404') + end end end diff --git a/spec/LoadCardMatchers.rb b/spec/LoadCardMatchers.rb index 0d08648..0341409 100644 --- a/spec/LoadCardMatchers.rb +++ b/spec/LoadCardMatchers.rb @@ -1,16 +1,18 @@ require 'rspec/expectations' module LoadCardMatchers - RSpec::Matchers.define :be_completed do + extend RSpec::Matchers::DSL + matcher :be_completed do match do |response| + puts response.try(:uniqueResponseNo) expect(response).to be_an_instance_of ApiBanking::PrepaidCardManagementService::LoadCard::Result end failure_message do |response| if actual.instance_of?(ApiBanking::Fault) - "expected result would be a success instead of #{actual.class} code #{actual.code} : #{actual.subCode} : #{actual.reasonText}" + "expected result would be LoadCard::Result instead of #{actual.class} code #{actual.code} : #{actual.subCode} : #{actual.reasonText}" else - "expected result would be a success instead of #{response}" + "expected result would be LoadCard::Result instead of #{response}" end end end diff --git a/spec/LoadCard_spec.rb b/spec/LoadCard_spec.rb index 46dc558..a4cc2bb 100644 --- a/spec/LoadCard_spec.rb +++ b/spec/LoadCard_spec.rb @@ -1,13 +1,8 @@ +require_relative 'operations' require_relative 'LoadCardMatchers' +# require 'ruby-debug' -ActiveRecord::Base.logger = Logger.new(STDOUT) - -class LoadCard - # specify the list of paramaters that are always required to be printed in the report - def self.param_defaults - [{appID: nil}, {mobileNo: nil}] - end -end +# ActiveRecord::Base.logger = Logger.new(STDOUT) RSpec.describe LoadCard do include LoadCardMatchers @@ -15,9 +10,7 @@ def self.param_defaults let(:appID) { 'MANACLE' } def build_request() - request = ApiBanking::PrepaidCardManagementService::LoadCard::Request.new() - - request + LoadCard.build_request end def loadCard(request) @@ -25,23 +18,58 @@ def loadCard(request) end before(:all) do - # initialize factories + p @abc + @ar = {} + @ar[:pc_program] = PcProgram.create(code: 'PROGRAM1') + @ar[:pc_app] = PcApp.create(app_id: 'MANACLE', program_code: @ar[:pc_program].code) + @ar[:pc_product1] = PcProduct.create({code: 'prod1', program_code: @ar[:pc_program].code}.merge(Manacle::DATA['product_attributes'])) + @ar[:pc_product2] = PcProduct.create({code: 'prod2', program_code: @ar[:pc_program].code}.merge(Manacle::DATA['product_attributes'])) + + # register the proxy_card if not already registered + (request = RegisterCard.build_request()).appID = @ar[:pc_app].app_id + request.productCode = @ar[:pc_product1].code + request.proxyCardNumber = Manacle::DATA['available_proxy_card6'] + @mobileNo = request.mobileNo + if ApiBanking::PrepaidCardManagementService.registerCard(request).instance_of?(ApiBanking::Fault) + @ar.each { |k,v| v.delete } + raise "registration failed " + end end after(:all) do - # destroy factories + @ar.each { |k,v| v.delete } end - context "with some scenario " do - before(:each) do - end - - context "and an empty request" do - it "should return fault", case: :PPC01 do - (request = build_request()) - expect(loadCard(request)).to fail_with('ns:E400') + context "with a registered mobile" do + context "with valid debit account number" do + it "should return success", case: :PPCML2 do + (request = build_request()).appID = @pc_app.app_id + request.mobileNo = @mobileNo + expect(loadCard(request)).to be_completed end end - + # context "with invalid debit account number" do + # it "should return fault", case: :PPCML3 do + # (request = build_request()).appID = @pc_app.app_id + # request.mobileNo = @mobileNo + # request.debitAccountNo = Manacle::DATA['invalid_debit_account_no'] + # expect(loadCard(request)).to fail_with('ns:E502') + # end + # end + end + + context "with an unregistered mobile" do + it "should return fault", case: :PPCML4 do + (request = build_request()).appID = @pc_app.app_id + request.mobileNo = Manacle::DATA['unregistered_customer_mobile'] + expect(loadCard(request)).to fail_with('http:status-400') + end + end + + context "with an invalid app_id " do + it "should return fault", case: :PPCML1 do + (request = build_request()).appID = 'BLANK' + expect(loadCard(request)).to fail_with('ns:E404') + end end end diff --git a/spec/RegisterCardMatchers.rb b/spec/RegisterCardMatchers.rb index f3f1435..354a8e7 100644 --- a/spec/RegisterCardMatchers.rb +++ b/spec/RegisterCardMatchers.rb @@ -1,16 +1,17 @@ require 'rspec/expectations' module RegisterCardMatchers - RSpec::Matchers.define :be_completed do + extend RSpec::Matchers::DSL + matcher :be_completed do match do |response| expect(response).to be_an_instance_of ApiBanking::PrepaidCardManagementService::RegisterCard::Result end failure_message do |response| if actual.instance_of?(ApiBanking::Fault) - "expected result would be a success instead of #{actual.class} code #{actual.code} : #{actual.subCode} : #{actual.reasonText}" + "expected result would be RegisterCard::Result instead of #{actual.class} code #{actual.code} : #{actual.subCode} : #{actual.reasonText}" else - "expected result would be a success instead of #{response}" + "expected result would be RegisterCard::Result instead of #{response}" end end end diff --git a/spec/RegisterCard_spec.rb b/spec/RegisterCard_spec.rb index 1b41d74..29e95d8 100644 --- a/spec/RegisterCard_spec.rb +++ b/spec/RegisterCard_spec.rb @@ -1,51 +1,13 @@ +require_relative 'operations' require_relative 'RegisterCardMatchers' -ActiveRecord::Base.logger = Logger.new(STDOUT) - -class RegisterCard - # specify the list of paramaters that are always required to be printed in the report - def self.param_defaults - [{appID: nil}, {mobileNo: nil}] - end -end +# ActiveRecord::Base.logger = Logger.new(STDOUT) RSpec.describe RegisterCard do include RegisterCardMatchers def build_request() - address = ApiBanking::PrepaidCardManagementService::RegisterCard::Address.new() - idDocument = ApiBanking::PrepaidCardManagementService::RegisterCard::IDDocument.new() - request = ApiBanking::PrepaidCardManagementService::RegisterCard::Request.new() - - address.addressLine1 = 'Shankar Lane' - address.addressLine2 = 'Kandivali' - address.city = 'Mumbai' - address.state = 'Maharashtra' - address.country = 'india' - address.postalCode = '400101' - - idDocument.documentType = 'passport' - idDocument.documentNo = Time.now.to_i - idDocument.countryOfIssue = 'india' - - request.uniqueRequestNo = SecureRandom.uuid.gsub!('-','') - request.appID = 'MANACLE' - request.title = 'Miss' - request.firstName = 'Divya' - request.lastName = 'Jayan' - request.preferredName = 'divya' - request.mobileNo = Time.now.to_i - request.gender = 'female' - request.nationality = 'indian' - request.birthDate = '1992-12-18' - request.idDocument = idDocument - request.address = address - request.proxyCardNumber = '000000418951' - - request.address = address - request.idDocument = idDocument - - request + RegisterCard.build_request end def registerCard(request) @@ -53,130 +15,117 @@ def registerCard(request) end before(:all) do - # initialize factories - @pc_program = PcProgram.create(code: 'PROGRAM1', is_enabled: 'Y', lock_version: 0, approval_status: 'A', last_action: 'C') - @pc_app = PcApp.create(app_id: 'MANACLE', program_code: @pc_program.code, identity_user_id: '12345', is_enabled: 'Y', lock_version: 0, approval_status: 'A', last_action: 'C') - @pc_product1 = PcProduct.create(code: 'Prod1', - program_code: @pc_program.code, - mm_host: 'https://beta-api.mmvpay.com/inyesm/v1', - mm_consumer_key: 'tcstqKOIjRQzoOy6stF4XVOaAJw5KP7R', - mm_consumer_secret: 'K6dumoioZMgcC2KdEd2L6cZ5ouSNiZpKmQz4i7HL0JtE4aVRIdinTBDDfIYlAjH8', - mm_card_type: 'ybyesmoneycard', - mm_email_domain: 'quantiguous.com', - mm_admin_host: 'https://yesm-ad-uat.mmvpay.com', - mm_admin_user: 'tester+yes@matchmove.com', - mm_admin_password: 'mmg123456', - card_acct: '000590600000122', - sc_gl_income: '1231', - card_cust_id: '2427', - display_name: 'My Name', - cust_care_no: '1234', - rkb_user: 'taisys', - rkb_password: '91ca2dfffd0997f8a7c941538137b114de84a41f', - rkb_bcagent: 'yblesb', - rkb_channel_partner: '140', - is_enabled: 'Y', - lock_version: 0, - approval_status: 'A', - last_action: 'C') - @pc_product2 = PcProduct.create(code: 'Prod2', - program_code: @pc_program.code, - mm_host: 'https://beta-api.mmvpay.com/inyesm/v1', - mm_consumer_key: 'tcstqKOIjRQzoOy6stF4XVOaAJw5KP7R', - mm_consumer_secret: 'K6dumoioZMgcC2KdEd2L6cZ5ouSNiZpKmQz4i7HL0JtE4aVRIdinTBDDfIYlAjH8', - mm_card_type: 'ybyesmoneycard', - mm_email_domain: 'quantiguous.com', - mm_admin_host: 'https://yesm-ad-uat.mmvpay.com', - mm_admin_user: 'tester+yes@matchmove.com', - mm_admin_password: 'mmg123456', - card_acct: '000590600000122', - sc_gl_income: '1231', - card_cust_id: '2427', - display_name: 'My Name', - cust_care_no: '1234', - rkb_user: 'taisys', - rkb_password: '91ca2dfffd0997f8a7c941538137b114de84a41f', - rkb_bcagent: 'yblesb', - rkb_channel_partner: '140', - is_enabled: 'Y', - lock_version: 0, - approval_status: 'A', - last_action: 'C') + @pc_program = PcProgram.create(code: 'PROGRAM1') + @pc_app = PcApp.create(app_id: 'MANACLE', program_code: @pc_program.code) + @pc_product1 = PcProduct.create({code: 'prod1', program_code: @pc_program.code}.merge(Manacle::DATA['product_attributes'])) + @pc_product2 = PcProduct.create({code: 'prod2', program_code: @pc_program.code}.merge(Manacle::DATA['product_attributes'])) end after(:all) do - @pc_app.delete - @pc_program.delete - @pc_product1.delete - @pc_product2.delete + @pc_app.delete + @pc_program.delete + @pc_product1.delete + @pc_product2.delete end - context "service faults" do - context "with an invalid app_id " do - it "should return fault", case: :PPC01 do - (request = build_request()).appID = 'BLANK' - expect(registerCard(request)).to fail_with('ns:E400', 'ns:E1001') - end + context "with an invalid app_id " do + it "should return fault", case: :PPCMR6 do + (request = build_request()).appID = 'BLANK' + expect(registerCard(request)).to fail_with('ns:E400', 'ns:E1001') end - - context "with no product for program" do - it "should return fault", case: :PPC02 do - @pc_product1.disable! - @pc_product2.disable! + end + + context "with valid product code" do + context "with a non-registered card" do + it "should return success", case: :PPCMR5 do + @pc_product1.enable! (request = build_request()).appID = @pc_app.app_id - expect(registerCard(request)).to fail_with('ns:E400', 'ns:E1001') + request.productCode = @pc_product1.code + request.proxyCardNumber = Manacle::DATA['available_proxy_card1'] + expect(registerCard(request)).to be_completed end end - - context "with invalid product code for program" do - it "should return fault", case: :PPC03 do - @pc_product1.disable! - @pc_product2.enable! + + context "with already registered card" do + it "should return fault", case: :PPCMR6 do + @pc_product1.enable! (request = build_request()).appID = @pc_app.app_id request.productCode = @pc_product1.code - expect(registerCard(request)).to fail_with('ns:E400', 'ns:E1001') + request.proxyCardNumber = Manacle::DATA['available_proxy_card2'] + expect(registerCard(request)).to be_completed + + request.mobileNo = Time.now.to_i + request.idDocument.documentNo = Time.now.to_i + request.uniqueRequestNo = SecureRandom.uuid.gsub!('-','') + expect(registerCard(request)).to fail_with('http:status-400') end end - - context "with multiple products for program" do - it "should return fault", case: :PPC04 do + + context "with already registered customer" do + it "should return fault", case: :PPCMR7 do @pc_product1.enable! - @pc_product2.enable! (request = build_request()).appID = @pc_app.app_id request.productCode = @pc_product1.code - expect(registerCard(request)).to fail_with('ns:E400', 'ns:E1001') + request.proxyCardNumber = Manacle::DATA['available_proxy_card3'] + expect(registerCard(request)).to be_completed + + request.proxyCardNumber = Manacle::DATA['available_proxy_card4'] + request.uniqueRequestNo = SecureRandom.uuid.gsub!('-','') + expect(registerCard(request)).to fail_with('http:status-400') end end end - - context "mm_faults" do - context "with already registered card" do - it "should return fault", case: :PPC05 do + + context "with invalid product code" do + it "should return fault", case: :PPCMR4 do + @pc_product1.enable! + @pc_product2.disable! + (request = build_request()).appID = @pc_app.app_id + request.productCode = @pc_product2.code + request.proxyCardNumber = Manacle::DATA['available_proxy_card1'] + expect(registerCard(request)).to fail_with('ns:E400', 'ns:E1002') + end + end + + context "without product code" do + context "with app_id assigned to program having only one product" do + it "should return success", case: :PPCMR2 do @pc_product1.enable! @pc_product2.disable! (request = build_request()).appID = @pc_app.app_id - request.productCode = @pc_product1.code - request.proxyCardNumber = Manacle::DATA['available_proxy_cards'] + request.proxyCardNumber = Manacle::DATA['available_proxy_card5'] expect(registerCard(request)).to be_completed - - request.mobileNo = Time.now.to_i - idDocument.documentNo = Time.now.to_i - expect(registerCard(request)).to fail_with('ns:E400', 'ns:E1001') end end - - context "with already registered customer" do - it "should return fault", case: :PPC06 do + + context "with app_id assigned to program having multiple products" do + it "should return fault", case: :PPCMR3 do @pc_product1.enable! - @pc_product2.disable! + @pc_product2.enable! (request = build_request()).appID = @pc_app.app_id - request.productCode = @pc_product1.code - request.proxyCardNumber = Manacle::DATA['available_proxy_cards'] - expect(registerCard(request)).to be_completed - - request.proxyCardNumber = Manacle::DATA['available_proxy_cards'] - expect(registerCard(request)).to fail_with('ns:E400', 'ns:E1001') + request.proxyCardNumber = Manacle::DATA['available_proxy_card1'] + expect(registerCard(request)).to fail_with('ns:E400', 'ns:E1003') end end end + + #TODO + context "retry" do + # it "should return success", case: :PPC08 do + # @pc_product1.enable! + # @pc_product2.disable! + # (request = build_request()).appID = @pc_app.app_id + # request.productCode = @pc_product1.code + # request.proxyCardNumber = Manacle::DATA['available_proxy_card1'] + # expect(registerCard(request)).to be_completed + # + # pc_customer = PcCustomer.find_by(mobile_no: request.mobileNo, program_code: @pc_program.code) + # pc_customer.disable! + # request.proxyCardNumber = Manacle::DATA['available_proxy_card2'] + # request.uniqueRequestNo = SecureRandom.uuid.gsub!('-','') + # expect(registerCard(request)).to fail_with('http:status-400') + # end + end + + end diff --git a/spec/config/data.yml b/spec/config/data.yml index 1a74173..1de2a38 100644 --- a/spec/config/data.yml +++ b/spec/config/data.yml @@ -1,5 +1,31 @@ -debit_account_no: -used_proxy_card: 000000418931 -available_proxy_cards: - - 000000418931 - - 000000418932 +debit_account_no: '000590600000122' +invalid_debit_account_no: '111591317231299' +customer_id: '2427' +used_proxy_card: '000000418931' +# registered_customer_mobile: '9013213131' #1474873883 +unregistered_customer_mobile: '1474870340' +available_proxy_card1: '000000419071' +available_proxy_card2: '000000419072' +available_proxy_card3: '000000419073' +available_proxy_card4: '000000419074' +available_proxy_card5: '000000419075' +available_proxy_card6: '000000419076' +available_proxy_card7: '000000419077' +available_proxy_card8: '000000419078' +product_attributes: + card_acct: '000590600000122' + sc_gl_income: 1000 + card_cust_id: '2427' + cust_care_no: '123456' + mm_host: 'https://beta-api.mmvpay.com/inyesm/v1' + mm_consumer_key: 'tcstqKOIjRQzoOy6stF4XVOaAJw5KP7R' + mm_consumer_secret: 'K6dumoioZMgcC2KdEd2L6cZ5ouSNiZpKmQz4i7HL0JtE4aVRIdinTBDDfIYlAjH8' + mm_card_type: 'ybyesmoneycard' + mm_email_domain: 'quantiguous.com' + mm_admin_host: 'https://yesm-ad-uat.mmvpay.com' + mm_admin_user: 'tester+yes@matchmove.com' + mm_admin_password: 'mmg123456' + rkb_user: 'taisys' + rkb_password: '91ca2dfffd0997f8a7c941538137b114de84a41f' + rkb_bcagent: 'yblesb' + rkb_channel_partner: '140' diff --git a/spec/operations.rb b/spec/operations.rb new file mode 100644 index 0000000..72f7e0f --- /dev/null +++ b/spec/operations.rb @@ -0,0 +1,75 @@ +class RegisterCard + # specify the list of paramaters that are always required to be printed in the report + def self.param_defaults + [{appID: nil}, {mobileNo: nil}] + end + + def self.build_request + address = ApiBanking::PrepaidCardManagementService::RegisterCard::Address.new() + idDocument = ApiBanking::PrepaidCardManagementService::RegisterCard::IDDocument.new() + request = ApiBanking::PrepaidCardManagementService::RegisterCard::Request.new() + + address.addressLine1 = 'Shankar Lane' + address.addressLine2 = 'Kandivali' + address.city = 'Mumbai' + address.state = 'Maharashtra' + address.country = 'india' + address.postalCode = '400101' + + idDocument.documentType = 'u_bill' + idDocument.documentNo = Time.now.to_i + idDocument.countryOfIssue = 'india' + + request.uniqueRequestNo = SecureRandom.uuid.gsub!('-','') + request.appID = 'MANACLE' + request.title = 'Miss' + request.firstName = 'Divya' + request.lastName = 'Jayan' + request.preferredName = 'divya' + request.mobileNo = Time.now.to_i + request.gender = 'female' + request.nationality = 'indian' + request.birthDate = '1992-12-18' + request.idDocument = idDocument + request.address = address + request.proxyCardNumber = '000000418951' + + request.address = address + request.idDocument = idDocument + + request + end +end + +class LoadCard + # specify the list of paramaters that are always required to be printed in the report + def self.param_defaults + [{appID: nil}, {mobileNo: nil}] + end + + def self.build_request + request = ApiBanking::PrepaidCardManagementService::LoadCard::Request.new() + request.uniqueRequestNo = SecureRandom.uuid.gsub!('-','') + request.appID = 'MANACLE' + request.customerID = '2427' + request.debitAccountNo = Manacle::DATA['debit_account_no'] + request.mobileNo = '9008888888' + request.loadAmount = '1000' + request + end +end + +class BlockCard + # specify the list of paramaters that are always required to be printed in the report + def self.param_defaults + [{appID: nil}, {mobileNo: nil}] + end + + def self.build_request() + request = ApiBanking::PrepaidCardManagementService::BlockCard::Request.new() + request.uniqueRequestNo = SecureRandom.uuid.gsub!('-','') + request.appID = 'MANACLE' + request.mobileNo = Time.now.to_i + request + end +end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 1539731..694c25b 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -107,3 +107,5 @@ require 'manacle' Manacle.setup('PrepaidCardManagementService') + +require_relative 'suite' diff --git a/spec/suite.rb b/spec/suite.rb new file mode 100644 index 0000000..ebf5795 --- /dev/null +++ b/spec/suite.rb @@ -0,0 +1,13 @@ +RSpec.configure do |config| + config.before(:suite) do + p "ran" + @abc = '1' + p @abc + end + + config.after(:suite) do + p @abc + p "end" + + end +end