test/assertions_test.rb in service_contract-0.4.1 vs test/assertions_test.rb in service_contract-0.5.0
- old
+ new
@@ -63,21 +63,14 @@
assert service, "expect to find a service by version"
protocol = service.protocol("search_param")
endpoint = protocol.endpoint("index")
- # test can be nil
- failure_data = nil
- begin
- assert_endpoint_response([{customer_id: nil, bogus_param: 1}], endpoint)
- rescue Minitest::Assertion => failure
- failure_data = failure
- end
-
- assert !failure_data.nil?
- assert failure_data.to_s.include?("not described in contract: bogus_param")
-
+ bad_data = [
+ {customer_id: nil, bogus_param: 1}
+ ]
+ assert_bad_value(bad_data, endpoint, message: "not described in contract: bogus_param")
end
def test_enum_values
service = SampleService.find(2)
assert service, "expect to find a service by version"
@@ -90,21 +83,60 @@
{token: "anothertoken", provider: "linkedin"}
]
assert_endpoint_response(data, endpoint)
- # test can be nil
bad_data = [
{token: "sometoken", provider: "bad provider"}
]
+ assert_bad_value(bad_data, endpoint)
+ end
+
+ def test_map_values
+ service = SampleService.find(2)
+ assert service, "expect to find a service by version"
+
+ protocol = service.protocol("logging")
+ endpoint = protocol.endpoint("index")
+
+ data = [
+ {
+ data: {
+ foo: 1,
+ bar: 2,
+ },
+ data2: {
+ qwer: nil,
+ asdf: 1,
+ zxcv: [2,3]
+ }
+ }
+ ]
+
+ assert_endpoint_response(data, endpoint)
+
+ bad_data = [
+ {
+ data: {
+ foo: "asdf"
+ },
+ data2: {}
+ }
+ ]
+ assert_bad_value(bad_data, endpoint, message: "to be one of")
+ end
+
+ private
+
+ def assert_bad_value(bad_data, endpoint, message: "is not an allowed value")
failure_data = nil
begin
assert_endpoint_response(bad_data, endpoint)
rescue Minitest::Assertion => failure
failure_data = failure
end
assert !failure_data.nil?
- assert failure_data.to_s.include?("is not an allowed value"), failure_data
+ assert failure_data.to_s.include?(message), failure_data
end
end