Skip to content

Commit

Permalink
Merge branch 'release/version_13'
Browse files Browse the repository at this point in the history
  • Loading branch information
kgathi2 committed Jul 3, 2015
2 parents 5672b8d + e921b91 commit f73e34c
Show file tree
Hide file tree
Showing 11 changed files with 185 additions and 140 deletions.
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,7 @@ client.name #=> "CLark Kent"
```

### Login
Login give you your organisations settings and credentials.
YOu need to have set up t
Login provides your organisations settings and credentials.
```ruby
login = Mpayer.login
# defaults are picked from user:ENV['MPAYER_USER'],password:ENV['MPAYER_PASSWORD']
Expand Down
14 changes: 14 additions & 0 deletions lib/mpayer_ruby/endpoints/_endpoint.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,22 @@ def initialize(config:nil,**keyword_args)
after_initialize
end

def id=(value)
raise Exception, "Mpayer Object ID cannot be nil" if value.nil? and attributes.deleting.nil?
@id = value
end

def success?
!response.code.to_s.match(/\A2\d+/).to_s.empty? rescue false
end

protected

def kill
instance_variables.each{|var| instance_variable_set(var,nil)}
freeze
end

# after_initialize{ @endpoint = 'clients'}
# class << self
# # Used to instantiate new objects instead of using def initialize
Expand Down
2 changes: 1 addition & 1 deletion lib/mpayer_ruby/endpoints/payable.rb
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ def create(options={})
def destroy
url = "/payables/#{self.id}"
self.response = Mpayer::Fetch.delete(url)
self.id, self.attributes = nil, nil
self.kill
end

protected
Expand Down
108 changes: 108 additions & 0 deletions lib/mpayer_ruby/support/test_helper.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
module Mpayer::TestHelper
# login
# create_mpayer_client
# create_mpayer_account
# create_mpayer_payable
# get_mpayer_accounts
# get_mpayer_account
# create_mpayer_transaction
# get_mpayer_transactions

def mpayer_login
@@mpayer_login ||= Mpayer.login
end

def create_mpayer_client
client_attributes = {
client: {
client_name: Faker::Name.name,
client_birthday: Time.now.iso8601,
client_type: "ext",
ac_type: "cu",
client_mobile: Faker::Number.number(10) ,
client_email: Faker::Internet.email,
currency: "kes",
mandate:"s",
sub_type: "od"
}
}
@@create_mpayer_client ||= Mpayer::Client.create(client_attributes)
@@client_account ||= Mpayer::Client.find(@@create_mpayer_client.id,fetch:false).account(@@create_mpayer_client.account.id)
@@create_mpayer_client
end

def create_mpayer_account
client = create_mpayer_client
account_options = {
account:{
name: "#{client.fname} #{client.lname}",
ac_type: 'cu',
sub_type: 'od',
mandate: 's',
aliases_attributes: [{org_id:mpayer_login.org_no ,alias_key:'telephone', alias_value:"#{client.fname}#{SecureRandom.uuid.gsub('-','')}"}]
# tags_attributes:@tags,
# infos_attributes:@infos
}
}
@@create_mpayer_account ||= client.create_account(account_options)
@@account ||= Mpayer::Client.find(client.id,fetch:false).account(@@create_mpayer_account.id)
@@create_mpayer_account
end

def create_mpayer_payable
account = create_mpayer_account
payable_items = []
[*0..5].each do |n|
payable_items << {
payment_party: account.acid ,
terminal_ac: account.acid ,
details: Faker::Lorem.sentence ,
amount: 10,
price: 10,
unit_measure: 1.0
}
end

options = {
payment: {
payable_no: SecureRandom.uuid,
note: Faker::Lorem.sentence ,
ref_id: SecureRandom.uuid,
# client_id: client_id,
# status: @model.status,
# payable_type: @model.payable_type,
due_date: Time.now+(86400*31),
pay: payable_items
# tags:@tags,
# flags:@flags,
# infos:@infos ,
# sync_lag:@sync_lag
}
}
@@create_mpayer_payable ||= Mpayer::Payable.create(options)
@@search_payable ||= Mpayer::Payable.where(ref_id:@@create_mpayer_payable.ref_id)
@@create_mpayer_payable
end

def get_mpayer_accounts
@@get_mpayer_accounts ||= Mpayer::Account.all
end

def get_mpayer_account
first_account = get_mpayer_accounts.first
@@get_mpayer_account ||= Mpayer::Account.find(first_account.id)
end

