protobuf_spec 0.3.1
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 +7 -0
- data/.document +5 -0
- data/.rspec +1 -0
- data/.travis.yml +5 -0
- data/CONTRIBUTION_GUIDELINES.md +22 -0
- data/Gemfile +13 -0
- data/Gemfile.lock +81 -0
- data/LICENSE.txt +14 -0
- data/README.md +165 -0
- data/Rakefile +35 -0
- data/VERSION +1 -0
- data/features/builder.feature +34 -0
- data/features/equivalence.feature +95 -0
- data/features/inclusion.feature +72 -0
- data/features/memory.feature +135 -0
- data/features/paths.feature +21 -0
- data/features/step_definitions/steps.rb +3 -0
- data/features/support/env.rb +9 -0
- data/features/support/sample.pb.rb +40 -0
- data/lib/protobuf_spec.rb +4 -0
- data/lib/protobuf_spec/builder.rb +46 -0
- data/lib/protobuf_spec/cucumber.rb +69 -0
- data/lib/protobuf_spec/extensions.rb +9 -0
- data/lib/protobuf_spec/matchers.rb +18 -0
- data/lib/protobuf_spec/matchers/be_protobuf_eql.rb +37 -0
- data/lib/protobuf_spec/matchers/have_protobuf_path.rb +27 -0
- data/protobuf_spec.gemspec +87 -0
- data/sample.proto +17 -0
- data/spec/protobuf_spec/matchers/be_protobuf_eql_spec.rb +21 -0
- data/spec/spec_helper.rb +12 -0
- data/spec/support/sample.pb.rb +40 -0
- metadata +151 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 66bbc89abe97ac54c85205b4dd0807626e5d674c
|
4
|
+
data.tar.gz: 8230b7bf3c4ed051b868ce5600fb96623c1da194
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 3fa242e56478eb0881c37abf269b709e967f0d23e1d502603bfb4d729271ad5539c16d808a25d9b04cb50ada9a2640d4b7cfbb38d529b2df75aba2c5b89261b9
|
7
|
+
data.tar.gz: 973b1c68787c23b251886f691b9a9801cee3245050636fb98b7ee3fc055493de40b6fcb12dbc46628be996ebb412eb906faaaad904acef60f742e209bd80da83
|
data/.document
ADDED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
data/.travis.yml
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
If you come across any issues, please [tell us](https://github.com/connamara/protobuf_spec/issues).
|
2
|
+
Pull requests (with tests) are appreciated. No pull request is too small. Please help with:
|
3
|
+
|
4
|
+
* Reporting bugs
|
5
|
+
* Suggesting features
|
6
|
+
* Writing or improving documentation
|
7
|
+
* Fixing typos
|
8
|
+
* Cleaning whitespace
|
9
|
+
* Refactoring code
|
10
|
+
* Adding tests
|
11
|
+
* Closing [issues](https://github.com/connamara/protobuf_spec/issues)
|
12
|
+
|
13
|
+
Contributing to protobuf\_spec:
|
14
|
+
|
15
|
+
1. Fork the [official repository](https://github.com/connamara/protobuf_spec/tree/master).
|
16
|
+
2. Make your changes in a topic branch.
|
17
|
+
3. Send a pull request.
|
18
|
+
|
19
|
+
Notes:
|
20
|
+
* If you report a bug and don't include a fix, please include a failing test.
|
21
|
+
* Contributions without tests won't be accepted.
|
22
|
+
* Please don't update the Gem version
|
data/Gemfile
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
source "http://rubygems.org"
|
2
|
+
|
3
|
+
gem "ruby_protobuf", "~> 0.4.11"
|
4
|
+
gem "json_spec", "~> 1.1.1"
|
5
|
+
gem "cuke_mem", "~> 0.1.1"
|
6
|
+
|
7
|
+
|
8
|
+
group :development do
|
9
|
+
gem "rspec", "~> 2.14"
|
10
|
+
gem "jeweler", "~> 1.8"
|
11
|
+
gem "cucumber", "~> 1.3"
|
12
|
+
gem "rake", "~> 10.1"
|
13
|
+
end
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,81 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
specs:
|
4
|
+
addressable (2.3.5)
|
5
|
+
builder (3.2.2)
|
6
|
+
cucumber (1.3.6)
|
7
|
+
builder (>= 2.1.2)
|
8
|
+
diff-lcs (>= 1.1.3)
|
9
|
+
gherkin (~> 2.12.0)
|
10
|
+
multi_json (~> 1.7.5)
|
11
|
+
multi_test (>= 0.0.2)
|
12
|
+
cuke_mem (0.1.1)
|
13
|
+
cucumber (~> 1.3)
|
14
|
+
diff-lcs (1.2.4)
|
15
|
+
faraday (0.8.8)
|
16
|
+
multipart-post (~> 1.2.0)
|
17
|
+
gherkin (2.12.1)
|
18
|
+
multi_json (~> 1.3)
|
19
|
+
git (1.2.6)
|
20
|
+
github_api (0.10.1)
|
21
|
+
addressable
|
22
|
+
faraday (~> 0.8.1)
|
23
|
+
hashie (>= 1.2)
|
24
|
+
multi_json (~> 1.4)
|
25
|
+
nokogiri (~> 1.5.2)
|
26
|
+
oauth2
|
27
|
+
hashie (2.0.5)
|
28
|
+
highline (1.6.19)
|
29
|
+
httpauth (0.2.0)
|
30
|
+
jeweler (1.8.7)
|
31
|
+
builder
|
32
|
+
bundler (~> 1.0)
|
33
|
+
git (>= 1.2.5)
|
34
|
+
github_api (= 0.10.1)
|
35
|
+
highline (>= 1.6.15)
|
36
|
+
nokogiri (= 1.5.10)
|
37
|
+
rake
|
38
|
+
rdoc
|
39
|
+
json (1.8.0)
|
40
|
+
json_spec (1.1.1)
|
41
|
+
multi_json (~> 1.0)
|
42
|
+
rspec (~> 2.0)
|
43
|
+
jwt (0.1.8)
|
44
|
+
multi_json (>= 1.5)
|
45
|
+
multi_json (1.7.9)
|
46
|
+
multi_test (0.0.2)
|
47
|
+
multi_xml (0.5.5)
|
48
|
+
multipart-post (1.2.0)
|
49
|
+
nokogiri (1.5.10)
|
50
|
+
oauth2 (0.9.2)
|
51
|
+
faraday (~> 0.8)
|
52
|
+
httpauth (~> 0.2)
|
53
|
+
jwt (~> 0.1.4)
|
54
|
+
multi_json (~> 1.0)
|
55
|
+
multi_xml (~> 0.5)
|
56
|
+
rack (~> 1.2)
|
57
|
+
rack (1.5.2)
|
58
|
+
rake (10.1.0)
|
59
|
+
rdoc (4.0.1)
|
60
|
+
json (~> 1.4)
|
61
|
+
rspec (2.14.1)
|
62
|
+
rspec-core (~> 2.14.0)
|
63
|
+
rspec-expectations (~> 2.14.0)
|
64
|
+
rspec-mocks (~> 2.14.0)
|
65
|
+
rspec-core (2.14.5)
|
66
|
+
rspec-expectations (2.14.2)
|
67
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
68
|
+
rspec-mocks (2.14.3)
|
69
|
+
ruby_protobuf (0.4.11)
|
70
|
+
|
71
|
+
PLATFORMS
|
72
|
+
ruby
|
73
|
+
|
74
|
+
DEPENDENCIES
|
75
|
+
cucumber (~> 1.3)
|
76
|
+
cuke_mem (~> 0.1.1)
|
77
|
+
jeweler (~> 1.8)
|
78
|
+
json_spec (~> 1.1.1)
|
79
|
+
rake (~> 10.1)
|
80
|
+
rspec (~> 2.14)
|
81
|
+
ruby_protobuf (~> 0.4.11)
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
Copyright (C) 2013 Connamara Systems, llc
|
2
|
+
|
3
|
+
This program is free software: you can redistribute it and/or modify
|
4
|
+
it under the terms of the GNU General Public License as published by
|
5
|
+
the Free Software Foundation, either version 3 of the License, or
|
6
|
+
(at your option) any later version.
|
7
|
+
|
8
|
+
This program is distributed in the hope that it will be useful,
|
9
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
11
|
+
GNU General Public License for more details.
|
12
|
+
|
13
|
+
You should have received a copy of the GNU General Public License
|
14
|
+
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
data/README.md
ADDED
@@ -0,0 +1,165 @@
|
|
1
|
+
protobuf\_spec [](https://travis-ci.org/connamara/protobuf_spec)
|
2
|
+
=============
|
3
|
+
|
4
|
+
RSpec matchers and Cucumber step definitions for testing Protocol Buffers using [json_spec](https://github.com/collectiveidea/json_spec)
|
5
|
+
|
6
|
+
Usage
|
7
|
+
-----
|
8
|
+
|
9
|
+
### RSpec
|
10
|
+
|
11
|
+
protobuf\_spec currently defines two matchers:
|
12
|
+
|
13
|
+
* ```be_protobuf_eql```
|
14
|
+
* ```have_protobuf_path```
|
15
|
+
|
16
|
+
The matchers can be used as their counterparts are used in json\_spec
|
17
|
+
|
18
|
+
|
19
|
+
### Cucumber
|
20
|
+
|
21
|
+
protobuf\_spec provides cucumber steps that use its RSpec matchers.
|
22
|
+
|
23
|
+
In order to use the Cucumber steps, in your ```env.rb``` you must:
|
24
|
+
|
25
|
+
```ruby
|
26
|
+
require "protobuf_spec/cucumber"
|
27
|
+
```
|
28
|
+
|
29
|
+
You will need to load the ruby_protobuf generated classes you intend to test. This can be done by generating the classes into the cucumber ```support/``` directory, or requiring them manually.
|
30
|
+
|
31
|
+
#### "Should" Assertions
|
32
|
+
|
33
|
+
In order to test the contents of a Protocol Buffer, you will need to define a ```last_protobuf``` method. This method should return the protocol buffer to be tested by a protobuf_spec Cucumber step.
|
34
|
+
|
35
|
+
For example, suppose a step that aquires a Protocol Buffer and assigns it to ```@my_protocol_buffer```. In your ```features/support/env.rb``` you could then have
|
36
|
+
|
37
|
+
```ruby
|
38
|
+
def last_protobuf
|
39
|
+
@my_protocol_buffer
|
40
|
+
end
|
41
|
+
```
|
42
|
+
|
43
|
+
See ```features/support/env.rb``` for a very simple implementation.
|
44
|
+
|
45
|
+
Now you can use proto_spec steps in your features:
|
46
|
+
|
47
|
+
|
48
|
+
```cucumber
|
49
|
+
Feature: Weather API
|
50
|
+
Background:
|
51
|
+
Given the weather is 58 degrees and cloudy in Chicago
|
52
|
+
And the weather is 72 degrees and sunny in Portland
|
53
|
+
|
54
|
+
Scenario: I can request the weather for a city
|
55
|
+
When I request weather for Portland
|
56
|
+
Then I should receive a ProtoBuf of type com.weather.WeatherResponse
|
57
|
+
And the ProtoBuf at "condition" should be "sunny"
|
58
|
+
And the ProtoBuf at "temperature" should be 72
|
59
|
+
|
60
|
+
When I request weather for Chicago
|
61
|
+
Then I should receive a ProtoBuf of type com.weather.WeatherResponse
|
62
|
+
And the ProtoBuf should be:
|
63
|
+
"""
|
64
|
+
{
|
65
|
+
"condition":"sunny",
|
66
|
+
"temperature":58
|
67
|
+
}
|
68
|
+
"""
|
69
|
+
|
70
|
+
Scenario: I can check if I need an umbrella
|
71
|
+
When I request the forecast for Chicago
|
72
|
+
Then I should receive a ProtoBuf of type com.weather.ForecastResponse
|
73
|
+
And the ProtoBuf should have "bring_umbrella"
|
74
|
+
And the ProtoBuf at "bring_umbrella" should be true
|
75
|
+
```
|
76
|
+
|
77
|
+
The background and request/receive steps above aren't provided by protobuf_spec. The remaining steps protobuf_spec provides. See [json_spec documentation](https://github.com/collectiveidea/json_spec) for more examples
|
78
|
+
|
79
|
+
#### Building Protobufs
|
80
|
+
|
81
|
+
In order to use the Cucumber steps for building protocol buffers, in your ```env.rb``` you must:
|
82
|
+
|
83
|
+
```ruby
|
84
|
+
require "protobuf_spec/builder"
|
85
|
+
```
|
86
|
+
Now you can use proto_spec builder steps in your features:
|
87
|
+
|
88
|
+
```cucumber
|
89
|
+
Feature: Weather Request API
|
90
|
+
Background:
|
91
|
+
Given the weather is 58 degrees and cloudy in Chicago
|
92
|
+
And the weather is 72 degrees and sunny in Portland
|
93
|
+
|
94
|
+
Scenario: I can request the weather for a city by protocol buffer
|
95
|
+
Given I create a ProtoBuf of type "com::weather::WeatherRequest"
|
96
|
+
And I set the ProtoBuf at "city" to "Portland"
|
97
|
+
And I set the ProtoBuf at "zipcode" to 97211
|
98
|
+
When I send the request
|
99
|
+
Then I should receive a ProtoBuf of type com::weather::WeatherResponse
|
100
|
+
And the ProtoBuf at "condition" should be "sunny"
|
101
|
+
And the ProtoBuf at "temperature" should be 72
|
102
|
+
|
103
|
+
Given I create the following protobuf of type "com::weather::WeatherRequest":
|
104
|
+
"""
|
105
|
+
{
|
106
|
+
"city": "Chicago",
|
107
|
+
"zipcode": 60606
|
108
|
+
}
|
109
|
+
"""
|
110
|
+
When I send the request
|
111
|
+
Then I should receive a ProtoBuf of type com::weather::WeatherResponse
|
112
|
+
And the ProtoBuf at "condition" should not be "sunny"
|
113
|
+
And the ProtoBuf at "temperature" should be 58
|
114
|
+
```
|
115
|
+
|
116
|
+
The built protocol buffer can be accessed through the ```protobuf``` function in the ```ProtobufSpec::Builder``` module.
|
117
|
+
|
118
|
+
### More
|
119
|
+
|
120
|
+
Check out [specs](https://github.com/connamara/protobuf_spec/blob/master/spec) and [features](https://github.com/connamara/protobuf_spec/blob/master/features) to see all the ways you can use protobuf_spec.
|
121
|
+
|
122
|
+
Install
|
123
|
+
-------
|
124
|
+
|
125
|
+
```shell
|
126
|
+
gem install protobuf_spec
|
127
|
+
```
|
128
|
+
|
129
|
+
or add the following to Gemfile:
|
130
|
+
```ruby
|
131
|
+
gem 'protobuf_spec'
|
132
|
+
```
|
133
|
+
and run `bundle install` from your shell.
|
134
|
+
|
135
|
+
More Information
|
136
|
+
----------------
|
137
|
+
|
138
|
+
* [Rubygems](https://rubygems.org/gems/protobuf_spec)
|
139
|
+
* [Issues](https://github.com/connamara/protobuf_spec/issues)
|
140
|
+
* [Connamara Systems](http://connamara.com)
|
141
|
+
|
142
|
+
Contributing
|
143
|
+
------------
|
144
|
+
|
145
|
+
Please see the [contribution guidelines](https://github.com/connamara/protobuf_spec/blob/master/CONTRIBUTION_GUIDELINES.md).
|
146
|
+
|
147
|
+
Credits
|
148
|
+
-------
|
149
|
+
|
150
|
+
Contributers:
|
151
|
+
|
152
|
+
* Chris Busbey
|
153
|
+
|
154
|
+

|
155
|
+
|
156
|
+
protobuf_spec is maintained and funded by [Connamara Systems, llc](http://connamara.com).
|
157
|
+
|
158
|
+
The names and logos for Connamara Systems are trademarks of Connamara Systems, llc.
|
159
|
+
|
160
|
+
Licensing
|
161
|
+
---------
|
162
|
+
|
163
|
+
protobuf_spec is Copyright © 2013 Connamara Systems, llc.
|
164
|
+
|
165
|
+
This software is available under the GPL and a commercial license. Please see the [LICENSE](https://github.com/connamara/protobuf_spec/blob/master/LICENSE.txt) file for the terms specified by the GPL license. The commercial license offers more flexible licensing terms compared to the GPL, and includes support services. [Contact us](mailto:info@connamara.com) for more information on the Connamara commercial license, what it enables, and how you can start developing with it.
|
data/Rakefile
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'bundler'
|
5
|
+
|
6
|
+
begin
|
7
|
+
Bundler.setup(:default, :development)
|
8
|
+
rescue Bundler::BundlerError => e
|
9
|
+
$stderr.puts e.message
|
10
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
11
|
+
exit e.status_code
|
12
|
+
end
|
13
|
+
|
14
|
+
require 'rspec/core/rake_task'
|
15
|
+
require 'cucumber/rake/task'
|
16
|
+
|
17
|
+
RSpec::Core::RakeTask.new(:spec)
|
18
|
+
Cucumber::Rake::Task.new(:cucumber)
|
19
|
+
|
20
|
+
task :test => [:spec, :cucumber]
|
21
|
+
task :default => :test
|
22
|
+
|
23
|
+
require 'jeweler'
|
24
|
+
Jeweler::Tasks.new do |gem|
|
25
|
+
gem.name = "protobuf_spec"
|
26
|
+
gem.homepage = "http://github.com/connamara/protobuf_spec"
|
27
|
+
gem.license = "GPL"
|
28
|
+
gem.summary = %Q{RSpec matchers and cucumber step defs for testing protocol buffers}
|
29
|
+
gem.description = %Q{Leverages json_spec to test structured protocol buffers with json data modeling}
|
30
|
+
gem.email = "info@connamara.com"
|
31
|
+
gem.authors = ["Chris Busbey"]
|
32
|
+
# dependencies defined in Gemfile
|
33
|
+
end
|
34
|
+
|
35
|
+
Jeweler::RubygemsDotOrgTasks.new
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.3.1
|
@@ -0,0 +1,34 @@
|
|
1
|
+
Feature: Building ProtoBufs
|
2
|
+
Scenario: I can create a blank protocol buffer
|
3
|
+
Given I create a ProtoBuf of type "Sample"
|
4
|
+
When I get the ProtoBuf
|
5
|
+
Then the ProtoBuf should not have "string_field"
|
6
|
+
Then the ProtoBuf should not have "int_field"
|
7
|
+
Then the ProtoBuf should not have "double_field"
|
8
|
+
|
9
|
+
Scenario: I can set values of the protocol buffer
|
10
|
+
Given I create a ProtoBuf of type "Sample"
|
11
|
+
And I set the ProtoBuf at "string_field" to "hello"
|
12
|
+
And I set the ProtoBuf at "int_field" to -5
|
13
|
+
And I set the ProtoBuf at "double_field" to 123.45
|
14
|
+
When I get the ProtoBuf
|
15
|
+
Then the ProtoBuf at "string_field" should be "hello"
|
16
|
+
And the ProtoBuf at "int_field" should be -5
|
17
|
+
And the ProtoBuf at "double_field" should be 123.45
|
18
|
+
|
19
|
+
Scenario: I can create a protobuf with a json description
|
20
|
+
Given I create the following ProtoBuf of type "Sample":
|
21
|
+
"""
|
22
|
+
{
|
23
|
+
"string_field": "foo",
|
24
|
+
"int_field": 5,
|
25
|
+
"double_field": 50.23,
|
26
|
+
"int_field_2": -9
|
27
|
+
}
|
28
|
+
"""
|
29
|
+
|
30
|
+
When I get the ProtoBuf
|
31
|
+
Then the ProtoBuf at "string_field" should be "foo"
|
32
|
+
And the ProtoBuf at "int_field" should be 5
|
33
|
+
And the ProtoBuf at "double_field" should be 50.23
|
34
|
+
And the ProtoBuf at "int_field_2" should be -9
|
@@ -0,0 +1,95 @@
|
|
1
|
+
Feature: Equivalence
|
2
|
+
Background:
|
3
|
+
Given I create the following ProtoBuf of type "Sample":
|
4
|
+
"""
|
5
|
+
{
|
6
|
+
"string_field": "foo",
|
7
|
+
"int_field": 5,
|
8
|
+
"double_field": 50.23,
|
9
|
+
"int_field_2": -9,
|
10
|
+
"bool_field": true,
|
11
|
+
"bool_field_2": false
|
12
|
+
}
|
13
|
+
"""
|
14
|
+
|
15
|
+
Scenario: Identical Protobuf
|
16
|
+
When I get the ProtoBuf
|
17
|
+
Then the Protobuf should be:
|
18
|
+
"""
|
19
|
+
{
|
20
|
+
"string_field": "foo",
|
21
|
+
"int_field": 5,
|
22
|
+
"double_field": 50.23,
|
23
|
+
"int_field_2": -9,
|
24
|
+
"bool_field": true,
|
25
|
+
"bool_field_2": false
|
26
|
+
}
|
27
|
+
"""
|
28
|
+
|
29
|
+
Scenario: String
|
30
|
+
When I get the ProtoBuf
|
31
|
+
Then the ProtoBuf at "string_field" should be "foo"
|
32
|
+
Then the protobuf at "string_field" should be:
|
33
|
+
"""
|
34
|
+
"foo"
|
35
|
+
"""
|
36
|
+
Then the ProtoBuf at "string_field" should not be "bar"
|
37
|
+
|
38
|
+
Scenario: Integer
|
39
|
+
When I get the ProtoBuf
|
40
|
+
Then the ProtoBuf at "int_field" should be 5
|
41
|
+
Then the ProtoBuf at "int_field" should not be 15
|
42
|
+
|
43
|
+
|
44
|
+
Scenario: Negative Integer
|
45
|
+
When I get the ProtoBuf
|
46
|
+
Then the ProtoBuf at "int_field_2" should be -9
|
47
|
+
Then the ProtoBuf at "int_field_2" should not be -19
|
48
|
+
|
49
|
+
Scenario: Double
|
50
|
+
When I get the ProtoBuf
|
51
|
+
Then the ProtoBuf at "double_field" should be 50.23
|
52
|
+
And the ProtoBuf at "double_field" should be 50.23e0
|
53
|
+
And the ProtoBuf at "double_field" should be 50.23e+0
|
54
|
+
And the ProtoBuf at "double_field" should be 50.23e-0
|
55
|
+
And the ProtoBuf at "double_field" should be 50.23e0
|
56
|
+
And the ProtoBuf at "double_field" should be 50.23e+0
|
57
|
+
And the ProtoBuf at "double_field" should be 50.23e-0
|
58
|
+
And the ProtoBuf at "double_field" should be 5.023e1
|
59
|
+
And the ProtoBuf at "double_field" should be 5.023e+1
|
60
|
+
And the ProtoBuf at "double_field" should be 502.3e-1
|
61
|
+
And the ProtoBuf at "double_field" should be:
|
62
|
+
"""
|
63
|
+
50.23
|
64
|
+
"""
|
65
|
+
|
66
|
+
Then the ProtoBuf at "double_field" should not be -15.45
|
67
|
+
|
68
|
+
Scenario: True
|
69
|
+
When I get the ProtoBuf
|
70
|
+
Then the protobuf at "bool_field" should be true
|
71
|
+
Then the protobuf at "bool_field" should be:
|
72
|
+
"""
|
73
|
+
true
|
74
|
+
"""
|
75
|
+
Then the protobuf at "bool_field" should not be false
|
76
|
+
|
77
|
+
Scenario: False
|
78
|
+
When I get the ProtoBuf
|
79
|
+
Then the protobuf at "bool_field_2" should be false
|
80
|
+
Then the protobuf at "bool_field_2" should be:
|
81
|
+
"""
|
82
|
+
false
|
83
|
+
"""
|
84
|
+
Then the protobuf at "bool_field_2" should not be true
|
85
|
+
|
86
|
+
Scenario: Table format
|
87
|
+
When I get the ProtoBuf
|
88
|
+
Then the protobuf should have the following:
|
89
|
+
| string_field | "foo" |
|
90
|
+
| int_field | 5 |
|
91
|
+
| double_field | 50.23 |
|
92
|
+
| int_field_2 | -9 |
|
93
|
+
| bool_field | true |
|
94
|
+
| bool_field_2 | false |
|
95
|
+
|