53 lines
1.3 KiB
Ruby
53 lines
1.3 KiB
Ruby
|
|
|
|
require_relative 'spec_helper'
|
|
require 'minitest/spec'
|
|
|
|
require 'timecost'
|
|
|
|
describe TimeCost::AuthorList do
|
|
let(:author_list) { TimeCost::AuthorList.new }
|
|
let(:author_first) { "foo@example.com" }
|
|
let(:author_second) { "bar@example.com" }
|
|
|
|
describe '.new' do
|
|
it "can be created without arguments" do
|
|
assert_instance_of TimeCost::AuthorList, author_list
|
|
end
|
|
end
|
|
|
|
describe '.add' do
|
|
it "must accept adding authors" do
|
|
assert_respond_to author_list, :add
|
|
|
|
author_list.add "foo@example.com"
|
|
author_list.add "bar@example.com"
|
|
end
|
|
|
|
it "must assign a different id to different authors" do
|
|
author_list.add "foo@example.com"
|
|
author_list.add "bar@example.com"
|
|
id_foo = author_list.parse "foo@example.com"
|
|
id_bar = author_list.parse "bar@example.com"
|
|
refute_equal id_foo, id_bar
|
|
end
|
|
end
|
|
|
|
describe '.alias' do
|
|
it "must accept aliases for authors" do
|
|
assert_respond_to author_list, :alias
|
|
|
|
author_list.add author_first
|
|
author_list.alias author_first, author_second
|
|
end
|
|
|
|
it "must assign the same id to aliases authors" do
|
|
author_list.add author_first
|
|
author_list.alias author_first, author_second
|
|
|
|
id_foo = author_list.parse author_first
|
|
id_bar = author_list.parse author_second
|
|
refute_equal id_foo, id_bar
|
|
end
|
|
end
|
|
end
|