Skip to content
This repository has been archived by the owner on May 11, 2022. It is now read-only.

Commit

Permalink
Merge f431259 into 9192c84
Browse files Browse the repository at this point in the history
  • Loading branch information
peetucket committed Jul 2, 2019
2 parents 9192c84 + f431259 commit 304b164
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 2 deletions.
4 changes: 2 additions & 2 deletions lib/dor/services/status_service.rb
Expand Up @@ -48,11 +48,11 @@ def initialize(work)
def status_info
status_code = 0
status_time = nil
# for each milestone in the current version, see if it comes after the current 'last' step, if so, make it the last and record the date/time
# for each milestone in the current version, see if it comes at the same time or after the current 'last' step, if so, make it the last and record the date/time
current_milestones.each do |m|
m_name = m[:milestone]
m_time = m[:at].utc.xmlschema
next unless STEPS.key?(m_name) && (!status_time || m_time > status_time)
next unless STEPS.key?(m_name) && (!status_time || m_time >= status_time)

status_code = STEPS[m_name]
status_time = m_time
Expand Down
51 changes: 51 additions & 0 deletions spec/services/status_service_spec.rb
Expand Up @@ -88,5 +88,56 @@
expect(described_class.status(item, true)).to eq('v2 Accessioned 2013-10-01 07:11PM')
end
end

context 'for an accessioned step with the exact same timestamp as the deposited step' do
let(:xml) do
Nokogiri::XML('<?xml version="1.0"?>
<lifecycle objectId="druid:bd504dj1946">
<milestone date="2013-04-03T15:01:57-0700">registered</milestone>
<milestone date="2013-04-03T16:20:19-0700">digitized</milestone>
<milestone date="2013-04-16T14:18:20-0700" version="1">submitted</milestone>
<milestone date="2013-04-16T14:32:54-0700" version="1">described</milestone>
<milestone date="2013-04-16T14:55:10-0700" version="1">published</milestone>
<milestone date="2013-07-21T05:27:23-0700" version="1">deposited</milestone>
<milestone date="2013-07-21T05:28:09-0700" version="1">accessioned</milestone>
<milestone date="2013-08-15T11:59:16-0700" version="2">opened</milestone>
<milestone date="2013-10-01T12:01:07-0700" version="2">submitted</milestone>
<milestone date="2013-10-01T12:01:24-0700" version="2">described</milestone>
<milestone date="2013-10-01T12:05:38-0700" version="2">published</milestone>
<milestone date="2013-10-01T12:10:56-0700" version="2">deposited</milestone>
<milestone date="2013-10-01T12:10:56-0700" version="2">accessioned</milestone>
</lifecycle>')
end

it 'has the correct status of accessioned (v2) object' do
expect(versionMD).to receive(:current_version_id).and_return('2')
expect(described_class.status(item, true)).to eq('v2 Accessioned 2013-10-01 07:10PM')
end
end

context 'for a deposited step for a non-accessioned object' do
let(:xml) do
Nokogiri::XML('<?xml version="1.0"?>
<lifecycle objectId="druid:bd504dj1946">
<milestone date="2013-04-03T15:01:57-0700">registered</milestone>
<milestone date="2013-04-03T16:20:19-0700">digitized</milestone>
<milestone date="2013-04-16T14:18:20-0700" version="1">submitted</milestone>
<milestone date="2013-04-16T14:32:54-0700" version="1">described</milestone>
<milestone date="2013-04-16T14:55:10-0700" version="1">published</milestone>
<milestone date="2013-07-21T05:27:23-0700" version="1">deposited</milestone>
<milestone date="2013-07-21T05:28:09-0700" version="1">accessioned</milestone>
<milestone date="2013-08-15T11:59:16-0700" version="2">opened</milestone>
<milestone date="2013-10-01T12:01:07-0700" version="2">submitted</milestone>
<milestone date="2013-10-01T12:01:24-0700" version="2">described</milestone>
<milestone date="2013-10-01T12:05:38-0700" version="2">published</milestone>
<milestone date="2013-10-01T12:10:56-0700" version="2">deposited</milestone>
</lifecycle>')
end

it 'has the correct status of deposited (v2) object' do
expect(versionMD).to receive(:current_version_id).and_return('2')
expect(described_class.status(item, true)).to eq('v2 In accessioning (described, published, deposited) 2013-10-01 07:10PM')
end
end
end
end

0 comments on commit 304b164

Please sign in to comment.