-
Notifications
You must be signed in to change notification settings - Fork 52
/
batch_request.feature
94 lines (88 loc) · 3.76 KB
/
batch_request.feature
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
Feature: Batch request
In order to minimize network traffic
As a user of the library
I want to be able to batch changes (Add/Update/Delete) and persist the batch instead of one at a time
Background:
Given an ODataService exists with uri: "http://localhost:8888/SampleService/Entities.svc"
And blueprints exist for the service
Scenario: Save Changes should allow for batch additions
Given I call "AddToProducts" on the service with a new "Product" object with Name: "Product 1"
And I call "AddToProducts" on the service with a new "Product" object with Name: "Product 2"
When I save changes
Then the save result should equal: "true"
When I call "Products" on the service
And I order by: "Name"
And I run the query
Then the result should be:
| Name |
| Product 1 |
| Product 2 |
Scenario: Save Changes should allow for batch updates
Given I call "AddToProducts" on the service with a new "Product" object with Name: "Product 1"
And I call "AddToProducts" on the service with a new "Product" object with Name: "Product 2"
When I save changes
When I call "Products" on the service
And I filter the query with: "Name eq 'Product 1'"
And I run the query
And I set "Name" on the result to "Product 1 - Updated"
And I call "update_object" on the service with the last query result
When I call "Products" on the service
And I filter the query with: "Name eq 'Product 2'"
And I run the query
And I set "Name" on the result to "Product 2 - Updated"
And I call "update_object" on the service with the last query result
When I save changes
When I call "Products" on the service
And I order by: "Name"
And I run the query
Then the result should be:
| Name |
| Product 1 - Updated |
| Product 2 - Updated |
Scenario: Save Changes should allow for batch deletes
Given I call "AddToProducts" on the service with a new "Product" object with Name: "Product 1"
And I call "AddToProducts" on the service with a new "Product" object with Name: "Product 2"
And I call "AddToProducts" on the service with a new "Product" object with Name: "Product 3"
And I call "AddToProducts" on the service with a new "Product" object with Name: "Product 4"
When I save changes
When I call "Products" on the service
And I filter the query with: "Name eq 'Product 2'"
And I run the query
And I call "delete_object" on the service with the last query result
When I call "Products" on the service
And I filter the query with: "Name eq 'Product 3'"
And I run the query
And I call "delete_object" on the service with the last query result
When I save changes
When I call "Products" on the service
And I order by: "Name"
And I run the query
Then the result should be:
| Name |
| Product 1 |
| Product 4 |
Scenario: Save Changes should allow for a mix of adds, updates, and deletes to be batched
Given the following Products exist:
| Name |
| Product 1 |
| Product 2 |
And I call "AddToProducts" on the service with a new "Product" object with Name: "Product 3"
And I call "AddToProducts" on the service with a new "Product" object with Name: "Product 4"
When I call "Products" on the service
And I filter the query with: "Name eq 'Product 1'"
And I run the query
And I set "Name" on the result to "Product 1 - Updated"
And I call "update_object" on the service with the last query result
When I call "Products" on the service
And I filter the query with: "Name eq 'Product 2'"
And I run the query
And I call "delete_object" on the service with the last query result
When I save changes
When I call "Products" on the service
And I order by: "Name"
And I run the query
Then the result should be:
| Name |
| Product 1 - Updated |
| Product 3 |
| Product 4 |