Skip to content

Commit

Permalink
Update base model spec
Browse files Browse the repository at this point in the history
  • Loading branch information
localhots committed Mar 20, 2024
1 parent 6a538b6 commit c7b30c5
Showing 1 changed file with 42 additions and 12 deletions.
54 changes: 42 additions & 12 deletions spec/models/base_model_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,38 +3,68 @@
describe MusicBrainz::BaseModel do
describe '#validate_type' do
describe 'Date' do
let(:xml) {
Nokogiri::XML.parse(response)
}
let(:bindings) {
MusicBrainz::Bindings::ReleaseGroup.parse(xml)
}
let(:release_group) {
MusicBrainz::ReleaseGroup.new(bindings)
}

context 'nil value' do
let(:response) {
<<-XML
<release-group>
<first-release-date></first-release-date>
</release-group>
XML
}

it 'returns 2030-12-31' do
response = '<release-group><first-release-date></first-release-date></release-group>'
xml = Nokogiri::XML.parse(response)
release_group = MusicBrainz::ReleaseGroup.new MusicBrainz::Bindings::ReleaseGroup.parse(xml)
expect(release_group.first_release_date).to eq Date.new(2030, 12, 31)
end
end

context 'year only' do
let(:response) {
<<-XML
<release-group>
<first-release-date>1995</first-release-date>
</release-group>
XML
}

it 'returns 1995-12-31' do
response = '<release-group><first-release-date>1995</first-release-date></release-group>'
xml = Nokogiri::XML.parse(response)
release_group = MusicBrainz::ReleaseGroup.new MusicBrainz::Bindings::ReleaseGroup.parse(xml)
expect(release_group.first_release_date).to eq Date.new(1995, 12, 31)
end
end

context 'year and month only' do
let(:response) {
<<-XML
<release-group>
<first-release-date>1995-04</first-release-date>
</release-group>
XML
}

it 'returns 1995-04-30' do
response = '<release-group><first-release-date>1995-04</first-release-date></release-group>'
xml = Nokogiri::XML.parse(response)
release_group = MusicBrainz::ReleaseGroup.new MusicBrainz::Bindings::ReleaseGroup.parse(xml)
expect(release_group.first_release_date).to eq Date.new(1995, 4, 30)
end
end

context 'year, month and day' do
let(:response) {
<<-XML
<release-group>
<first-release-date>1995-04-30</first-release-date>
</release-group>
XML
}

it 'returns 1995-04-30' do
response = '<release-group><first-release-date>1995-04-30</first-release-date></release-group>'
xml = Nokogiri::XML.parse(response)
release_group = MusicBrainz::ReleaseGroup.new MusicBrainz::Bindings::ReleaseGroup.parse(xml)
expect(release_group.first_release_date).to eq Date.new(1995, 4, 30)
end
end
Expand Down

0 comments on commit c7b30c5

Please sign in to comment.