poisol 0.1.10 → 0.1.12
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 +4 -4
- data/lib/poisol.rb +3 -2
- data/lib/poisol/all.rb +9 -0
- data/lib/poisol/extensions.rb +2 -0
- data/lib/poisol/server.rb +1 -4
- data/lib/poisol/stub.rb +13 -0
- data/lib/poisol/stub/stub_builder.rb +1 -5
- data/lib/poisol/stub/stub_builder_class.rb +2 -7
- data/lib/poisol/stub_config.rb +2 -0
- data/lib/poisol/stub_factory.rb +1 -2
- data/lib/poisol/stub_mapper.rb +3 -0
- data/lib/poisol/stub_mapper/request_matcher.rb +1 -1
- data/lib/poisol/stub_mapper/stubs.rb +6 -7
- data/lib/poisol/utils.rb +3 -0
- data/lib/poisol/utils/parse.rb +1 -5
- data/lib/poisol/version.rb +3 -0
- data/spec/data/main/key_value/key_value.yml +4 -1
- data/spec/functional/key_value/implicit_inclusion_spec.rb +11 -5
- data/spec/spec_helper.rb +4 -5
- data/spec/unit/request_matcher_spec.rb +0 -1
- data/spec/unit/utils/parse_spec.rb +19 -0
- metadata +21 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ee16b286e243a86f30e87b1de0b27585331c96fa
|
4
|
+
data.tar.gz: e8212555a5a9ff5594ff96b16741ca507dee9d43
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 87e639953ef98746337f5955d66d7c5e8d2100eb88b849032e868d580aa0a37f34ee0ede6fb539f76baf7b124993892c43a9617b7084eb34febe270e689e29ed
|
7
|
+
data.tar.gz: a517c74ddf3a0eac9559c6a6fdd9becf7c2be607dc1b45f59a7bad11ff80b010d78a327f2a514b31c029e87c0c89ab4c13346d39e4b3defea05bfe0256154606
|
data/lib/poisol.rb
CHANGED
data/lib/poisol/all.rb
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
require_relative 'extensions.rb'
|
2
|
+
require_relative 'utils.rb'
|
3
|
+
require_relative 'domain.rb'
|
4
|
+
require_relative 'server.rb'
|
5
|
+
require_relative 'stub_factory.rb'
|
6
|
+
require_relative 'stub_config.rb'
|
7
|
+
require_relative 'stub.rb'
|
8
|
+
require_relative 'stub_mapper.rb'
|
9
|
+
require_relative 'version.rb'
|
data/lib/poisol/server.rb
CHANGED
data/lib/poisol/stub.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
require_relative 'stub/request/query_builder.rb'
|
2
|
+
require_relative 'stub/request/request_body_builder.rb'
|
3
|
+
require_relative 'stub/request/url_builder.rb'
|
4
|
+
|
5
|
+
require_relative 'stub/response/array_response_body.rb'
|
6
|
+
require_relative 'stub/response/response_body_builder.rb'
|
7
|
+
require_relative 'stub/response/status_builder.rb'
|
8
|
+
|
9
|
+
require_relative 'stub/build_stub.rb'
|
10
|
+
require_relative 'stub/stub.rb'
|
11
|
+
require_relative 'stub/stub_builder_class.rb'
|
12
|
+
require_relative 'stub/stub_builder_instance.rb'
|
13
|
+
require_relative 'stub/stub_builder.rb'
|
@@ -1,11 +1,6 @@
|
|
1
|
-
|
2
|
-
require_relative "request/request_body_builder"
|
3
|
-
require_relative "request/url_builder"
|
4
|
-
require_relative "response/response_body_builder"
|
5
|
-
require_relative "response/status_builder"
|
6
|
-
module Poisol
|
1
|
+
module Poisol
|
7
2
|
module StubClassBuilder
|
8
|
-
include RequestBodyBuilder
|
3
|
+
include RequestBodyBuilder
|
9
4
|
include ResponseBodyBuilder
|
10
5
|
include UrlBuilder
|
11
6
|
include QueryBuilder
|
data/lib/poisol/stub_factory.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
|
2
|
-
module Poisol
|
1
|
+
module Poisol
|
3
2
|
module Stubs
|
4
3
|
extend self
|
5
4
|
|
@@ -7,9 +6,9 @@ module Poisol
|
|
7
6
|
@stubs
|
8
7
|
end
|
9
8
|
|
10
|
-
def add stub
|
9
|
+
def add stub
|
11
10
|
@stubs = [] if @stubs.blank?
|
12
|
-
@stubs << stub
|
11
|
+
@stubs << stub
|
13
12
|
end
|
14
13
|
|
15
14
|
def reset
|
@@ -18,14 +17,14 @@ module Poisol
|
|
18
17
|
|
19
18
|
def get_match actual_request
|
20
19
|
return nil if @stubs.blank?
|
21
|
-
matches = @stubs.select{|stub|
|
22
|
-
return nil unless matches.present?
|
20
|
+
matches = @stubs.select{|stub| RequestMatcher.matches? actual_request,stub.request}
|
21
|
+
return nil unless matches.present?
|
23
22
|
match = matches.last
|
24
23
|
match.called_count = match.called_count + 1
|
25
24
|
return match
|
26
25
|
end
|
27
26
|
|
28
|
-
def unused
|
27
|
+
def unused
|
29
28
|
@stubs.select{|stub| stub.called_count ==0}
|
30
29
|
end
|
31
30
|
|
data/lib/poisol/utils.rb
ADDED
data/lib/poisol/utils/parse.rb
CHANGED
@@ -25,11 +25,7 @@ module Parse
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def hash_to_concatenated_key_value hash
|
28
|
-
|
29
|
-
hash.each do |key,value|
|
30
|
-
concatenated_body = concatenated_body + "#{key}=#{value}&"
|
31
|
-
end
|
32
|
-
concatenated_body.chomp('&')
|
28
|
+
RestClient::Utils.encode_query_string hash
|
33
29
|
end
|
34
30
|
|
35
31
|
end
|
@@ -2,19 +2,25 @@ describe Poisol::Stub, "#key_value" do
|
|
2
2
|
|
3
3
|
it "default request" do
|
4
4
|
KeyValue.new.build()
|
5
|
-
response = RestClient.post "http://localhost:3030/keyvalue","name=sea&age=10"
|
5
|
+
response = RestClient.post "http://localhost:3030/keyvalue","name[first]=sea&name[last]=gull&age=10&extra_info=none"
|
6
6
|
expect(response.body).to eq({"hi"=>1}.to_json)
|
7
7
|
end
|
8
8
|
|
9
9
|
it "partial dynamic request" do
|
10
|
-
KeyValue.new.by_name("ram").build()
|
11
|
-
response = RestClient.post "http://localhost:3030/keyvalue","name=ram&age=10"
|
10
|
+
KeyValue.new.by_name({:first => "ram", :last => "kumar"}).build()
|
11
|
+
response = RestClient.post "http://localhost:3030/keyvalue","name[first]=ram&name[last]=kumar&age=10&extra_info=none"
|
12
12
|
expect(response.body).to eq({"hi"=>1}.to_json)
|
13
13
|
end
|
14
14
|
|
15
15
|
it "dynamic request" do
|
16
|
-
KeyValue.new.by_name("ram").by_age(11).build()
|
17
|
-
response = RestClient.post "http://localhost:3030/keyvalue","name=ram&age=11"
|
16
|
+
KeyValue.new.by_name({:first => "ram", :last => "raj"}).by_age(11).build()
|
17
|
+
response = RestClient.post "http://localhost:3030/keyvalue","name[first]=ram&name[last]=raj&age=11&extra_info=none"
|
18
|
+
expect(response.body).to eq({"hi"=>1}.to_json)
|
19
|
+
end
|
20
|
+
|
21
|
+
it "dynamic request containing url encoded json data" do
|
22
|
+
KeyValue.new.by_name({:first => "ram", :last => "raj"}).by_age(11).by_extra_info('{"father": "sridhar", "mother": "sita"}').build()
|
23
|
+
response = RestClient.post "http://localhost:3030/keyvalue","name[first]=ram&name[last]=raj&age=11&extra_info=%7B%22father%22%3A+%22sridhar%22%2C+%22mother%22%3A+%22sita%22%7D"
|
18
24
|
expect(response.body).to eq({"hi"=>1}.to_json)
|
19
25
|
end
|
20
26
|
|
data/spec/spec_helper.rb
CHANGED
@@ -1,10 +1,9 @@
|
|
1
1
|
require 'pry'
|
2
|
-
require
|
3
|
-
require 'rest_client'
|
4
|
-
|
5
|
-
require_relative '../lib/poisol'
|
6
|
-
|
2
|
+
require 'rspec/expectations'
|
7
3
|
require 'simplecov'
|
4
|
+
require 'rest-client'
|
5
|
+
require 'poisol'
|
6
|
+
|
8
7
|
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
|
9
8
|
SimpleCov::Formatter::HTMLFormatter
|
10
9
|
]
|
@@ -0,0 +1,19 @@
|
|
1
|
+
describe Parse, 'parses hashes, yaml and much more' do
|
2
|
+
it 'simple hash to concatenated key value' do
|
3
|
+
sample = {:id => 1,:name => 'Arun'}
|
4
|
+
concatenated_key_value = Parse.hash_to_concatenated_key_value sample
|
5
|
+
expect(concatenated_key_value).to eq('id=1&name=Arun')
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'nested hash with json data to concatenated key value' do
|
9
|
+
sample = {:id => 1, :name => { :first => 'Arun', :last => 'S'}}
|
10
|
+
concatenated_key_value = Parse.hash_to_concatenated_key_value sample
|
11
|
+
expect(concatenated_key_value).to eq('id=1&name[first]=Arun&name[last]=S')
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'hash with json data to concatenated key value' do
|
15
|
+
sample = {:data => '{"id": 10, "name": {"first": "Arun", "last": "S"}}'}
|
16
|
+
concatenated_key_value = Parse.hash_to_concatenated_key_value sample
|
17
|
+
expect(concatenated_key_value).to eq('data=%7B%22id%22%3A+10%2C+%22name%22%3A+%7B%22first%22%3A+%22Arun%22%2C+%22last%22%3A+%22S%22%7D%7D')
|
18
|
+
end
|
19
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: poisol
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Deepak
|
@@ -81,27 +81,27 @@ dependencies:
|
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: rest-client
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - "
|
87
|
+
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
90
|
-
type: :
|
89
|
+
version: 2.0.0
|
90
|
+
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - "
|
94
|
+
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
96
|
+
version: 2.0.0
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
98
|
+
name: webrick
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '0'
|
104
|
-
type: :
|
104
|
+
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
@@ -112,14 +112,14 @@ dependencies:
|
|
112
112
|
name: activesupport
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- - "
|
115
|
+
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: 4.2.0
|
118
|
-
type: :
|
118
|
+
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- - "
|
122
|
+
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: 4.2.0
|
125
125
|
description: HTTP stub as DSL
|
@@ -130,10 +130,13 @@ extra_rdoc_files: []
|
|
130
130
|
files:
|
131
131
|
- README.md
|
132
132
|
- lib/poisol.rb
|
133
|
+
- lib/poisol/all.rb
|
133
134
|
- lib/poisol/domain.rb
|
135
|
+
- lib/poisol/extensions.rb
|
134
136
|
- lib/poisol/extensions/hash.rb
|
135
137
|
- lib/poisol/extensions/webmock_extensions.rb
|
136
138
|
- lib/poisol/server.rb
|
139
|
+
- lib/poisol/stub.rb
|
137
140
|
- lib/poisol/stub/build_stub.rb
|
138
141
|
- lib/poisol/stub/request/query_builder.rb
|
139
142
|
- lib/poisol/stub/request/request_body_builder.rb
|
@@ -145,15 +148,19 @@ files:
|
|
145
148
|
- lib/poisol/stub/stub_builder.rb
|
146
149
|
- lib/poisol/stub/stub_builder_class.rb
|
147
150
|
- lib/poisol/stub/stub_builder_instance.rb
|
151
|
+
- lib/poisol/stub_config.rb
|
148
152
|
- lib/poisol/stub_config/stub_config.rb
|
149
153
|
- lib/poisol/stub_config/stub_config_builder.rb
|
150
154
|
- lib/poisol/stub_factory.rb
|
155
|
+
- lib/poisol/stub_mapper.rb
|
151
156
|
- lib/poisol/stub_mapper/request_matcher.rb
|
152
157
|
- lib/poisol/stub_mapper/response_mapper.rb
|
153
158
|
- lib/poisol/stub_mapper/stubs.rb
|
159
|
+
- lib/poisol/utils.rb
|
154
160
|
- lib/poisol/utils/file_util.rb
|
155
161
|
- lib/poisol/utils/logger.rb
|
156
162
|
- lib/poisol/utils/parse.rb
|
163
|
+
- lib/poisol/version.rb
|
157
164
|
- spec/data/domain/first/domain.yml
|
158
165
|
- spec/data/domain/first/first.yml
|
159
166
|
- spec/data/domain/second/domain.yml
|
@@ -193,6 +200,7 @@ files:
|
|
193
200
|
- spec/unit/request_matcher_spec.rb
|
194
201
|
- spec/unit/stub_spec.rb
|
195
202
|
- spec/unit/stubs_spec.rb
|
203
|
+
- spec/unit/utils/parse_spec.rb
|
196
204
|
homepage: https://github.com/paramadeep/poisol
|
197
205
|
licenses:
|
198
206
|
- MIT
|
@@ -257,3 +265,4 @@ test_files:
|
|
257
265
|
- spec/unit/request_matcher_spec.rb
|
258
266
|
- spec/unit/stub_spec.rb
|
259
267
|
- spec/unit/stubs_spec.rb
|
268
|
+
- spec/unit/utils/parse_spec.rb
|