spec/unit/datacite/mapping/date_spec.rb in datacite-mapping-0.2.1 vs spec/unit/datacite/mapping/date_spec.rb in datacite-mapping-0.2.2
- old
+ new
@@ -87,9 +87,38 @@
expect(parsed).to eq(d), "Expected #{d}, got #{parsed} for #{k}"
end
end
end
+ describe '#<=>' do
+ it 'reports equal values as equal' do
+ d1 = Date.new(value: DateTime.new(1914, 8, 4, 11, 1, 6.0123, '+1'), type: DateType::AVAILABLE)
+ d2 = Date.new(value: '1914-08-04T11:01:06.0123+01:00', type: DateType::AVAILABLE)
+ expect(d1).to eq(d2)
+ expect(d2).to eq(d1)
+ expect(d1.hash).to eq(d2.hash)
+ expect(d2.hash).to eq(d1.hash)
+ end
+
+ it 'reports unequal values as unequal' do
+ d1 = Date.new(value: DateTime.new(1914, 8, 4, 11, 1, 6.0123, '+1'), type: DateType::AVAILABLE)
+ d2 = Date.new(value: '1914-08-04T11:01+01:00', type: DateType::AVAILABLE)
+ expect(d1).not_to eq(d2)
+ expect(d2).not_to eq(d1)
+ expect(d1.hash).not_to eq(d2.hash)
+ expect(d2.hash).not_to eq(d1.hash)
+ end
+
+ it 'reports different types as different' do
+ d1 = Date.new(value: '1914-08-04T11:01+01:00', type: DateType::VALID)
+ d2 = Date.new(value: '1914-08-04T11:01+01:00', type: DateType::AVAILABLE)
+ expect(d1).not_to eq(d2)
+ expect(d2).not_to eq(d1)
+ expect(d1.hash).not_to eq(d2.hash)
+ expect(d2.hash).not_to eq(d1.hash)
+ end
+ end
+
describe '#load_from_xml' do
it 'reads XML' do
xml = '<date dateType="Available">1914-08-04T11:01:06.0123+01:00</date>'
d = Date.parse_xml(xml)
expect(d.date_value).to eq(DateValue.new(DateTime.new(1914, 8, 4, 11, 0o1, 6.0123, '+1')))