def create_mpayer_transaction
body = {particulars:Faker::Lorem.sentence,amount:1000, cr_party: get_mpayer_account.acid}
body.merge!({ref_num:Faker::Code.isbn})
@@create_mpayer_transaction ||= Mpayer::Transaction.deposit(body)
@@search_tran ||= Mpayer::Transaction.where(ref_id:@@create_mpayer_transaction.ref_id)
@@create_mpayer_transaction
end

def get_mpayer_transactions
@@get_mpayer_transactions ||= Mpayer::Transaction.all(from: Time.now - (86400*400))
@@get_mpayer_transactions.any? ? @@get_mpayer_transactions : [create_mpayer_transaction]
end
end
2 changes: 1 addition & 1 deletion lib/mpayer_ruby/version.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
module Mpayer
VERSION = "0.0.12"
VERSION = "0.0.13"
end
21 changes: 21 additions & 0 deletions test/mpayer_ruby/endpoints/_endpoint_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,20 @@ def test_initializer

end

def test_id_cant_be_initialised_with_nil
assert_raises(Exception) { Mpayer::Endpoint.new(id:nil) }
assert_raises(Exception) { Mpayer::Endpoint.new.id=nil }
assert_raises(Exception) { Mpayer::Client.find(nil, fetch:false) }
end

def test_delete_object
endpoint = Mpayer::Endpoint.new(id:1)
assert(endpoint, "Failure message.")
endpoint.send(:kill)
assert_equal(endpoint.id, nil)
assert(endpoint.frozen?, 'Object has need deleted')
end

def test_missing_methods
client = Mpayer::Client.find(23,fetch:false)
client.response = Hashie::Mash.new({email:'kiki@lolo.com', name:'Kiki Lolo'})
Expand All @@ -32,4 +46,11 @@ def test_client_assoc_link
payables_link = client.send(:assoc_link,:payables)
assert_equal( "/clients/26/payables", payables_link)
end

def test_success?
client = Mpayer::Client.new
refute(client.success?, "Failure message.")
client = create_mpayer_client
assert(client.success?, "Failure message.")
end
end
10 changes: 5 additions & 5 deletions test/mpayer_ruby/endpoints/account_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,15 @@ class TestMpayerAccount < Minitest::Test

def test_account_find_and_all
# skip
accounts = get_accounts
accounts = get_mpayer_accounts
assert(accounts.is_a? Array)
account = get_account
account = get_mpayer_account
assert(account.is_a? Mpayer::Account)
end

def test_update_account
# skip
account = get_account
account = get_mpayer_account
new_name = account.name.next
updated_account = account.update(name:new_name)
assert_equal(new_name, account.name)
Expand All @@ -44,13 +44,13 @@ def test_account_aggregates

def test_get_client_members
# skip
members = get_account.members
members = get_mpayer_account.members
assert(members.is_a?(Array), "Failure message.")
end

def test_get_client_payable_items
# skip
payable_items = get_account.payable_items
payable_items = get_mpayer_account.payable_items
assert(payable_items.is_a?(Array), "Failure message.")
end
end
18 changes: 9 additions & 9 deletions test/mpayer_ruby/endpoints/client_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@
# get ':id', :action=>:show
# put ':id', :action=>:update
# get ':id/accounts' , :action=>:accounts
# post ':id/accounts/new' , :action=>:create_account
# post ':id/accounts/new' , :action=>:create_mpayer_account
# get ':id/accounts/:account_id' , :action=>:show_account
# get ':id/accounts/:account_id/transactions' , :action=>:transactions
# get ':id/accounts/:account_id/transactions/:tran_id' , :action=>:show_transaction
# get ':id/accounts/:account_id/transaction_sets' , :action=>:transaction_sets
# post '/' , :action=> :create_client
# post '/' , :action=> :create_mpayer_client
# get ':id/payables' ,:action => :payables
# get ':id/payable_items' ,:action => :payable_items
# get ':id/payables/:payable_id' ,:action => :show_payable
Expand All @@ -28,39 +28,39 @@ def test_client_find_and_all
assert(client.is_a? Mpayer::Client)
end

def test_create_client
def test_create_mpayer_client
# skip skip
client = create_client
client = create_mpayer_client
refute_nil(client.id, "Failure message.")
end

def test_get_client_account
# skip
client = create_client
client = create_mpayer_client
accounts = client.accounts(page:1,per_page:100)
account = client.account(accounts.last.id)
assert(account.is_a?(Hash), "Failure message.")
end

def test_create_new_account
# skip
account = create_account
account = create_mpayer_account
refute_nil(account, "Failure message.")
end

def test_get_client_accounts_and_transactions
# skip
accounts = create_client.accounts
accounts = create_mpayer_client.accounts
assert(accounts.is_a?(Array), "Failure message.")

