poisol 0.1.10 → 0.1.12

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 34bc0f6127f9644eba49c984a2ef64d71e1020ed
4
- data.tar.gz: 899e509e87aa934d351895a465cb2206242decdc
3
+ metadata.gz: ee16b286e243a86f30e87b1de0b27585331c96fa
4
+ data.tar.gz: e8212555a5a9ff5594ff96b16741ca507dee9d43
5
5
  SHA512:
6
- metadata.gz: d310b68c98b9ce80f4f3869b6d4fd140b46e6eedf3d1202661a3f88d53175fa41a287a7fa0921a08885ffd4aecb2883792981e9d907a10ed0c047e5f45662fdd
7
- data.tar.gz: e4e2669aa1bd819a962aebc537b2a1518dbd1c2ad0d9d4725d90a4b2d15705fb36a08d7c72f1ffcffad4da9668344f0ea2d2a6b96acfa2ee4048b869eced1fc6
6
+ metadata.gz: 87e639953ef98746337f5955d66d7c5e8d2100eb88b849032e868d580aa0a37f34ee0ede6fb539f76baf7b124993892c43a9617b7084eb34febe270e689e29ed
7
+ data.tar.gz: a517c74ddf3a0eac9559c6a6fdd9becf7c2be607dc1b45f59a7bad11ff80b010d78a327f2a514b31c029e87c0c89ab4c13346d39e4b3defea05bfe0256154606
@@ -1,6 +1,7 @@
1
+ require 'webrick'
2
+ require 'rest-client'
1
3
  require 'active_support/all'
2
-
3
- Dir["#{File.dirname(__FILE__)}/poisol/**/*.rb"].each { |f| require(f) }
4
+ require 'poisol/all'
4
5
 
5
6
  module Poisol
6
7
  extend self
@@ -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'
@@ -0,0 +1,2 @@
1
+ require_relative 'extensions/hash.rb'
2
+ require_relative 'extensions/webmock_extensions.rb'
@@ -1,7 +1,4 @@
1
- require 'webrick'
2
-
3
-
4
- module Poisol
1
+ module Poisol
5
2
 
6
3
  class ExtendedServer < WEBrick::HTTPServlet::AbstractServlet
7
4
  def do_GET req,res
@@ -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,8 +1,4 @@
1
- require_relative "build_stub"
2
- require_relative "stub_builder_class"
3
- require_relative "stub_builder_instance"
4
-
5
- module Poisol
1
+ module Poisol
6
2
  class StubBuilder
7
3
  include BuildStub
8
4
  include StubInstance
@@ -1,11 +1,6 @@
1
- require_relative "request/query_builder"
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
@@ -0,0 +1,2 @@
1
+ require_relative 'stub_config/stub_config.rb'
2
+ require_relative 'stub_config/stub_config_builder.rb'
@@ -1,5 +1,4 @@
1
- require_relative "stub/stub_builder"
2
- module Poisol
1
+ module Poisol
3
2
  class StubFactory
4
3
  def build folder
5
4
  @folder = folder.chomp '/'
@@ -0,0 +1,3 @@
1
+ require_relative 'stub_mapper/request_matcher.rb'
2
+ require_relative 'stub_mapper/response_mapper.rb'
3
+ require_relative 'stub_mapper/stubs.rb'
@@ -1,6 +1,6 @@
1
1
  module Poisol
2
2
  module RequestMatcher
3
- extend self
3
+ extend self
4
4
 
5
5
  def matches? actual_req,stub_req
6
6
  type_matches?(actual_req,stub_req) &&
@@ -1,5 +1,4 @@
1
- require_relative './request_matcher'
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| Poisol::RequestMatcher.matches? actual_request,stub.request}
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
 
@@ -0,0 +1,3 @@
1
+ require_relative 'utils/file_util.rb'
2
+ require_relative 'utils/logger.rb'
3
+ require_relative 'utils/parse.rb'
@@ -25,11 +25,7 @@ module Parse
25
25
  end
26
26
 
27
27
  def hash_to_concatenated_key_value hash
28
- concatenated_body = ""
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
@@ -0,0 +1,3 @@
1
+ module Poisol
2
+ VERSION = '0.1.12'
3
+ end
@@ -2,7 +2,10 @@ request:
2
2
  url: keyvalue
3
3
  method: post
4
4
  body:
5
- name: "sea"
5
+ name:
6
+ first: sea
7
+ last: gull
6
8
  age: 10
9
+ extra_info: 'none'
7
10
  response:
8
11
  body: '{"hi": 1}'
@@ -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
 
@@ -1,10 +1,9 @@
1
1
  require 'pry'
2
- require "rspec/expectations"
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
  ]
@@ -1,4 +1,3 @@
1
- require_relative "../../lib/poisol/stub_mapper/request_matcher"
2
1
  describe Poisol::RequestMatcher, "request matching" do
3
2
  it "match hashes" do
4
3
  hash1 = {"store_group_id"=>["5008"], "date"=>["2029-12-28"], "pr_discount_percentage"=>["0.00000"]}
@@ -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.10
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: webrick
84
+ name: rest-client
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
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: '0'
96
+ version: 2.0.0
97
97
  - !ruby/object:Gem::Dependency
98
- name: rest-client
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: :development
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: :development
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