brine-dsl 0.8.1 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-gemset +1 -0
  3. data/Gemfile.lock +24 -75
  4. data/Rakefile +5 -29
  5. data/brine-dsl.gemspec +3 -5
  6. data/feature_setup.rb +17 -0
  7. data/lib/brine/requester.rb +27 -2
  8. data/lib/brine/step_definitions/request_construction.rb +5 -0
  9. data/lib/brine/test_steps.rb +8 -2
  10. data/lib/brine/type_checks.rb +2 -1
  11. data/lib/brine/util.rb +13 -3
  12. metadata +6 -145
  13. data/.gitignore +0 -3
  14. data/.travis.yml +0 -11
  15. data/CHANGELOG.md +0 -170
  16. data/Guardfile +0 -12
  17. data/LICENSE +0 -21
  18. data/README.adoc +0 -29
  19. data/config/cucumber.yml +0 -2
  20. data/docs/build.gradle +0 -19
  21. data/docs/cookbook.html +0 -643
  22. data/docs/gradle/wrapper/gradle-wrapper.jar +0 -0
  23. data/docs/gradle/wrapper/gradle-wrapper.properties +0 -6
  24. data/docs/gradlew +0 -172
  25. data/docs/gradlew.bat +0 -84
  26. data/docs/guide.html +0 -1220
  27. data/docs/index.html +0 -486
  28. data/docs/specs.html +0 -2066
  29. data/docs/src/cookbook.adoc +0 -160
  30. data/docs/src/guide.adoc +0 -524
  31. data/docs/src/index.adoc +0 -28
  32. data/docs/src/spec.erb +0 -121
  33. data/docs/src/specs.adoc +0 -37
  34. data/features/argument_transforms/boolean.feature +0 -37
  35. data/features/argument_transforms/datetime.feature +0 -45
  36. data/features/argument_transforms/integer.feature +0 -41
  37. data/features/argument_transforms/list.feature +0 -46
  38. data/features/argument_transforms/object.feature +0 -66
  39. data/features/argument_transforms/quoted.feature +0 -41
  40. data/features/argument_transforms/regex.feature +0 -40
  41. data/features/argument_transforms/template.feature +0 -46
  42. data/features/argument_transforms/whitespace.feature +0 -51
  43. data/features/assertions/is_a_valid.feature +0 -184
  44. data/features/assertions/is_empty.feature +0 -67
  45. data/features/assertions/is_equal_to.feature +0 -60
  46. data/features/assertions/is_including.feature +0 -34
  47. data/features/assertions/is_matching.feature +0 -35
  48. data/features/assertions/is_of_length.feature +0 -43
  49. data/features/assignment/parameter.feature +0 -20
  50. data/features/assignment/random.feature +0 -25
  51. data/features/assignment/response_attribute.feature +0 -33
  52. data/features/assignment/timestamp.feature +0 -33
  53. data/features/deprecations/replaced_with.feature +0 -53
  54. data/features/request_construction/basic.feature +0 -29
  55. data/features/request_construction/body.feature +0 -26
  56. data/features/request_construction/clearing.feature +0 -46
  57. data/features/request_construction/headers.feature +0 -94
  58. data/features/request_construction/params.feature +0 -60
  59. data/features/resource_cleanup/cleanup.feature +0 -86
  60. data/features/selectors/all.feature +0 -55
  61. data/features/selectors/any.feature +0 -48
  62. data/features/step_definitions/test_steps.rb +0 -5
  63. data/features/support/env.rb +0 -10
  64. data/tutorial/missing.feature +0 -5
  65. data/tutorial/post_matching.feature +0 -12
  66. data/tutorial/post_status.feature +0 -10
  67. data/tutorial/support/env.rb +0 -2
