artemis_api 0.2.0 → 0.7.4
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 +5 -5
- data/.ruby-version +1 -0
- data/Gemfile.lock +22 -14
- data/History.txt +18 -0
- data/README.md +40 -4
- data/artemis_api.gemspec +9 -7
- data/bin/console +2 -6
- data/lib/artemis_api.rb +6 -0
- data/lib/artemis_api/batch.rb +6 -4
- data/lib/artemis_api/client.rb +131 -51
- data/lib/artemis_api/crop_variety.rb +5 -0
- data/lib/artemis_api/custom_data.rb +5 -0
- data/lib/artemis_api/custom_fields.rb +5 -0
- data/lib/artemis_api/facility.rb +26 -10
- data/lib/artemis_api/model.rb +64 -21
- data/lib/artemis_api/resource_unit.rb +14 -0
- data/lib/artemis_api/stage.rb +15 -0
- data/lib/artemis_api/sub_stage.rb +5 -0
- data/lib/artemis_api/subscription.rb +4 -4
- data/lib/artemis_api/user.rb +1 -1
- data/lib/artemis_api/version.rb +1 -1
- data/lib/artemis_api/zone.rb +1 -0
- data/test/artemis_api_test.rb +7 -0
- data/test/batch_test.rb +94 -0
- data/test/client_test.rb +66 -0
- data/test/completion_test.rb +38 -0
- data/test/discard_test.rb +93 -0
- data/test/facility_test.rb +42 -0
- data/test/harvest_test.rb +33 -0
- data/test/harvest_unit_test.rb +25 -0
- data/test/item_test.rb +38 -0
- data/test/organization_test.rb +39 -0
- data/test/resource_unit_test.rb +33 -0
- data/test/seeding_unit_test.rb +24 -0
- data/test/stage_test.rb +39 -0
- data/test/subscription_test.rb +63 -0
- data/test/test_helper.rb +26 -0
- data/test/user_test.rb +66 -0
- data/test/zone_test.rb +42 -0
- metadata +62 -24
- data/artemis_api-0.1.0.gem +0 -0
@@ -0,0 +1,38 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class CompletionTest < Minitest::Test
|
4
|
+
def setup
|
5
|
+
get_client
|
6
|
+
get_facility
|
7
|
+
|
8
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/#{@facility.id}/completions")
|
9
|
+
.to_return(body: {data: [{id: '1', type: 'completions', attributes: {id: 1, action_type: 'start'}}, {id: '2', type: 'completions', attributes: {id: 2, action_type: 'move'}}]}.to_json)
|
10
|
+
|
11
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/#{@facility.id}/completions/2")
|
12
|
+
.to_return(body: {data: {id: '2', type: 'completions', attributes: {id: 2, action_type: 'move'}, relationships: { batch: { data: { id: 1, type: 'batches' }}}}}.to_json)
|
13
|
+
|
14
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/#{@facility.id}/completions/2")
|
15
|
+
.to_return(body: {data: {id: '2', type: 'completions', attributes: {id: 2, action_type: 'move'}, relationships: { batch: { data: { id: 1, type: 'batches' }}}}}.to_json)
|
16
|
+
|
17
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/#{@facility.id}/completions?filter[crop_batch_ids][]=2&filter[crop_batch_ids][]=3")
|
18
|
+
.to_return(body: {data: [{id: '1', type: 'completions', attributes: {id: 1, action_type: 'start'}}]}.to_json)
|
19
|
+
|
20
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/#{@facility.id}/completions?filter[parent_id]=2")
|
21
|
+
.to_return(body: {data: [{id: '3', type: 'completions', attributes: {id: 3, action_type: 'process'}}, {id: '4', type: 'completions', attributes: {id: 4, action_type: 'process'}}]}.to_json)
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_finding_all_completions
|
25
|
+
completions = ArtemisApi::Completion.find_all(facility_id: @facility.id, client: @client)
|
26
|
+
assert_equal 2, completions.count
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_finding_a_specific_completion
|
30
|
+
completion = ArtemisApi::Completion.find(id: 2, facility_id: @facility.id, client: @client)
|
31
|
+
assert_equal 'move', completion.action_type
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_filtering_completion_by_crop_batch_ids
|
35
|
+
completions = ArtemisApi::Completion.find_all(facility_id: @facility.id, client: @client, filters: {crop_batch_ids: [2, 3]})
|
36
|
+
assert_equal 1, completions.count
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,93 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class DiscardTest < Minitest::Test
|
4
|
+
def setup
|
5
|
+
get_client
|
6
|
+
get_facility
|
7
|
+
|
8
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/2/discards/2")
|
9
|
+
.to_return(body: {
|
10
|
+
data: {
|
11
|
+
id: '2',
|
12
|
+
type: 'discards',
|
13
|
+
attributes: {
|
14
|
+
id: 2,
|
15
|
+
quantity: 20,
|
16
|
+
reason_type: 'disease',
|
17
|
+
reason_description: ''
|
18
|
+
},
|
19
|
+
relationships: {
|
20
|
+
batch: {
|
21
|
+
meta: {
|
22
|
+
included: false
|
23
|
+
}
|
24
|
+
},
|
25
|
+
completion: {
|
26
|
+
meta: {
|
27
|
+
included: false
|
28
|
+
}
|
29
|
+
}
|
30
|
+
}
|
31
|
+
}
|
32
|
+
}.to_json)
|
33
|
+
|
34
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/2/discards/2?include=batch")
|
35
|
+
.to_return(body: {
|
36
|
+
data: {
|
37
|
+
id: '2',
|
38
|
+
type: 'discards',
|
39
|
+
attributes: {
|
40
|
+
id: 2,
|
41
|
+
quantity: 20,
|
42
|
+
reason_type: 'disease',
|
43
|
+
reason_description: ''
|
44
|
+
},
|
45
|
+
relationships: {
|
46
|
+
batch: {
|
47
|
+
data: {
|
48
|
+
id: '156',
|
49
|
+
type: 'batches'
|
50
|
+
}
|
51
|
+
},
|
52
|
+
completion: {
|
53
|
+
meta: {
|
54
|
+
included: false
|
55
|
+
}
|
56
|
+
}
|
57
|
+
}
|
58
|
+
}
|
59
|
+
}.to_json)
|
60
|
+
|
61
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/#{@facility.id}/discards")
|
62
|
+
.to_return(body: {data: [{id: '1', type: 'discards', attributes: {id: 1, reason_type: 'disease', quantity: 20}}, {id: '2', type: 'discards', attributes: {id: 2, reason_type: 'pests', quantity: 5}}]}.to_json)
|
63
|
+
|
64
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/#{@facility.id}/discards?filter[crop_batch_ids][]=2&filter[crop_batch_ids][]=3")
|
65
|
+
.to_return(body: {data: [{id: '1', type: 'discards', attributes: {id: 1, quantity: 4, reason_type: 'pests'}}]}.to_json)
|
66
|
+
end
|
67
|
+
|
68
|
+
def test_finding_a_specific_discard
|
69
|
+
discard = ArtemisApi::Discard.find(id: 2, facility_id: @facility.id, client: @client)
|
70
|
+
assert_equal 20, discard.quantity
|
71
|
+
assert_equal 'disease', discard.reason_type
|
72
|
+
assert_equal false, discard.relationships['batch']['meta']['included']
|
73
|
+
assert discard.relationships['batch']['data'].nil?
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_finding_a_specific_discard_with_batch_included
|
77
|
+
discard = ArtemisApi::Discard.find(id: 2, facility_id: @facility.id, client: @client, include: 'batch')
|
78
|
+
assert_equal 20, discard.quantity
|
79
|
+
assert_equal 'disease', discard.reason_type
|
80
|
+
assert_equal '156', discard.relationships['batch']['data']['id']
|
81
|
+
assert discard.relationships['batch']['meta'].nil?
|
82
|
+
end
|
83
|
+
|
84
|
+
def test_finding_all_discards
|
85
|
+
discards = ArtemisApi::Discard.find_all(facility_id: @facility.id, client: @client)
|
86
|
+
assert_equal 2, discards.count
|
87
|
+
end
|
88
|
+
|
89
|
+
def test_filtering_discard_by_crop_batch_ids
|
90
|
+
discards = ArtemisApi::Discard.find_all(facility_id: @facility.id, client: @client, filters: {crop_batch_ids: [2, 3]})
|
91
|
+
assert_equal 1, discards.count
|
92
|
+
end
|
93
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class FacilityTest < Minitest::Test
|
4
|
+
def setup
|
5
|
+
get_client
|
6
|
+
|
7
|
+
stub_request(:get, 'http://localhost:3000/api/v3/facilities')
|
8
|
+
.to_return(body: {data: [{id: '1', type: 'facilities', attributes: {id: 1, name: 'Sky Fresh'}}, {id: '2', type: 'facilities', attributes: {id: 2, name: 'Rare Dankness'}}]}.to_json)
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_finding_all_facilities
|
12
|
+
facilities = ArtemisApi::Facility.find_all(client: @client)
|
13
|
+
assert_equal 2, facilities.count
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_finding_all_facilities_through_client
|
17
|
+
facilities = @client.facilities
|
18
|
+
assert_equal 2, facilities.count
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_finding_a_specific_facility
|
22
|
+
stub_request(:get, 'http://localhost:3000/api/v3/facilities/2')
|
23
|
+
.to_return(body: {data: {id: '2', type: 'facilities', attributes: {id: 2, name: 'Rare Dankness'}}}.to_json)
|
24
|
+
|
25
|
+
facility = ArtemisApi::Facility.find(id: 2, client: @client)
|
26
|
+
assert_equal 'Rare Dankness', facility.name
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_finding_a_specific_facility_through_client
|
30
|
+
stub_request(:get, 'http://localhost:3000/api/v3/facilities/2')
|
31
|
+
.to_return(body: {data: {id: '2', type: 'facilities', attributes: {id: 2, name: 'Rare Dankness'}}}.to_json)
|
32
|
+
|
33
|
+
facility = @client.facility(2)
|
34
|
+
assert_equal 'Rare Dankness', facility.name
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_finding_a_specific_facility_thats_already_in_memory
|
38
|
+
ArtemisApi::Facility.find_all(client: @client)
|
39
|
+
facility = ArtemisApi::Facility.find(id: 2, client: @client)
|
40
|
+
assert_equal 'Rare Dankness', facility.name
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class HarvestTest < Minitest::Test
|
4
|
+
def setup
|
5
|
+
get_client
|
6
|
+
get_facility
|
7
|
+
|
8
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/#{@facility.id}/harvests")
|
9
|
+
.to_return(body: {data: [{id: '1', type: 'harvests', attributes: {id: 1, quantity: 4, harvest_type: 'complete'}}, {id: '2', type: 'harvests', attributes: {id: 2, quantity: 1, harvest_type: 'partial'}}]}.to_json)
|
10
|
+
|
11
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/#{@facility.id}/harvests/2")
|
12
|
+
.to_return(body: {data: {id: '2', type: 'harvests', attributes: {id: 2, quantity: 1, harvest_type: 'partial'}}}.to_json)
|
13
|
+
|
14
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/#{@facility.id}/harvests?filter[crop_batch_ids][]=2&filter[crop_batch_ids][]=3")
|
15
|
+
.to_return(body: {data: [{id: '1', type: 'harvests', attributes: {id: 1, quantity: 4, harvest_type: 'complete'}}]}.to_json)
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_finding_all_harvests
|
19
|
+
harvests = ArtemisApi::Harvest.find_all(facility_id: @facility.id, client: @client)
|
20
|
+
assert_equal 2, harvests.count
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_finding_a_specific_harvest
|
24
|
+
harvest = ArtemisApi::Harvest.find(id: 2, facility_id: @facility.id, client: @client)
|
25
|
+
assert_equal 'partial', harvest.harvest_type
|
26
|
+
assert_equal 1, harvest.quantity
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_filtering_harvest_by_crop_batch_ids
|
30
|
+
harvests = ArtemisApi::Harvest.find_all(facility_id: @facility.id, client: @client, filters: {crop_batch_ids: [2, 3]})
|
31
|
+
assert_equal 1, harvests.count
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class HarvestUnitTest < Minitest::Test
|
4
|
+
def setup
|
5
|
+
get_client
|
6
|
+
get_facility
|
7
|
+
|
8
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/#{@facility.id}/harvest_units")
|
9
|
+
.to_return(body: {data: [{id: '1', type: 'harvest_units', attributes: {id: 1, name: 'pound', weight: 1}}, {id: '2', type: 'harvest_units', attributes: {id: 2, name: 'kilogram', weight: 2.2}}]}.to_json)
|
10
|
+
|
11
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/#{@facility.id}/harvest_units/2")
|
12
|
+
.to_return(body: {data: {id: '2', type: 'harvest_units', attributes: {id: 2, name: 'kilogram', weight: 2.2}}}.to_json)
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_finding_all_harvest_units
|
16
|
+
harvest_units = ArtemisApi::HarvestUnit.find_all(facility_id: @facility.id, client: @client)
|
17
|
+
assert_equal 2, harvest_units.count
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_finding_a_specific_harvest_unit
|
21
|
+
harvest_unit = ArtemisApi::HarvestUnit.find(id: 2, facility_id: @facility.id, client: @client)
|
22
|
+
assert_equal 'kilogram', harvest_unit.name
|
23
|
+
assert_equal 2.2, harvest_unit.weight
|
24
|
+
end
|
25
|
+
end
|
data/test/item_test.rb
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class ItemTest < Minitest::Test
|
4
|
+
def setup
|
5
|
+
get_client
|
6
|
+
|
7
|
+
stub_request(:get, 'http://localhost:3000/api/v3/facilities/2')
|
8
|
+
.to_return(body: {data: {id: '2', type: 'facilities', attributes: {id: 2, name: 'Rare Dankness'}}}.to_json)
|
9
|
+
@facility = ArtemisApi::Facility.find(id: 2, client: @client)
|
10
|
+
|
11
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/#{@facility.id}/batches/2")
|
12
|
+
.to_return(body: {data: {id: '2', type: 'batches', attributes: {id: 2, arbitrary_id: 'Jun19-Bok-Cho'}, relationships: {seeding_unit: {data: {id: '3479', type: 'seeding_units'}}}}}.to_json)
|
13
|
+
@batch = ArtemisApi::Batch.find(id: 2, facility_id: @facility.id, client: @client)
|
14
|
+
|
15
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/#{@facility.id}/batches/2/items")
|
16
|
+
.to_return(body: {data: [{id: '326515', type: 'items', attributes: {id: 326515, status: 'active'}, relationships: {barcode: {data: {id: '1A4FF0200000022000000207', type: 'barcodes'}}}}]}.to_json)
|
17
|
+
|
18
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/#{@facility.id}/batches/2/items?filter[seeding_unit_id]=100")
|
19
|
+
.to_return(body: {data: [{id: '326515', type: 'items', attributes: {id: 326515, status: 'active'}, relationships: {barcode: {data: {id: '1A4FF0200000022000000207', type: 'barcodes'}}, seeding_unit: {data: {id: '100', type: 'seeding_units'}}}}]}.to_json)
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_finding_all_items_of_facility_and_batch
|
23
|
+
items = ArtemisApi::Item.find_all(facility_id: @facility.id, batch_id: @batch.id, client: @client)
|
24
|
+
assert_equal 1, items.count
|
25
|
+
assert_equal 326_515, items.first.id
|
26
|
+
assert_equal '1A4FF0200000022000000207', items.first.relationships.dig('barcode', 'data', 'id')
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_finding_all_items_with_seeding_unit
|
30
|
+
seeding_unit_id = 100
|
31
|
+
items = ArtemisApi::Item.find_all(facility_id: @facility.id,
|
32
|
+
batch_id: @batch.id,
|
33
|
+
client: @client,
|
34
|
+
filters: {seeding_unit_id: seeding_unit_id})
|
35
|
+
assert_equal 1, items.count
|
36
|
+
assert_equal seeding_unit_id.to_s, items.first.relationships.dig('seeding_unit', 'data', 'id')
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class OrganizationTest < Minitest::Test
|
4
|
+
def setup
|
5
|
+
get_client
|
6
|
+
|
7
|
+
stub_request(:get, 'http://localhost:3000/api/v3/organizations')
|
8
|
+
.to_return(body: {data: [{id: '1', type: 'organizations', attributes: {id: 1, name: 'Sky Fresh'}}, {id: '2', type: 'organizations', attributes: {id: 2, name: 'Rare Dankness'}}]}.to_json)
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_finding_all_organizations
|
12
|
+
organizations = ArtemisApi::Organization.find_all(client: @client)
|
13
|
+
assert_equal 2, organizations.count
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_finding_a_specific_organization
|
17
|
+
stub_request(:get, 'http://localhost:3000/api/v3/organizations/2')
|
18
|
+
.to_return(body: {data: {id: '2', type: 'organizations', attributes: {id: 2, name: 'Rare Dankness'}}}.to_json)
|
19
|
+
|
20
|
+
org = ArtemisApi::Organization.find(id: 2, client: @client)
|
21
|
+
assert_equal 'Rare Dankness', org.name
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_finding_a_specific_org_thats_already_in_memory
|
25
|
+
ArtemisApi::Organization.find_all(client: @client)
|
26
|
+
org = ArtemisApi::Organization.find(id: 2, client: @client)
|
27
|
+
assert_equal 'Rare Dankness', org.name
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_getting_orgs_with_facilities_included
|
31
|
+
stub_request(:get, 'http://localhost:3000/api/v3/organizations/2?include=facilities')
|
32
|
+
.to_return(body: {data: {id: '2', type: 'organizations', attributes: {id: 2, name: 'Rare Dankness'}}, included: [{id: 1, type: "facilities", attributes: {id: 1, name: 'Sky Fresh'}}]}.to_json)
|
33
|
+
|
34
|
+
org = ArtemisApi::Organization.find(id: 2, client: @client, include: 'facilities')
|
35
|
+
facility = ArtemisApi::Facility.find(id: 1, client: @client)
|
36
|
+
assert_equal 'Rare Dankness', org.name
|
37
|
+
assert_equal 'Sky Fresh', facility.name
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class ResourceUnitTest < Minitest::Test
|
4
|
+
def setup
|
5
|
+
get_client
|
6
|
+
get_facility
|
7
|
+
|
8
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/#{@facility.id}/resource_units?include=crop_variety")
|
9
|
+
.to_return(body: {data: [{id: '1', type: 'resource_units', attributes: {id: 1, name: 'Bunch', kind: 'count', conversion_si: 1.0}}, {id: '2', type: 'resource_units', attributes: {id: 2, name: 'grams', kind: 'weight', conversion_si: 1.0}, relationships: { crop_variety: { data: { type: 'crop_varieties', id: 1 }}}}], included: [{ type: 'crop_varieties', id: 1, attributes: { name: '5th Element' } }]}.to_json)
|
10
|
+
|
11
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/#{@facility.id}/resource_units/2")
|
12
|
+
.to_return(body: {data: {id: '2', type: 'resource_units', attributes: {id: 2, name: 'grams', kind: 'weight', conversion_is: 1.0}}}.to_json)
|
13
|
+
|
14
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/#{@facility.id}/resource_units/3?include=crop_variety")
|
15
|
+
.to_return(body: {data: {id: '2', type: 'resource_units', attributes: {id: 3, name: 'grams', kind: 'weight', conversion_is: 1.0}, relationships: { crop_variety: { data: { type: 'crop_varieties', id: 2 } } }}, included: [{ type: 'crop_varieties', id: 2, attributes: { name: 'Boss Hog' } }]}.to_json)
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_finding_all_resource_units
|
19
|
+
resource_units = ArtemisApi::ResourceUnit.find_all(facility_id: @facility.id, client: @client, include: 'crop_variety')
|
20
|
+
assert_equal 2, resource_units.count
|
21
|
+
assert_equal '5th Element', resource_units.last.crop_variety.name
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_finding_a_specific_resource_unit
|
25
|
+
resource_unit = ArtemisApi::ResourceUnit.find(id: 2, facility_id: @facility.id, client: @client)
|
26
|
+
assert_equal 'grams', resource_unit.name
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_resource_unit_has_crop_variety
|
30
|
+
resource_unit = ArtemisApi::ResourceUnit.find(id: 3, facility_id: @facility.id, client: @client, include: 'crop_variety')
|
31
|
+
assert_equal 'Boss Hog', resource_unit.crop_variety.name
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class SeedingUnitTest < Minitest::Test
|
4
|
+
def setup
|
5
|
+
get_client
|
6
|
+
get_facility
|
7
|
+
|
8
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/#{@facility.id}/seeding_units")
|
9
|
+
.to_return(body: {data: [{id: '1', type: 'seeding_units', attributes: {id: 1, name: 'board'}}, {id: '2', type: 'seeding_units', attributes: {id: 2, name: 'raft'}}]}.to_json)
|
10
|
+
|
11
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/#{@facility.id}/seeding_units/2")
|
12
|
+
.to_return(body: {data: {id: '2', type: 'seeding_units', attributes: {id: 2, name: 'raft'}}}.to_json)
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_finding_all_seeding_units
|
16
|
+
seeding_units = ArtemisApi::SeedingUnit.find_all(facility_id: @facility.id, client: @client)
|
17
|
+
assert_equal 2, seeding_units.count
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_finding_a_specific_seeding_unit
|
21
|
+
seeding_unit = ArtemisApi::SeedingUnit.find(id: 2, facility_id: @facility.id, client: @client)
|
22
|
+
assert_equal 'raft', seeding_unit.name
|
23
|
+
end
|
24
|
+
end
|
data/test/stage_test.rb
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class StageTest < Minitest::Test
|
4
|
+
def setup
|
5
|
+
get_client
|
6
|
+
get_facility
|
7
|
+
|
8
|
+
stub_request(:get, 'http://localhost:3000/api/v3/facilities/2')
|
9
|
+
.to_return(body: {data: {id: '2', type: 'facilities', attributes: {id: 2, name: 'Rare Dankness'}}}.to_json)
|
10
|
+
|
11
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/#{@facility.id}/stages?include=sub_stages,zones")
|
12
|
+
.to_return(body: {data: [{id: '1', type: 'stages', attributes: {id: 1, name: 'Growth', stage_type: 'growth'}}, {id: '2', type: 'stages', attributes: {id: 2, name: 'Stage 2', stage_type: 'stage_2'}}]}.to_json)
|
13
|
+
|
14
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/#{@facility.id}/stages/1?include=sub_stages,zones")
|
15
|
+
.to_return(body: {data: {id: '1', type: 'stages', attributes: {id: 1, name: 'Growth', stage_type: 'growth'}}}.to_json)
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_finding_all_stages
|
19
|
+
stages = ArtemisApi::Stage.find_all(@facility.id, @client)
|
20
|
+
assert_equal 2, stages.count
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_finding_all_stages_through_facility
|
24
|
+
stages = @facility.stages
|
25
|
+
assert_equal 2, stages.count
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_finding_a_specific_stage
|
29
|
+
stage = ArtemisApi::Stage.find(1, @facility.id, @client)
|
30
|
+
assert_equal 'Growth', stage.name
|
31
|
+
assert_equal 'growth', stage.stage_type
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_finding_a_specific_stage_through_facility
|
35
|
+
stage = @facility.stage(1)
|
36
|
+
assert_equal 'Growth', stage.name
|
37
|
+
assert_equal 'growth', stage.stage_type
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class SubscriptionTest < Minitest::Test
|
4
|
+
def setup
|
5
|
+
get_client
|
6
|
+
get_facility
|
7
|
+
|
8
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/#{@facility.id}/subscriptions")
|
9
|
+
.to_return(body: {data: [{id: '1', type: 'subscriptions', attributes: {id: 1, subject: 'completions', destination: 'http://localhost:8080/a/fake/url'}}, {id: '2', type: 'subscriptions', attributes: {id: 2, subject: 'batches', destination: 'http://localhost:8080/another/fake/url'}}]}.to_json)
|
10
|
+
|
11
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/#{@facility.id}/subscriptions/2")
|
12
|
+
.to_return(body: {data: {id: '2', type: 'subscriptions', attributes: {id: 2, subject: 'batches', destination: 'http://localhost:8080/another/fake/url'}}}.to_json)
|
13
|
+
|
14
|
+
stub_request(:post, "http://localhost:3000/api/v3/facilities/#{@facility.id}/subscriptions")
|
15
|
+
.with(body: {"subscription"=>{"destination"=>"http://localhost:8080/a/fake/url", "subject"=>"completions"}})
|
16
|
+
.to_return(status: 200, body: {data: {id: '3', type: 'subscriptions', attributes: {id: 3, subject: 'completions', destination: 'http://localhost:8080/a/fake/url'}}}.to_json)
|
17
|
+
|
18
|
+
stub_request(:delete, "http://localhost:3000/api/v3/facilities/#{@facility.id}/subscriptions/2")
|
19
|
+
.to_return(status: 204, body: {}.to_json)
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_finding_all_subscriptions
|
23
|
+
subscriptions = ArtemisApi::Subscription.find_all(facility_id: @facility.id, client: @client)
|
24
|
+
assert_equal 2, subscriptions.count
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_finding_all_subscriptions_through_facility
|
28
|
+
subscriptions = @facility.subscriptions
|
29
|
+
assert_equal 2, subscriptions.count
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_finding_a_specific_subscription
|
33
|
+
subscription = ArtemisApi::Subscription.find(id: 2, facility_id: @facility.id, client: @client)
|
34
|
+
assert_equal 'batches', subscription.subject
|
35
|
+
assert_equal 'http://localhost:8080/another/fake/url', subscription.destination
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_finding_a_specific_subscription_through_facility
|
39
|
+
subscription = @facility.subscription(2)
|
40
|
+
assert_equal 'batches', subscription.subject
|
41
|
+
assert_equal 'http://localhost:8080/another/fake/url', subscription.destination
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_creating_a_new_subscription
|
45
|
+
subscription = ArtemisApi::Subscription.create(facility_id: @facility.id,
|
46
|
+
subject: 'completions',
|
47
|
+
destination: 'http://localhost:8080/a/fake/url',
|
48
|
+
client: @client)
|
49
|
+
assert_equal 'completions', subscription.subject
|
50
|
+
assert_equal 'http://localhost:8080/a/fake/url', subscription.destination
|
51
|
+
assert_equal 1, @client.objects['subscriptions'].count
|
52
|
+
end
|
53
|
+
|
54
|
+
def test_deleting_a_subscription
|
55
|
+
# find the subscription first to ensure it's in the objects hash
|
56
|
+
ArtemisApi::Subscription.find(id: 2, facility_id: @facility.id, client: @client)
|
57
|
+
assert_equal 1, @client.objects['subscriptions'].count
|
58
|
+
|
59
|
+
# then delete it and ensure it has been removed from the objects hash
|
60
|
+
ArtemisApi::Subscription.delete(id: 2, facility_id: @facility.id, client: @client)
|
61
|
+
assert_equal 0, @client.objects['subscriptions'].count
|
62
|
+
end
|
63
|
+
end
|