From 7b23018a0678b73d873b1fc4f17679aa3de6c349 Mon Sep 17 00:00:00 2001 From: Rishabh Saxena Date: Wed, 27 Jul 2016 19:44:55 +0530 Subject: [PATCH] add payment tests --- spec/factories/payments.rb | 9 ++++++++ spec/models/payment_spec.rb | 44 +++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 spec/factories/payments.rb create mode 100644 spec/models/payment_spec.rb diff --git a/spec/factories/payments.rb b/spec/factories/payments.rb new file mode 100644 index 00000000..340d04d5 --- /dev/null +++ b/spec/factories/payments.rb @@ -0,0 +1,9 @@ +FactoryGirl.define do + factory :payment do + user + conference + last4 4242 + authorization_code 1234567890 + amount 10 + end +end diff --git a/spec/models/payment_spec.rb b/spec/models/payment_spec.rb new file mode 100644 index 00000000..3950e269 --- /dev/null +++ b/spec/models/payment_spec.rb @@ -0,0 +1,44 @@ +require 'spec_helper' + +describe Payment do + + context 'new payment' do + let(:payment) { create(:payment) } + it 'sets status to "unpaid" by default' do + expect(payment.status).to eq('unpaid') + end + end + + describe 'validations' do + it 'has a valid factory' do + expect(build(:payment)).to be_valid + end + + it { is_expected.to validate_presence_of(:last4) } + + it { is_expected.to validate_presence_of(:amount) } + + it { is_expected.to validate_presence_of(:authorization_code) } + + it { is_expected.to validate_presence_of(:status) } + + it { is_expected.to validate_presence_of(:user_id) } + + it { is_expected.to validate_presence_of(:conference_id) } + + it 'is not valid with a amount equals zero' do + should_not allow_value(0).for(:amount) + end + + it 'is not valid with a amount smaller than zero' do + should_not allow_value(-1).for(:amount) + end + + it 'is valid with a amount greater than zero' do + should allow_value(1).for(:amount) + end + + end + + describe 'self#purchase' +end