@@ -1,34 +0,0 @@
1
- Feature: Including
2
- It can be asserted that a value is a superset of another value.
3
-
4
- Scenario: Includes
5
- Given a file named "features/includes.feature" with:
6
- """
7
-
8
- Feature: Includes
9
- Scenario: Basic object membership
10
- When the response body is assigned:
11
- \"\"\"
12
- {"foo":"bar",
13
- "baz": 1,
14
- "other": "blah"}
15
- \"\"\"
16
- Then the value of the response body is including:
17
- \"\"\"
18
- {"baz":1}
19
- \"\"\"
20
- And the value of the response body is not including:
21
- \"\"\"
22
- {"missing":"value"}
23
- \"\"\"
24
- And the value of the response body is including `other`
25
- And the value of the response body is not including `brother`
26
- And the value of the response body is not including `value`
27
-
28
- """
29
- When I run `cucumber features/includes.feature`
30
- Then the output should contain:
31
- """
32
- 1 passed
33
- """
34
- And it should pass
@@ -1,35 +0,0 @@
1
- Feature: Matching
2
- It can be asserted that a value matches another string or regex.
3
-
4
- Scenario: Assorted positive and negative assertions.
5
- Given a file named "features/is_matching.feature" with:
6
- """
7
-
8
- Feature: Assert value matchiness.
9
- Scenario: String in response body is matched against a regex.
10
- When the response body is assigned:
11
- \"\"\"
12
- http://www.github.com?var=val
13
- \"\"\"
14
- Then the value of the response body is matching `/github/`
15
- And the value of the response body is matching `/git.*\?.*=/`
16
- And the value of the response body is not matching `/gh/`
17
- And the value of the response body is not matching `/^github/`
18
-
19
- Scenario: Regex in response body matched against a string
20
- When the response body is assigned:
21
- \"\"\"
22
- /(.+)\1/
23
- \"\"\"
24
- Then the value of the response body is matching `blahblah`
25
- And the value of the response body is matching `boo`
26
- And the value of the response body is not matching `blah blah`
27
- And the value of the response body is not matching `blah`
28
-
29
- """
30
- When I run `cucumber --strict features/is_matching.feature`
31
- Then the output should contain:
32
- """
33
- 2 passed
34
- """
35
- And it should pass
@@ -1,43 +0,0 @@
1
- Feature: Of Length
2
- It can be asserted that a value has a provided length.
3
-
4
- Scenario: Has Length
5
- Given a file named "features/has_length.feature" with:
6
- """
7
-
8
- Feature: Has Length
9
- Scenario: String
10
- When the response body is assigned:
11
- \"\"\"
12
- blah
13
- \"\"\"
14
- Then the value of the response body is of length `4`
15
-
16
- Scenario: Array
17
- When the response body is assigned:
18
- \"\"\"
19
- ["foo", "blah"]
20
- \"\"\"
21
- Then the value of the response body is of length `2`
22
-
23
- Scenario: Map
24
- When the response body is assigned:
25
- \"\"\"
26
- {"foo": "blah"}
27
- \"\"\"
28
- Then the value of the response body is of length `1`
29
-
30
- Scenario: Value without length attribute
31
- When the response body is assigned:
32
- \"\"\"
33
- true
34
- \"\"\"
35
- Then the value of the response body is not of length `1`
36
-
37
- """
38
- When I run `cucumber features/has_length.feature`
39
- Then the output should contain:
40
- """
41
- 4 passed
42
- """
43
- And it should pass
@@ -1,20 +0,0 @@
1
- Feature: A Parameter
2
- An identifier can be assigned the value of the provided parameter.
3
-
4
- Scenario: Parameter assignment.
5
- Given a file named "features/parameter.feature" with:
6
- """
7
-
8
- Feature: Parameter Assignment.
9
- Scenario: Simple assignment.
10
- Given `foo` is assigned `bar`
11
- When the response body is assigned `{{ foo }}`
12
- Then the value of the response body is equal to `bar`
13
-
14
- """
15
- When I run `cucumber --strict features/parameter.feature`
16
- Then the output should contain:
17
- """
18
- 1 passed
19
- """
20
- And it should pass
@@ -1,25 +0,0 @@
1
- Feature: A Random String
2
- An identifier can be assigned a random string with decent entropy.
3
-
4
- Scenario: Random string assignment.
5
- Given a file named "features/random.feature" with:
6
- """
7
-
8
- Feature: Random Assignment.
9
- Scenario: Several unique variables.
10
- Given `v1` is assigned a random string
11
- And `v2` is assigned a random string
12
- And `v3` is assigned a random string
13
- When the response body is assigned `[ "{{ v1 }}","{{ v2 }}","{{ v3 }}" ]`
14
- Then the value of the response body does not have any element that is empty
15
- And the value of the response body child `.[0]` is equal to `{{ v1 }}`
16
- And the value of the response body children `.[1:2]` does not have any element that is equal to `{{ v1 }}`
17
- And the value of the response body child `.[2]` is not equal to `{{ v2 }}`
18
-
19
- """
20
- When I run `cucumber --strict features/random.feature`
21
- Then the output should contain:
22
- """
23
- 8 passed
24
- """
25
- And it should pass
@@ -1,33 +0,0 @@
1
- Feature: A Value From A Response Attribute.
2
- An identifier can be assigned a value extracted from a response attribute.
3
-
4
- Scenario: Assorted attribute extractions.
5
- Given a file named "features/response_attribute.feature" with:
6
- """
7
-
8
- Feature: Reponse Attribute Path Assignment.
9
- Scenario: Response body.
10
- Given the response body is assigned `foo`
11
- When `myVar` is assigned the response body
12
- And the response body is assigned `{{ myVar }}`
13
- Then the value of the response body is equal to `foo`
14
-
15
- Scenario: Response body child.
16
- Given the response body is assigned `{"response": "foo"}`
17
- When `myVar` is assigned the response body child `.response`
18
- And the response body is assigned `{{ myVar }}`
19
- Then the value of the response body is equal to `foo`
20
-
21
- Scenario: Response body children.
22
- Given the response body is assigned `{"response": "foo"}`
23
- When `myVar` is assigned the response body children `.response`
24
- And the response body is assigned `{{{ myVar }}}`
25
- Then the value of the response body is equal to `["foo"]`
26
-
27
- """
28
- When I run `cucumber --strict features/response_attribute.feature`
29
- Then the output should contain:
30
- """
31
- 3 passed
32
- """
33
- And it should pass
@@ -1,33 +0,0 @@
1
- Feature: A Timestamp
2
- An identifier can be assigned a current timestamp.
3
-
4
- Scenario: Timestamp assignment.
5
- Given a file named "features/timestamp.feature" with:
6
- """
7
-
8
- Feature: Timestamp Assignment.
9
- Scenario: Newer than some old date.
10
- Given `v1` is assigned a timestamp
11
- When the response body is assigned `{{ v1 }}`
12
- Then value of the response body is greater than `2018-06-17T12:00:00Z`
13
-
14
- Scenario: Values increase.
15
- Given `v1` is assigned a timestamp
16
- When the response body is assigned `{{ v1 }}`
17
- Then the value of the response body is not empty
18
-
19
- When `v2` is assigned a timestamp
20
- And the response body is assigned `{{ v2 }}`
21
- Then the value of the response body is greater than or equal to `{{ v1 }}`
22
-
23
- When `v3` is assigned a timestamp
24
- And the response body is assigned `{{ v3 }}`
25
- Then the value of the response body is greater than or equal to `{{ v1 }}`
26
- And the value of the response body is greater than or equal to `{{ v2 }}`
27
-
28
- """
29
- When I run `cucumber --strict features/timestamp.feature`
30
- Then the output should contain:
31
- """
32
- 2 passed
33
- """
@@ -1,53 +0,0 @@
1
- Feature: Deprecation Messaging
2
-
3
- Scenario: Deprecation Message is Displayed
4
- Given a file named "features/deprecation.feature" with:
5
- """
6
- Feature: Deprecation Messaging
7
- Scenario: Multine String
8
- When the response body is:
9
- \"\"\"
10
- Anything
11
- \"\"\"
12
- Then the response body as JSON is:
13
- \"\"\"
14
- ""Anything""
15
- \"\"\"
16
- Scenario: Multine Object
17
- When the response body is:
18
- \"\"\"
19
- {"isObj": true}
20
- \"\"\"
21
- Then the response body as JSON is:
22
- \"\"\"
23
- '{"isObj":true}'
24
- \"\"\"
25
- """
26
- When I run `cucumber features/deprecation.feature`
27
- Then the output should contain:
28
- """
29
- 2 passed
30
- """
31
- And the output should contain:
32
- """
33
- DEPRECATION:
34
- """
35
- And it should pass
36
-
37
- Scenario: 0.9 depprecations
38
- Given a file named "features/0.9.feature" with:
39
- """
40
-
41
- Feature: 0.9
42
- Scenario: includes the entries
43
- When the response body is assigned `{"foo":"bar"}`
44
- Then the response body includes the entries:
45
- | foo | bar |
46
-
47
- """
48
- When I run `cucumber --strict features/0.9.feature`
49
- Then the output should contain:
50
- """
51
- 1 passed
52
- """
53
- And it should pass
@@ -1,29 +0,0 @@
1
- Feature: Basic Request Construction
2
- A simple request with a specified method and path can be sent.
3
-
4
- Scenario Outline: Varying Methods
5
- Given a file named "features/basic_requests.feature" with:
6
-
7
- """
8
- Feature: Sending a method
9
- Scenario: Basic URL
10
- Given expected <method> sent to `/profile`
11
-
12
- When a <method> is sent to `/profile`
13
- Then expected calls are verified
14
- """
15
-
16
- When I run `cucumber features/basic_requests.feature`
17
- Then the output should contain:
18
- """
19
- 1 passed
20
- """
21
- And it should pass
22
-
23
- Examples:
24
- | method |
25
- | GET |
26
- | POST |
27
- | PATCH |
28
- | DELETE |
29
- | PUT |
@@ -1,26 +0,0 @@
1
- Feature: Assigning a Request Body
2
-
3
- Scenario: Request With Body
4
- Given a file named "features/request_body.feature" with:
5
- """
6
- Feature: Passing a body
7
- Scenario: Basic URL
8
- Given expected request body:
9
- \"\"\"
10
- {"request":1}
11
- \"\"\"
12
- And expected PUT sent to `/store`
13
-
14
- When the request body is assigned:
15
- \"\"\"
16
- {"request":1}
17
- \"\"\"
18
- When a PUT is sent to `/store`
19
- Then expected calls are verified
20
- """
21
- When I run `cucumber features/request_body.feature`
22
- Then the output should contain:
23
- """
24
- 5 passed
25
- """
26
- And it should pass
@@ -1,46 +0,0 @@
1
- Feature: Cleared After Sent
2
- After a request is sent, any values that were added to that request
3
- are cleared and will not be present in subsequent requests.
4
-
5
- Scenario: Request is Cleared Before Second Send
6
- Given a file named "features/request_clearing.feature" with:
7
-
8
- """
9
- Feature: Clearing the request.
10
- Scenario: Request body is cleared.
11
- Given expected request body:
12
- \"\"\"
13
- {"request":1}
14
- \"\"\"
15
- And expected PUT sent to `/profile`
16
- Given expected request body:
17
- \"\"\"
18
- \"\"\"
19
- And expected PUT sent to `/store`
20
-
21
- When the request body is assigned:
22
- \"\"\"
23
- {"request":1}
24
- \"\"\"
25
- And a PUT is sent to `/profile`
26
- And a PUT is sent to `/store`
27
-
28
- Then expected calls are verified
29
-
30
- Scenario: Request parameter
31
- Given expected GET sent to `/query?foo=bar`
32
- And expected GET sent to `/resource`
33
-
34
- Given the request query parameter `foo` is assigned `bar`
35
- And a GET is sent to `/query`
36
-
37
- When a GET is sent to `/resource`
38
- Then expected calls are verified
39
- """
40
-
41
- When I run `cucumber features/request_clearing.feature`
42
- Then the output should contain:
43
- """
44
- 2 passed
45
- """
46
- And it should pass
@@ -1,94 +0,0 @@
1
- Feature: Adding Headers
2
-
3
- Scenario: Headers are added to requests.
4
- Given a file named "features/headers.feature" with:
5
-
6
- """
7
- Feature: Request headers can be specified.
8
- Scenario: A new header with a single value is added to request.
9
- Given expected request headers:
10
- \"\"\"
11
- {"foo":"bar"}
12
- \"\"\"
13
- And expected GET sent to `/query`
14
-
15
- When the request header `foo` is assigned `bar`
16
- And a GET is sent to `/query`
17
-
18
- Then expected calls are verified
19
-
20
- Scenario: Default headers are present in requests.
21
- Given expected request headers:
22
- \"\"\"
23
- {"Content-Type": "application/json"}
24
- \"\"\"
25
- And expected GET sent to `/query`
26
-
27
- When a GET is sent to `/query`
28
-
29
- Then expected calls are verified
30
-
31
- Scenario: Default headers can be overridden.
32
- Given expected request headers:
33
- \"\"\"
34
- {"Content-Type": "text/plain"}
35
- \"\"\"
36
- And expected GET sent to `/query`
37
-
38
- When the request header `Content-Type` is assigned `text/plain`
39
- And a GET is sent to `/query`
40
-
41
- Then expected calls are verified
42
-
43
- Scenario: Array header values are added to requests.
44
- Given expected request headers:
45
- \"\"\"
46
- {"X-Array": "1, 2, 3"}
47
- \"\"\"
48
- And expected GET sent to `/query`
49
-
50
- When the request header `X-Array` is assigned `[1, 2, 3]`
51
- And a GET is sent to `/query`
52
-
53
- Then expected calls are verified
54
-
55
- Scenario: The last set value for a given header wins.
56
- Given expected request headers:
57
- \"\"\"
58
- {"foo":"baz"}
59
- \"\"\"
60
- And expected GET sent to `/query`
61
-
62
- When the request header `foo` is assigned `bar`
63
- And the request header `foo` is assigned `baz`
64
- And a GET is sent to `/query`
65
-
66
- Then expected calls are verified
67
-
68
- Scenario Outline: Header is added regardless of HTTP method.
69
- Given expected request headers:
70
- \"\"\"
71
- {"foo":"bar"}
72
- \"\"\"
73
- And expected <method> sent to `/query`
74
-
75
- When the request header `foo` is assigned `bar`
76
- And a <method> is sent to `/query`
77
-
78
- Then expected calls are verified
79
-
80
- Examples:
81
- | method |
82
- | POST |
83
- | PUT |
84
- | DELETE |
85
- | HEAD |
86
- | OPTIONS |
87
- """
88
-
89
- When I run `cucumber features/headers.feature`
90
- Then the output should contain:
91
- """
92
- 10 passed
93
- """
94
- And it should pass