mirror of
https://github.com/internetee/registry.git
synced 2025-06-11 23:24:48 +02:00
parent
640faaadb9
commit
42e8f86dae
51 changed files with 1619 additions and 53 deletions
121
test/models/auction_test.rb
Normal file
121
test/models/auction_test.rb
Normal file
|
@ -0,0 +1,121 @@
|
|||
require 'test_helper'
|
||||
|
||||
class AuctionTest < ActiveSupport::TestCase
|
||||
setup do
|
||||
@auction = auctions(:one)
|
||||
end
|
||||
|
||||
def test_fixture_is_valid
|
||||
assert @auction.valid?
|
||||
end
|
||||
|
||||
def test_statuses
|
||||
assert_equal ({ 'started' => 'started',
|
||||
'no_bids' => 'no_bids',
|
||||
'awaiting_payment' => 'awaiting_payment',
|
||||
'payment_received' => 'payment_received',
|
||||
'payment_not_received' => 'payment_not_received',
|
||||
'domain_registered' => 'domain_registered' }), Auction.statuses
|
||||
end
|
||||
|
||||
def test_selling_domain_starts_new_auction
|
||||
domain_name = DNS::DomainName.new('shop.test')
|
||||
|
||||
assert_difference 'Auction.count' do
|
||||
Auction.sell(domain_name)
|
||||
end
|
||||
auction = Auction.last
|
||||
assert_equal domain_name.to_s, auction.domain
|
||||
assert auction.started?
|
||||
end
|
||||
|
||||
def test_pending
|
||||
domain_name = DNS::DomainName.new('auction.test')
|
||||
assert_equal 'auction.test', @auction.domain
|
||||
|
||||
assert @auction.no_bids?
|
||||
assert_nil Auction.pending(domain_name)
|
||||
|
||||
@auction.update!(status: Auction.statuses[:started])
|
||||
assert_equal @auction, Auction.pending(domain_name)
|
||||
|
||||
@auction.update!(status: Auction.statuses[:awaiting_payment])
|
||||
assert_equal @auction, Auction.pending(domain_name)
|
||||
|
||||
@auction.update!(status: Auction.statuses[:payment_received])
|
||||
assert_equal @auction, Auction.pending(domain_name)
|
||||
end
|
||||
|
||||
def test_record_with_invalid_status_cannot_be_saved
|
||||
# ArgumentError is triggered by ActiveRecord::Base.enum
|
||||
assert_raises ArgumentError do
|
||||
@auction.status = 'invalid'
|
||||
@auction.save!
|
||||
end
|
||||
end
|
||||
|
||||
def test_marking_as_no_bids
|
||||
@auction.update!(status: Auction.statuses[:started])
|
||||
|
||||
@auction.mark_as_no_bids
|
||||
@auction.reload
|
||||
|
||||
assert @auction.no_bids?
|
||||
end
|
||||
|
||||
def test_marking_as_payment_received
|
||||
@auction.update!(status: Auction.statuses[:awaiting_payment], registration_code: nil)
|
||||
|
||||
@auction.mark_as_payment_received
|
||||
@auction.reload
|
||||
|
||||
assert @auction.payment_received?
|
||||
assert_not_nil @auction.registration_code
|
||||
end
|
||||
|
||||
def test_marking_as_payment_not_received
|
||||
@auction.update!(status: Auction.statuses[:awaiting_payment], registration_code: nil)
|
||||
|
||||
@auction.mark_as_payment_not_received
|
||||
@auction.reload
|
||||
|
||||
assert @auction.payment_not_received?
|
||||
assert_nil @auction.registration_code
|
||||
end
|
||||
|
||||
def test_restarts_an_auction_when_payment_is_not_received
|
||||
@auction.update!(domain: 'auction.test', status: Auction.statuses[:awaiting_payment])
|
||||
|
||||
assert_difference 'Auction.count' do
|
||||
@auction.mark_as_payment_not_received
|
||||
end
|
||||
|
||||
new_auction = Auction.last
|
||||
assert_equal 'auction.test', new_auction.domain
|
||||
assert new_auction.started?
|
||||
end
|
||||
|
||||
def test_domain_registrable
|
||||
assert @auction.no_bids?
|
||||
assert_not @auction.domain_registrable?
|
||||
|
||||
@auction.status = Auction.statuses[:payment_received]
|
||||
@auction.registration_code = 'auction001'
|
||||
|
||||
assert @auction.domain_registrable?('auction001')
|
||||
end
|
||||
|
||||
def test_domain_unregistrable
|
||||
@auction.status = Auction.statuses[:payment_not_received]
|
||||
@auction.registration_code = 'auction001'
|
||||
|
||||
assert_not @auction.domain_registrable?('auction001')
|
||||
|
||||
@auction.status = Auction.statuses[:payment_received]
|
||||
@auction.registration_code = 'auction001'
|
||||
|
||||
assert_not @auction.domain_registrable?('wrong')
|
||||
assert_not @auction.domain_registrable?(nil)
|
||||
assert_not @auction.domain_registrable?('')
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue