...
Pre – conditions: |
Step | Action | Expected system response | Comment |
1 | Create geographicLevels In URL: |
Method: Post: Example Body: { "code": "levelcode", "name": " |
levelname", "levelNumber": " |
32" } | Status 201 created id: |
a8db3899-896f-4e40-b912-f38a6af5b3ce | |
2 | Create geographicZone In URL: |
Method: Post: Example Body: { "code": " |
geocode", "name": "geoname", "level": { " |
id": "a8db3899-896f-4e40-b912-f38a6af5b3ce", "code": "levelcode", "name": |
"levelname", "levelNumber": "32" } } | Status 201 Created , id: |
3141d995-1f69-4400-be30-64ed564a0253 | |
3 | Create facilityType In URL: |
Method: Post Example Body: { "code": " |
typecode", "name": " |
typename" } | Status 201 Created , id: |
d734497f-7e46-4915-9f05-83c0432fc158 | |
4 | Create |
facility In URL: |
Method Post Example body: { "code": |
"facilitycode", "name": "facilityname", "geographicZone": { "id" |
: "3141d995-1f69-4400-be30-64ed564a0253", " |
code": " |
geocode", "name": "geoname", "level": { "id": "a8db3899-896f-4e40-b912-f38a6af5b3ce", " |
code": |
"levelcode", " |
name": |
}
Status 201 Created"levelname", |
"levelNumber": |
5
Create program:
In URL:"32" } }, "type": { "id": "d734497f-7e46-4915-9f05-83c0432fc158", "code": "typecode", "name": "typename" }, "active": true, "enabled": true } | Status 201 Created, id: fb9ce60f-6557-4651-b9b9-efefccf76251 | |
5 | Create program: In URL: |
Method: Post Example Body: { "code": " |
programcode", "name": "programname", " |
periodsSkippable": true } |
Status 201 Created, id: |
bebd5da3-b905-45b7-a474-85c3ba655f9d | |
6 | Create schedule In URL: |
Method: Post Example Body: { "code": " |
schedulecode", " |
name": |
"modifiedDate": null,
"name": "scheduleNamee"schedulename" } | Status 201 Created, id: |
79650728-fb5e-4413-ba1e-c58e042415f9 | |
7 | Create periods In URL: |
Method: Post Example Body: { "processingSchedule": { "id":" |
865f24e7- |
9496- |
4dc3- |
86d4- |
f00554da539b", "code": " |
"description": null,
"modifiedDate": nullschedulecode", "name": " |
schedulename" }, "name": " |
periodname", "description": " |
abc", "startDate": "2016- |
09- |
05", "endDate": "2016- |
09- |
15" } | Status 201 Created, "id": |
f9378770- |
e1f9- |
4dbc- |
85b2- |
482ce55cb776 |
8 |
Create RequisitionLine |
URL: |
Method: |
POST |
Body: { " |
id": " |
fc93a929-d62e-4fff-9f8f-4ad9df0a4e60", " |
product": { "id" |
: "1752b457-0a4b-4de0-bf94-5a6a8002427e", " |
code": |
"productCode", "primaryName": "productName", " |
dispensingUnit": " |
1" |
}
Status 201 Created,
id:"http://localhost:8080/api/requisitions/811f0934-ab87-4856-a8de-abe895127bb1"
Create user
In URL:http://localhost:8080/api/users?access_token=5a7d37fa-c57c-4c8e-8c3f-6d40021b01aa
Method: Post
Example Body:
{
"username":"Name",
"password":"Password",
"firstName":"Jan",
"lastName":"Kowal",
"verified":true,
"active":true
}
Status 201 Created,
id: "http://localhost:8080/api/users/b7654100-9efd-4583-81eb-0a9a6f547acd"
In
, "dosesPerDispensingUnit": 1, "packSize": 1, "packRoundingThreshold": 1, "roundToZero": true, "active": true, "fullSupply": true, "tracer": true, "productCategory": { "id": "3c840e6c-a2e6-482f-b794-90379fcbfe00", "code": "categorycode", "name": "categoryname", "displayOrder": 32 } }, "requisition": null, "stockInHand": 2, "beginningBalance": 2, "totalReceivedQuantity": 2, "totalLossesAndAdjustments": 2, "stockOnHand": 2, "requestedQuantity": 2, "totalConsumedQuantity": 2, "requestedQuantityExplanation": "abc", "remarks": "sometest", "approvedQuantity": 2 } | id: 1275b316-68c6-48c8-a343-b82b854eaa25 | The attribute Remarks are not filled. |
9 | Create User |
Method: |
POST |
Body: { " |
username": " |
UserName12", " |
email": " |
abc@gmail.com", " |
firstName": " |
}
Status 201 CreatedName2F", |
"lastName": |
Check endpoint:
Method: GET
URL:"Last2N", "verified": "true", "active": "true", "restrictLogin": "false", "timezone":"CTM" } | id: d8c1a779-53ca-435e-a86c-a7a786fe50b6 | |
10 | Create supervisoryNode |
Status 200 OK
Check endpoint:
Method: POST
Status 200 OK
Create supervisoryNode
In URL: http://localhost:8080/api/supervisoryNodes?access_token=0445814b-b97b-44f8-b4db-37ef148cbb50
Method: Post
Example Body:
{Method: POST Example body: { "code": "supervisoryNodeTest", "facility": { "id": "fb9ce60f-6557-4651-b9b9-efefccf76251", "code": "facilitycode", "name": "facilityname", "geographicZone": { "id": "3141d995-1f69-4400-be30-64ed564a0253", "code": "geocode", "name": "geoname", "level": { "id": "a8db3899-896f-4e40-b912-f38a6af5b3ce", "code": " |
levelcode", " |
name": " |
levelname", "levelNumber": "32" } |
Status 201 Created,
id: "http://localhost:8080/api/supervisoryNodes/16037214-b3d7-45b0-b094-87574636d6f0"
}, "type": { "id": "d734497f-7e46-4915-9f05-83c0432fc158", "code": "typecode", "name": "typename" }, "active": true, "enabled": true } } | id: 5ec94f96-ac1b-4d1d-bd89-505f4f71c0e8 | |
11 | Create requisition: In URL: http://localhost:8080/api/requisitions/?access_token= |
Method: Post Example Body |
{ " |
id": " |
abd802e5-c181-453e-9b9a-087eedfb68b9", " |
requisitionLines": [ { "id" |
: "4da79bc3-4188-4770-bace-991761dfb869", " |
product": { "id" |
: "1752b457-0a4b-4de0-bf94-5a6a8002427e", " |
code": " |
productCode", " |
primaryName": |
}
Status 201 Created,
id: "http://localhost:8080/api/requisitions/b0423d67-5633-48bb-9f69-9b16feea9683"
Create requisition
In URL:
URL: http://localhost:8080/api/requisitions/?access_token=0445814b-b97b-44f8-b4db-37ef148cbb50
Method: Post
Example Body:
{
"facility":"http://localhost:8080/api/facilities/79130705-7c6f-410e-904f-b1d243bb44f2",
"program": "http://localhost:8080/api/programs/d4857768-05d4-4783-9e7f-019809e6859d",
"processingPeriod":"http://localhost:8080/api/periods/95c7720c-8e38-42fe-a20d-261de7b4cc07",
"status":"AUTHORIZED",
"supervisoryNode":"http://localhost:8080/api/supervisoryNodes/16037214-b3d7-45b0-b094-87574636d6f0"
}
Status 201 Created,
id: "http://localhost:8080/api/requisitions/0bc1e9e8-51fb-4e36-95f2-8e15dbfe8ebd"
With the same "supervisoryNode" as previously requisition:
"supervisoryNode":"http://localhost:8080/api/supervisoryNodes/16037214-b3d7-45b0-b094-87574636d6f0"
status must be AUTHORIZED
Create requisition
In URL:
URL: http://localhost:8080/api/requisitions/?access_token=0445814b-b97b-44f8-b4db-37ef148cbb50
Method: Post
Example Body:
{"facility": "http://localhost:8080/api/facilities/61824d28-56ec-44eb-ab8c-955c1e970ae6",
"program":"http://localhost:8080/api/programs/3a6e042d-1ed1-4c37-aefe-0132313ff95e",
"processingPeriod":"http://localhost:8080/api/periods/1a9f8249-1496-480a-a21e-e667f7c7ecd7",
"status":"SUBMITTED"
}
Status 201 Created,
Create requisition
In URL:
URL: http://localhost:8080/api/requisitions/?access_token=0445814b-b97b-44f8-b4db-37ef148cbb50
Method: Post
Example Body:
{
"facility":"http://localhost:8080/api/facilities/79130705-7c6f-410e-904f-b1d243bb44f2",
"program": "http://localhost:8080/api/programs/d4857768-05d4-4783-9e7f-019809e6859d",
"processingPeriod":"http://localhost:8080/api/periods/95c7720c-8e38-42fe-a20d-261de7b4cc07",
"status":"AUTHORIZED",
"supervisoryNode":" "http://localhost:8080/api/supervisoryNodes/f81913c9-67d9-485d-916b-dae1f618e280"
Status 201 Created,
with different "supervisoryNode" than previously
Create admin user
In URL: http://localhost:8080/api/users?access_token=6116d810-b01e-46d3-b8bb-6b3a1a128af5
Method: Post
Example Body:
{
"id": "35316636-6264-6331-2d34-3933322d3462",
"username":"trusted-client",
"password":"secret",
"firstName":"name",
"lastName":"LName",
"supervisedNode":"http://localhost:8080/api/supervisoryNodes/4d448a74-29b6-49f1-aec6-5e217a7d8562",
"active":true,
"verified":true
}
Status 201 Created,
With the same "supervisedNode" like in requistition: "supervisoryNode":"http://localhost:8080/api/supervisoryNodes/16037214-b3d7-45b0-b094-87574636d6f0"
id from endpoint: http://localhost:8081/oauth/token?grant_type=password&username=admin&password=password
"referenceDataUserId": "35316636-6264-6331-2d34-3933322d3462"
Check endpoint: http://localhost:8080/api/requisitions/requisitions-for-approval?access_token=6116d810-b01e-46d3-b8bb-6b3a1a128af5
Method: GET
Status 200 OK,
"productName", "dispensingUnit": 1, "dosesPerDispensingUnit": 1, "packSize": 1, "packRoundingThreshold": 1, "roundToZero": true, "active": true, "fullSupply": true, "tracer": true, "productCategory": { "id": "3c840e6c-a2e6-482f-b794-90379fcbfe00", "code": "categorycode", "name": "categoryname", "displayOrder": 32 } }, "stockInHand": 2, "beginningBalance": 2, "totalReceivedQuantity": 2, "totalLossesAndAdjustments": 2, "stockOnHand": 2, "requestedQuantity": 2, "totalConsumedQuantity": 2, "requestedQuantityExplanation": "abc", "remarks": "sometest", "approvedQuantity": 2 } ], "facility": { "id": "fb9ce60f-6557-4651-b9b9-efefccf76251", "code": "facilitycode", "name": "facilityname", "geographicZone": { "id": "3141d995-1f69-4400-be30-64ed564a0253", "code": "geocode", "name": "geoname", "level": { "id": "a8db3899-896f-4e40-b912-f38a6af5b3ce", "code": "levelcode", "name": "levelname", "levelNumber": "32" } }, "type": { "id": "d734497f-7e46-4915-9f05-83c0432fc158", "code": "typecode", "name": "typename" }, "active": true, "enabled": true }, "program": { "id": "bebd5da3-b905-45b7-a474-85c3ba655f9d", "code": "programcode", "name": "programname", "periodsSkippable": true }, "processingPeriod": { "id": "f9378770-e1f9-4dbc-85b2-482ce55cb776", "processingSchedule": { "id": "79650728-fb5e-4413-ba1e-c58e042415f9", "code": "schedulecode", "name": "schedulename" }, "name": "periodname", "description": "abc", "startDate": "2016-09-15", "endDate": "2016-09-15" }, "status": "INITIATED", "supervisoryNode": { "id": " 5ec94f96-ac1b-4d1d-bd89-505f4f71c0e8", "code": "supervisoryNodeTest", "facility": { "id": "fb9ce60f-6557-4651-b9b9-efefccf76251", "code": "facilitycode", "name": "facilityname", "geographicZone": { "id": "3141d995-1f69-4400-be30-64ed564a0253", "code": "geocode", "name": "geoname", "level": { "id": "a8db3899-896f-4e40-b912-f38a6af5b3ce", "code": "levelcode", "name": "levelname", "levelNumber": "32" } }, "type": { "id": "d734497f-7e46-4915-9f05-83c0432fc158", "code": "typecode", "name": "typename" } } } } | Status 201 Created, id: f13a2c6f-8791-4329-b468-11634e0cedf1 | Created requisition contain the entites created above. | |
12 | Submit the previously created requisition. Method: PUT Body: the body of previously created requisition | ||
13 | Verify if the requisition is submitted. Method: GET OR URL: http://localhost:8080/api/requisitions/submitted?access_token=a5c523c7-914e-4d12-8a55-78db5f2f57b6 Method: GET | ||
14 | Create special User with previously created supervisoryNode. Method: POST Example body: { "id": "35316636-6264-6331-2d34-3933322d3462", "username": "trusted-client", "password": "secret", "email": "testowysoldevelo@gmail.com", "firstName": "Name2F", "lastName": "Last2N", "verified": "true", "active": "true", "restrictLogin": "false", "timezone":"CTM", "supervisedNode": { "id": "5ec94f96-ac1b-4d1d-bd89-505f4f71c0e8", "code": "supervisoryNodeTest", "facility": { "id": "fb9ce60f-6557-4651-b9b9-efefccf76251", "code": "facilitycode", "name": "facilityname", "geographicZone": { "id": "3141d995-1f69-4400-be30-64ed564a0253", "code": "geocode", "name": "geoname", "level": { "id": "a8db3899-896f-4e40-b912-f38a6af5b3ce", "code": "levelcode", "name": "levelname", "levelNumber": "32" } }, "type": { "id": "d734497f-7e46-4915-9f05-83c0432fc158", "code": "typecode", "name": "typename" }, "active": true, "enabled": true } } } | "id": "35316636-6264-6331-2d34-3933322d3462" | |
15 | Authorize the first requisition. Body: the body of previously created requisition Method: PUT | ||
16 | Verify if the previously authorized requisition is waiting for the approval. Method: GET | Only the requisition with AUTHORIZED status, supervisoryNode associated with special User will be seen. The requisitions created in points 17 and 18 will not be visible on the approval lists. The User with proper role is not associated with supervisoryNode. | |
17 | Create second requisition with different supervisoryNode. | The whole process of creation the second requisition is the same like for the first requisition. (follow the steps from 1 to 15 but do not repeat the step from point 14.) | |
18 | Create third requisition without supervisoryNode. | The whole process of creation the second requisition is the same like for the first requisition. (follow the steps from 1 to 15 but do not repeat the step described in points 10 and 14.) | |
19 | Approve the first requisition. Method: PUT Body: the body of previously created requisition | ||
20 | Add comments to the first requisition. Example body: { "body": "some information" } | Status 201 Created, id: 7cba6c5d-ffcf-404a-a2b5-61e03f9d0998 | Comments are added to the first requisition when it has APPROVED status. |
21 | Verify if the comments are inserted (to the first requisition). URL: Method: GET | ||
22 | Change the Approved Quantity attribute. URL: http://localhost:8080/api/requisitionLines?access_token=a5c523c7-914e-4d12-8a55-78db5f2f57b6 Method: POST { "id": "fc93a929-d62e-4fff-9f8f-4ad9df0a4e60", "product": { "id": "1752b457-0a4b-4de0-bf94-5a6a8002427e", "code": "productCode", "primaryName": "productName", "dispensingUnit": "1", "dosesPerDispensingUnit": 1, "packSize": 1, "packRoundingThreshold": 1, "roundToZero": true, "active": true, "fullSupply": true, "tracer": true, "productCategory": { "id": "3c840e6c-a2e6-482f-b794-90379fcbfe00", "code": "categorycode", "name": "categoryname", "displayOrder": 32 } }, "requisition": null, "stockInHand": 2, "beginningBalance": 2, "totalReceivedQuantity": 2, "totalLossesAndAdjustments": 2, "stockOnHand": 2, "requestedQuantity": 2, "totalConsumedQuantity": 2, "requestedQuantityExplanation": "abc", "remarks": "sometest", "approvedQuantity": "125" } | Status 200 OK | Earlier, the approved quantity attribute was equals to 2. |
23 | Insert text into Remarks attribute. URL: http://localhost:8080/api/requisitionLines?access_token=a5c523c7-914e-4d12-8a55-78db5f2f57b6 Method; POST Body: { "id": "fc93a929-d62e-4fff-9f8f-4ad9df0a4e60", "product": { "id": "1752b457-0a4b-4de0-bf94-5a6a8002427e", "code": "productCode", "primaryName": "productName", "dispensingUnit": "1", "dosesPerDispensingUnit": 1, "packSize": 1, "packRoundingThreshold": 1, "roundToZero": true, "active": true, "fullSupply": true, "tracer": true, "productCategory": { "id": "3c840e6c-a2e6-482f-b794-90379fcbfe00", "code": "categorycode", "name": "categoryname", "displayOrder": 32 } }, "requisition": null, "stockInHand": 2, "beginningBalance": 2, "totalReceivedQuantity": 2, "totalLossesAndAdjustments": 2, "stockOnHand": 2, "requestedQuantity": 2, "totalConsumedQuantity": 2, "requestedQuantityExplanation": "abc", "remarks": "some test information are inserted", "approvedQuantity": "125" } | Status 200 OK | I cannot insert into Remarks attribute the text larger than 250 charts. When i try to do that, the 400 bad request status will be returned. |