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')))