dock_test 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/config.ru +12 -9
- data/dock_test.gemspec +1 -0
- data/lib/dock_test/assertions.rb +7 -0
- data/lib/dock_test/methods.rb +0 -4
- data/lib/dock_test/version.rb +1 -1
- data/lib/dock_test.rb +1 -0
- data/schemas/response.schema.xsd +9 -0
- data/test/dock_test/test_assertions.rb +4 -0
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9fd7c52a4f3ff1192ca1f047e69de6ab688d7fb9
|
4
|
+
data.tar.gz: b17880837bbcd72a529964142e80cdf108f105aa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1a8514b2ee554a0cdd1b2712fafbc9b207abeceaa8c0478ff7fd190d872c029ab6f4d3cfb071b9defc8a2eae71d56d90eee34bb506014f1a5b83d6e875597c22
|
7
|
+
data.tar.gz: 8c8708433f41f3b1d0723831b06ee3fef458da1d24efea1e397897c46210fe369a9fe48c66f4d3e7995ad00366dc9c2fba2721b7d1844be728e00384a2998f9d
|
data/Gemfile
CHANGED
data/config.ru
CHANGED
@@ -1,16 +1,19 @@
|
|
1
1
|
require 'rack'
|
2
2
|
require 'json'
|
3
3
|
app = Proc.new do |env|
|
4
|
+
if env['HTTP_CONTENT_TYPE'] == 'application/json'
|
5
|
+
request_json = {
|
6
|
+
verb: env["REQUEST_METHOD"],
|
7
|
+
uri: env["REQUEST_URI"],
|
8
|
+
body: env["rack.input"].read,
|
9
|
+
protcol: env["SERVER_PROTOCOL"],
|
10
|
+
headers: Hash[env.select {|k, v| k.start_with?("HTTP_") }.map {|k, v| [k[5..-1], v] }]
|
11
|
+
}.to_json
|
4
12
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
protcol: env["SERVER_PROTOCOL"],
|
10
|
-
headers: Hash[env.select {|k, v| k.start_with?("HTTP_") }.map {|k, v| [k[5..-1], v] }]
|
11
|
-
}.to_json
|
12
|
-
|
13
|
-
[200, {'Content-Type' => "application/json", 'Content-Length' => request_json.length.to_s}, [request_json]]
|
13
|
+
[200, {'Content-Type' => "application/json", 'Content-Length' => request_json.length.to_s}, [request_json]]
|
14
|
+
else
|
15
|
+
[200, {'Content-Type' => "application/xml"}, ['<foo><bar>baz</bar></foo>']]
|
16
|
+
end
|
14
17
|
end
|
15
18
|
|
16
19
|
run app
|
data/dock_test.gemspec
CHANGED
@@ -20,6 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.add_dependency 'multi_json'
|
21
21
|
spec.add_dependency 'rack'
|
22
22
|
spec.add_dependency 'json-schema'
|
23
|
+
spec.add_dependency 'nokogiri'
|
23
24
|
spec.add_dependency 'oauth'
|
24
25
|
spec.add_development_dependency "bundler", "~> 1.6"
|
25
26
|
spec.add_development_dependency "rake"
|
data/lib/dock_test/assertions.rb
CHANGED
@@ -21,4 +21,11 @@ module Minitest::Assertions
|
|
21
21
|
schema = File.open(schema_path).read
|
22
22
|
assert JSON::Validator.validate(schema, last_response.body), "The actual response does not match the schema defined in #{schema_path}"
|
23
23
|
end
|
24
|
+
|
25
|
+
def assert_response_xml_schema(schema_path)
|
26
|
+
schema = ::Nokogiri::XML::Schema(File.read(schema_path))
|
27
|
+
document = ::Nokogiri::XML(last_response.body)
|
28
|
+
assert schema.valid?(document), "The actual response does not match the schema defined in #{schema_path}"
|
29
|
+
end
|
30
|
+
|
24
31
|
end
|
data/lib/dock_test/methods.rb
CHANGED
data/lib/dock_test/version.rb
CHANGED
data/lib/dock_test.rb
CHANGED
@@ -0,0 +1,9 @@
|
|
1
|
+
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
2
|
+
<xs:element name="foo">
|
3
|
+
<xs:complexType>
|
4
|
+
<xs:sequence>
|
5
|
+
<xs:element type="xs:string" name="bar" minOccurs="1"/>
|
6
|
+
</xs:sequence>
|
7
|
+
</xs:complexType>
|
8
|
+
</xs:element>
|
9
|
+
</xs:schema>
|
@@ -30,4 +30,8 @@ class TestAssertions < Minitest::Test
|
|
30
30
|
assert_response_json_schema 'schemas/response.schema.json'
|
31
31
|
end
|
32
32
|
|
33
|
+
def test_assert_response_xml_schema_method
|
34
|
+
get '/path?foo=bar', {a: :b}, {'CONTENT_TYPE' => 'application/xml'}
|
35
|
+
assert_response_xml_schema 'schemas/response.schema.xsd'
|
36
|
+
end
|
33
37
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dock_test
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jack Xu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-08-
|
11
|
+
date: 2014-08-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: multi_json
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
version: '0'
|
53
53
|
prerelease: false
|
54
54
|
type: :runtime
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: nokogiri
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
requirement: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - '>='
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0'
|
67
|
+
prerelease: false
|
68
|
+
type: :runtime
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: oauth
|
57
71
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -116,6 +130,7 @@ files:
|
|
116
130
|
- lib/dock_test/methods.rb
|
117
131
|
- lib/dock_test/version.rb
|
118
132
|
- schemas/response.schema.json
|
133
|
+
- schemas/response.schema.xsd
|
119
134
|
- test/dock_test/test_assertions.rb
|
120
135
|
- test/dock_test/test_methods.rb
|
121
136
|
- test/test_helper.rb
|