internetee-registry/test/models/billing/reference_no/base_test.rb
Artur Beljajev 214b7e435d Return number if it already ends with zero
The specification does not mention this fact
https://www.pangaliit.ee/settlements-and-standards/reference
-number-of-the-invoice
2019-01-17 18:15:07 +02:00

30 lines
1,005 B
Ruby

require 'test_helper'
# https://www.pangaliit.ee/settlements-and-standards/reference-number-of-the-invoice
class ReferenceNoBaseTest < ActiveSupport::TestCase
def test_generates_random_base
assert_not_equal Billing::ReferenceNo::Base.generate, Billing::ReferenceNo::Base.generate
end
def test_randomly_generated_base_conforms_to_standard
base = Billing::ReferenceNo::Base.generate
format = /\A\d{1,19}\z/
assert_match format, base.to_s
end
def test_generates_check_digit_for_a_given_base
assert_equal 3, Billing::ReferenceNo::Base.new('1').check_digit
assert_equal 7, Billing::ReferenceNo::Base.new('1234567891234567891').check_digit
assert_equal 0, Billing::ReferenceNo::Base.new('773423').check_digit
end
def test_returns_string_representation
base = Billing::ReferenceNo::Base.new('1')
assert_equal '1', base.to_s
end
def test_normalizes_non_string_values
base = Billing::ReferenceNo::Base.new(1)
assert_equal '1', base.to_s
end
end