account_id = accounts.last.id
transactions = create_client.transactions(account_id)
transactions = create_mpayer_client.transactions(account_id)
assert(transactions.is_a?(Array), "Failure message.")
end

def test_get_client_payables
# skip
accounts = create_client.payables
accounts = create_mpayer_client.payables
assert(accounts.is_a?(Array), "Failure message.")
end

Expand Down
10 changes: 5 additions & 5 deletions test/mpayer_ruby/endpoints/payable_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -26,27 +26,27 @@ def test_payable_find_and_all

def test_search_payable
# skip
search_ref = create_payable.ref_id
search_ref = create_mpayer_payable.ref_id
payable = Mpayer::Payable.where(ref_id:search_ref)
refute_nil(payable, "Failure message.")
assert(payable.is_a?(Mpayer::Payable), "Failure message.")
payable = Mpayer::Payable.where(ref_id:"Ksdfsfsdf000411")
assert_nil(payable, "Failure message.")
end

def test_create_payable
def test_create_mpayer_payable
# skip
payable = create_payable
payable = create_mpayer_payable
refute_nil(payable.id, "Failure message.#{payable.response}")
end

def test_destroy_payable
# skip
payable = create_payable
payable = create_mpayer_payable
payable.destroy
assert_equal(payable.id, nil)
assert_equal(payable.attributes, nil)
@@create_payable = nil
@@create_mpayer_payable = nil
@@search_payable = nil
end

Expand Down
20 changes: 10 additions & 10 deletions test/mpayer_ruby/endpoints/transaction_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -17,49 +17,49 @@ def setup
super
end

# def get_transactions
# def get_mpayer_transactions
# @transactions ||= Mpayer::Transaction.all(from: Time.now - (86400*400))
# @transactions.any? ? @transactions : [create_transaction]
# @transactions.any? ? @transactions : [create_mpayer_transaction]
# end

# def create_transaction
# body = {particulars:Faker::Lorem.sentence,amount:1000, cr_party: create_account.acid}
# def create_mpayer_transaction
# body = {particulars:Faker::Lorem.sentence,amount:1000, cr_party: create_mpayer_account.acid}
# body.merge!({ref_num:Faker::Code.isbn})
# Mpayer::Transaction.deposit(body)
# end

def test_get_all_transactions
# skip
transactions = get_transactions
transactions = get_mpayer_transactions
assert(transactions.is_a?(Array), "Failure message.")
end

def test_search_transactions
# skip
search_ref = create_transaction.ref_id
search_ref = create_mpayer_transaction.ref_id
transaction = Mpayer::Transaction.where(ref_id:search_ref)
refute_nil(transaction, "Failure message.")
assert(transaction.is_a?(Mpayer::Transaction), "Failure message.")
end

def test_deposit
# skip
deposit = create_transaction
deposit = create_mpayer_transaction
assert(deposit.is_a?(Mpayer::Transaction), "Failure message.")
refute_nil(deposit.id, "Failure message. #{deposit.response.body}")
end

def test_withdraw
# skip
body = {particulars:Faker::Lorem.sentence,amount:10, dr_party: create_account.acid}
body = {particulars:Faker::Lorem.sentence,amount:10, dr_party: create_mpayer_account.acid}
withdrawal = Mpayer::Transaction.withdraw(body)
assert(withdrawal.is_a?(Mpayer::Transaction), "Failure message.")
refute_nil(withdrawal.id, "Failure message.#{withdrawal.response.body}")
end

def test_transfer
# skip
body = {particulars:Faker::Lorem.sentence,amount:10, cr_party: create_account.acid, dr_party:create_account.acid }
body = {particulars:Faker::Lorem.sentence,amount:10, cr_party: create_mpayer_account.acid, dr_party:create_mpayer_account.acid }
transfer = Mpayer::Transaction.transfer(body)
assert(transfer.is_a?(Mpayer::Transaction), "Failure message.")
refute_nil(transfer.id, "Failure message.#{transfer.response.body}")
Expand All @@ -73,7 +73,7 @@ def test_mpayer_ref

def test_transactions_with_alias
# skip
body = {particulars:Faker::Lorem.sentence,amount:1000, cr_party: create_account.aliases.first.alias_value}
body = {particulars:Faker::Lorem.sentence,amount:1000, cr_party: create_mpayer_account.aliases.first.alias_value}
deposit = Mpayer::Transaction.deposit(body)
assert(deposit.is_a?(Mpayer::Transaction), "Failure message.")
refute_nil(deposit.id, "Failure message.#{deposit.response.body}")
Expand Down

0 comments on commit f73e34c

Please sign in to comment.