unidom-accession 2.3.2 → 2.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +3 -1
- data/app/models/unidom/accession/concerns/as_post_fulfilled.rb +10 -5
- data/app/models/unidom/accession/post_fulfillment.rb +2 -3
- data/lib/rspec/models/unidom/accession/concerns/as_post_fulfilled_shared_examples.rb +75 -10
- data/lib/unidom/accession/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 35637667e550ce271dc4b432d0da3e50e4d47770
|
4
|
+
data.tar.gz: 58e760fe421bdd5936781e26cf5a236938b8c540
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 211757d42604b0934d97edf9e7c6426eb2c0f2965948c494cefac28bc7db3e8396fef7a5a7909a98bf6a49e78628b58116a8e47fe87f95fecc0c4a660cdbd826
|
7
|
+
data.tar.gz: 6982d9db7e776ce0aed4af5fe1ad7e924e8278eda500a5ebee0d0df9ceb7b953091a8fe26701c7c8a92574ae28d22d6f6db1f2af92ab480b059935a8ed03b5be
|
data/README.md
CHANGED
@@ -158,7 +158,9 @@ describe Unidom::Position::Post do
|
|
158
158
|
position_id: SecureRandom.uuid
|
159
159
|
}
|
160
160
|
|
161
|
-
|
161
|
+
post_fulfiller = Unidom::Party::Person.create! name: 'Tim'
|
162
|
+
|
163
|
+
it_behaves_like 'Unidom::Accession::Concerns::AsPostFulfilled', model_attribtues, post_fulfiller
|
162
164
|
|
163
165
|
end
|
164
166
|
```
|
@@ -3,7 +3,8 @@
|
|
3
3
|
|
4
4
|
module Unidom::Accession::Concerns::AsPostFulfilled
|
5
5
|
|
6
|
-
extend
|
6
|
+
extend ActiveSupport::Concern
|
7
|
+
include Unidom::Common::Concerns::ArgumentValidation
|
7
8
|
|
8
9
|
included do |includer|
|
9
10
|
|
@@ -16,8 +17,10 @@ module Unidom::Accession::Concerns::AsPostFulfilled
|
|
16
17
|
# 或者
|
17
18
|
# post.is_fulfilled_as_post! by: tom, at: Time.now
|
18
19
|
def is_fulfilled_as_post!(by: nil, at: Time.now)
|
19
|
-
|
20
|
-
|
20
|
+
assert_present! :by, by
|
21
|
+
assert_present! :at, at
|
22
|
+
#raise ArgumentError.new('The by argument is required.') if by.blank?
|
23
|
+
#raise ArgumentError.new('The at argument is required.') if at.blank?
|
21
24
|
post_fulfillments.create! fulfiller: by, opened_at: at
|
22
25
|
end
|
23
26
|
|
@@ -27,8 +30,10 @@ module Unidom::Accession::Concerns::AsPostFulfilled
|
|
27
30
|
# 或者
|
28
31
|
# post.is_fulfilled_as_post? by: tom, at: Time.now
|
29
32
|
def is_fulfilled_as_post?(by: nil, at: Time.now)
|
30
|
-
|
31
|
-
|
33
|
+
assert_present! :by, by
|
34
|
+
assert_present! :at, at
|
35
|
+
#raise ArgumentError.new('The by argument is required.') if by.blank?
|
36
|
+
#raise ArgumentError.new('The at argument is required.') if at.blank?
|
32
37
|
post_fulfillments.fulfilled_by(by).valid_at(now: at).exists?
|
33
38
|
end
|
34
39
|
|
@@ -22,9 +22,8 @@ class Unidom::Accession::PostFulfillment < Unidom::Accession::ApplicationRecord
|
|
22
22
|
def self.fulfill!(fulfilled: nil, fulfiller: nil, opened_at: Time.now)
|
23
23
|
assert_present! :fulfilled, fulfilled
|
24
24
|
assert_present! :fulfiller, fulfiller
|
25
|
-
|
26
|
-
|
27
|
-
raise ArgumentError.new('Argument opened_at is required.') if opened_at.blank?
|
25
|
+
assert_present! :opened_at, opened_at
|
26
|
+
|
28
27
|
self.create! fulfiller: fulfiller, fulfilled: fulfilled, opened_at: opened_at
|
29
28
|
end
|
30
29
|
|
@@ -1,15 +1,80 @@
|
|
1
|
-
shared_examples 'Unidom::Accession::Concerns::AsPostFulfilled' do |model_attributes|
|
1
|
+
shared_examples 'Unidom::Accession::Concerns::AsPostFulfilled' do |model_attributes, post_fulfiller|
|
2
2
|
|
3
|
-
|
4
|
-
fulfiller_id: SecureRandom.uuid,
|
5
|
-
fulfiller_type: 'Unidom::Accession::Fulfiller::Mock'
|
6
|
-
}
|
3
|
+
before :each do
|
7
4
|
|
8
|
-
|
9
|
-
fulfiller_id: SecureRandom.uuid,
|
10
|
-
fulfiller_type: 'Unidom::Accession::Fulfiller::Mock'
|
11
|
-
}
|
5
|
+
@post = described_class.create! model_attributes
|
12
6
|
|
13
|
-
|
7
|
+
end
|
8
|
+
|
9
|
+
after :all do
|
10
|
+
|
11
|
+
#@post.destroy
|
12
|
+
|
13
|
+
end
|
14
|
+
|
15
|
+
=begin
|
16
|
+
context do
|
17
|
+
|
18
|
+
post = described_class.create! model_attributes
|
19
|
+
it_behaves_like 'assert_present!', post, :is_fulfilled_as_post!, [ { by: post_fulfiller, at: Time.now } ], [ :by, :at ]
|
20
|
+
|
21
|
+
end
|
22
|
+
=end
|
23
|
+
|
24
|
+
context '#is_fulfilled_as_post!' do
|
25
|
+
|
26
|
+
it 'should reject the by argument = nil' do expect { @post.is_fulfilled_as_post! by: nil, at: Time.now }.to raise_error(ArgumentError, 'The by argument is required.') end
|
27
|
+
it 'should reject the at argument = nil' do expect { @post.is_fulfilled_as_post! by: post_fulfiller, at: nil }.to raise_error(ArgumentError, 'The at argument is required.') end
|
28
|
+
|
29
|
+
it "should be able to be fulfilled as post by #{post_fulfiller.inspect}" do
|
30
|
+
post_fulfillment = @post.is_fulfilled_as_post! by: post_fulfiller
|
31
|
+
expect(post_fulfillment).to be_present
|
32
|
+
expect(post_fulfillment).to be_a(Unidom::Accession::PostFulfillment)
|
33
|
+
expect(post_fulfillment).not_to be_new_record
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should be able to be fulfilled as post by #{post_fulfiller.inspect}, at #{Time.now.inspect}" do
|
37
|
+
post_fulfillment = @post.is_fulfilled_as_post! by: post_fulfiller, at: Time.now
|
38
|
+
expect(post_fulfillment).to be_present
|
39
|
+
expect(post_fulfillment).to be_a(Unidom::Accession::PostFulfillment)
|
40
|
+
expect(post_fulfillment).not_to be_new_record
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
context '#is_fulfilled_as_post?' do
|
46
|
+
|
47
|
+
it 'should reject the by argument = nil' do expect { @post.is_fulfilled_as_post? by: nil, at: Time.now }.to raise_error(ArgumentError, 'The by argument is required.') end
|
48
|
+
it 'should reject the at argument = nil' do expect { @post.is_fulfilled_as_post? by: post_fulfiller, at: nil }.to raise_error(ArgumentError, 'The at argument is required.') end
|
49
|
+
|
50
|
+
it "should be able to be fulfilled as post by #{post_fulfiller.inspect}" do
|
51
|
+
expect(@post.is_fulfilled_as_post? by: post_fulfiller).to be_falsey
|
52
|
+
@post.is_fulfilled_as_post! by: post_fulfiller
|
53
|
+
expect(@post.is_fulfilled_as_post? by: post_fulfiller).to be_truthy
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should be able to be fulfilled as post by #{post_fulfiller.inspect}, at #{Time.now.inspect}" do
|
57
|
+
expect(@post.is_fulfilled_as_post? by: post_fulfiller).to be_falsey
|
58
|
+
@post.is_fulfilled_as_post! by: post_fulfiller, at: Time.now
|
59
|
+
expect(@post.is_fulfilled_as_post? by: post_fulfiller).to be_truthy
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
|
64
|
+
context do
|
65
|
+
|
66
|
+
post_fulfillment_1_attribtues = {
|
67
|
+
fulfiller_id: SecureRandom.uuid,
|
68
|
+
fulfiller_type: 'Unidom::Accession::Fulfiller::Mock'
|
69
|
+
}
|
70
|
+
|
71
|
+
post_fulfillment_2_attribtues = {
|
72
|
+
fulfiller_id: SecureRandom.uuid,
|
73
|
+
fulfiller_type: 'Unidom::Accession::Fulfiller::Mock'
|
74
|
+
}
|
75
|
+
|
76
|
+
it_behaves_like 'has_many', model_attributes, :post_fulfillments, Unidom::Accession::PostFulfillment, [ post_fulfillment_1_attribtues, post_fulfillment_2_attribtues ]
|
77
|
+
|
78
|
+
end
|
14
79
|
|
15
80
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: unidom-accession
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.
|
4
|
+
version: 2.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Topbit Du
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-03-
|
11
|
+
date: 2017-03-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: unidom-common
|