Skip to content

Instantly share code, notes, and snippets.

@jfrolich
Created May 15, 2012 14:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jfrolich/2702096 to your computer and use it in GitHub Desktop.
Save jfrolich/2702096 to your computer and use it in GitHub Desktop.
# Add the libary directory to the LOAD_PATH
# this makes running the test as easy as just running script
PROJECT_ROOT = File.join(File.dirname(__FILE__),'..','..')
$LOAD_PATH.unshift(File.join(PROJECT_ROOT,'lib'))
require 'minitest/autorun'
require 'wbw/client'
require 'vcr'
require 'pry'
VCR.configure do |c|
c.cassette_library_dir = File.join PROJECT_ROOT, 'test/fixtures/vcr_cassettes'
c.hook_into :webmock
end
module Wbw
class ClientTest < MiniTest::Unit::TestCase
def setup
end
def record name, &block
VCR.use_cassette(name, &block)
end
# Returns a valid lid
def valid_lid
@client.lists.first[:lid]
end
def login u='jaap@dynamicka.com', p='testtest', f=false
@client ||= Client.new
@client.login(u,p) if !@client.logged_in || f
end
def test_login
record 'login' do
login
assert_equal true, @client.logged_in
assert_operator @client.session_id.length, :>, 1
end
end
def test_faulty_login
record 'faulty_login' do
assert_raises Exceptions::Unauthorized do
login 'bademail@email.com', 'test', true
end
assert_equal false, @client.logged_in
end
end
def test_availability_of_lists
record 'lists' do
login
lists = @client.lists
assert_operator lists.count, :>, 0
end
end
def test_availability_of_lists_when_not_logged_in
record 'list_when_not_logged_in' do
login
@client.logout
assert_raises Exceptions::Unauthorized do
lists = @client.lists
end
end
end
def test_validness_of_lid
record 'validness_of_lid' do
log
lists = @client.lists
lists.each do |list|
assert_equal Fixnum, list[:lid].class
assert_operator list[:lid], :>, 1
end
end
end
def test_logout
record 'logout' do
login
assert_equal true, @client.logout
assert_equal false, @client.logged_in
end
end
def test_payments
record 'payments' do
login
payments = @client.payments valid_lid
assert_operator payments.count, :>, 0
end
end
def test_payment_types
record 'payment_types' do
login
payments = @client.payments valid_lid
payments.each do |payment|
assert_equal String, payment[:by].class
assert_equal String, payment[:description].class
assert_equal Float, payment[:amount].class
assert_equal String, payment[:date].class
assert_equal String, payment[:participants].class
end
end
end
def test_addition_of_payment
skip
record 'addition_of_payment' do
login
payments_count = @client.payments(valid_lid).count
@client.create_payment(valid_lid, amount: 10, description: "payment123", date: "12-04-2012")
assert_equal payments_count + 1, @client.payments(valid_lid).count
end
end
def test_participants
record 'participants' do
login
assert_equal Array, @client.participants(valid_lid).class
assert_operator @client.participants(valid_lid), :>, 0
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment