mockserver-client 5.3.0 → 6.0.0

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.
Files changed (96) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +2 -5
  3. data/README.md +88 -96
  4. data/lib/mockserver/client.rb +518 -0
  5. data/lib/mockserver/errors.rb +18 -0
  6. data/lib/mockserver/forward_chain_expectation.rb +117 -0
  7. data/lib/mockserver/models.rb +1507 -0
  8. data/lib/mockserver/version.rb +5 -0
  9. data/lib/mockserver/websocket_client.rb +353 -0
  10. data/lib/mockserver-client.rb +8 -64
  11. data/mockserver-client.gemspec +35 -44
  12. metadata +37 -256
  13. data/Gemfile.lock +0 -79
  14. data/Rakefile +0 -10
  15. data/docs/Body.md +0 -7
  16. data/docs/BodyWithContentType.md +0 -7
  17. data/docs/ConnectionOptions.md +0 -12
  18. data/docs/ControlApi.md +0 -269
  19. data/docs/Delay.md +0 -9
  20. data/docs/Expectation.md +0 -7
  21. data/docs/ExpectationApi.md +0 -51
  22. data/docs/Expectations.md +0 -7
  23. data/docs/HttpClassCallback.md +0 -8
  24. data/docs/HttpError.md +0 -10
  25. data/docs/HttpForward.md +0 -11
  26. data/docs/HttpObjectCallback.md +0 -8
  27. data/docs/HttpOverrideForwardedRequest.md +0 -9
  28. data/docs/HttpRequest.md +0 -15
  29. data/docs/HttpResponse.md +0 -14
  30. data/docs/HttpTemplate.md +0 -10
  31. data/docs/KeyToMultiValue.md +0 -7
  32. data/docs/KeyToValue.md +0 -7
  33. data/docs/Ports.md +0 -8
  34. data/docs/TimeToLive.md +0 -10
  35. data/docs/Times.md +0 -9
  36. data/docs/Verification.md +0 -9
  37. data/docs/VerificationSequence.md +0 -8
  38. data/docs/VerificationTimes.md +0 -9
  39. data/docs/VerifyApi.md +0 -94
  40. data/lib/mockserver-client/api/control_api.rb +0 -316
  41. data/lib/mockserver-client/api/expectation_api.rb +0 -73
  42. data/lib/mockserver-client/api/verify_api.rb +0 -127
  43. data/lib/mockserver-client/api_client.rb +0 -388
  44. data/lib/mockserver-client/api_error.rb +0 -38
  45. data/lib/mockserver-client/configuration.rb +0 -202
  46. data/lib/mockserver-client/models/body.rb +0 -174
  47. data/lib/mockserver-client/models/body_with_content_type.rb +0 -174
  48. data/lib/mockserver-client/models/connection_options.rb +0 -219
  49. data/lib/mockserver-client/models/delay.rb +0 -192
  50. data/lib/mockserver-client/models/expectation.rb +0 -174
  51. data/lib/mockserver-client/models/expectations.rb +0 -174
  52. data/lib/mockserver-client/models/http_class_callback.rb +0 -183
  53. data/lib/mockserver-client/models/http_error.rb +0 -201
  54. data/lib/mockserver-client/models/http_forward.rb +0 -244
  55. data/lib/mockserver-client/models/http_object_callback.rb +0 -183
  56. data/lib/mockserver-client/models/http_override_forwarded_request.rb +0 -192
  57. data/lib/mockserver-client/models/http_request.rb +0 -246
  58. data/lib/mockserver-client/models/http_response.rb +0 -237
  59. data/lib/mockserver-client/models/http_template.rb +0 -235
  60. data/lib/mockserver-client/models/key_to_multi_value.rb +0 -174
  61. data/lib/mockserver-client/models/key_to_value.rb +0 -174
  62. data/lib/mockserver-client/models/ports.rb +0 -185
  63. data/lib/mockserver-client/models/time_to_live.rb +0 -235
  64. data/lib/mockserver-client/models/times.rb +0 -192
  65. data/lib/mockserver-client/models/verification.rb +0 -192
  66. data/lib/mockserver-client/models/verification_sequence.rb +0 -185
  67. data/lib/mockserver-client/models/verification_times.rb +0 -192
  68. data/lib/mockserver-client/version.rb +0 -15
  69. data/spec/api/control_api_spec.rb +0 -102
  70. data/spec/api/expectation_api_spec.rb +0 -46
  71. data/spec/api/verify_api_spec.rb +0 -57
  72. data/spec/api_client_spec.rb +0 -226
  73. data/spec/configuration_spec.rb +0 -42
  74. data/spec/models/body_spec.rb +0 -35
  75. data/spec/models/body_with_content_type_spec.rb +0 -35
  76. data/spec/models/connection_options_spec.rb +0 -65
  77. data/spec/models/delay_spec.rb +0 -47
  78. data/spec/models/expectation_spec.rb +0 -35
  79. data/spec/models/expectations_spec.rb +0 -35
  80. data/spec/models/http_class_callback_spec.rb +0 -41
  81. data/spec/models/http_error_spec.rb +0 -53
  82. data/spec/models/http_forward_spec.rb +0 -63
  83. data/spec/models/http_object_callback_spec.rb +0 -41
  84. data/spec/models/http_override_forwarded_request_spec.rb +0 -47
  85. data/spec/models/http_request_spec.rb +0 -83
  86. data/spec/models/http_response_spec.rb +0 -77
  87. data/spec/models/http_template_spec.rb +0 -57
  88. data/spec/models/key_to_multi_value_spec.rb +0 -35
  89. data/spec/models/key_to_value_spec.rb +0 -35
  90. data/spec/models/ports_spec.rb +0 -41
  91. data/spec/models/time_to_live_spec.rb +0 -57
  92. data/spec/models/times_spec.rb +0 -47
  93. data/spec/models/verification_sequence_spec.rb +0 -41
  94. data/spec/models/verification_spec.rb +0 -47
  95. data/spec/models/verification_times_spec.rb +0 -47
  96. data/spec/spec_helper.rb +0 -111
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 78cecf99392693da9d10a7e638e1cc0b6c2ef499
4
- data.tar.gz: 405fb05b09c13e62df825c3c9badea9f9be3ec97
2
+ SHA256:
3
+ metadata.gz: 52c92809897fcdfe317afdab740419e5bef114b46482df4a9756821916bd4a73
4
+ data.tar.gz: 8b8ee1a6a5c341edecbe70a90ccb1dda4c481162eca2f30e83ee121beaa656d5
5
5
  SHA512:
6
- metadata.gz: 83e4ac08844b4dfa0bc2edee4f8fab1b5f8c07826e7b8af644275d4ca71c3a2f573854d064baf996a071d6e9a166bca2eda6ddd1204c7993708ac7f0616bb737
7
- data.tar.gz: 7ebefc74dba04037c95fb072c8fd4bd0faa8a7bdf81981205ae11e82993b3b0ac9833c64ef9f254d7ab273bc224e7f58e5ed7212e933caa8c097167c95cb4b4d
6
+ metadata.gz: 476994411a429882a93e0fe6852527b14ac9ce60ffc2ac328f0536eef2adee69f7c2ce8061bc8dfda7cc32869fe0e227ed3f5e979a3a1e1513c1ae3540be2f27
7
+ data.tar.gz: 94828363b6159101e0288c15b604e7e9acf19716f67efb5edf56f591a79946aaf987ed2c32f079f421d3ad74045d61fa0aac62b93820d162df3299b284108cd7
data/Gemfile CHANGED
@@ -1,8 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  gemspec
4
-
5
- group :development, :test do
6
- gem 'rake', '~> 12.0.0'
7
- gem 'pry-byebug'
8
- end
data/README.md CHANGED
@@ -1,120 +1,112 @@
1
- # mockserver-client
1
+ # MockServer Ruby Client
2
2
 
3
- MockServer - the Ruby gem for the Mock Server API
4
-
5
- MockServer enables easy mocking of any system you integrate with via HTTP or HTTPS with clients written in Java, JavaScript and Ruby and a simple REST API (as shown below).
6
-
7
- MockServer Proxy is a proxy that introspects all proxied traffic including encrypted SSL traffic and supports Port Forwarding, Web Proxying (i.e. HTTP proxy), HTTPS Tunneling Proxying (using HTTP CONNECT) and SOCKS Proxying (i.e. dynamic port forwarding).
8
-
9
- Both MockServer and the MockServer Proxy record all received requests so that it is possible to verify exactly what requests have been sent by the system under test.
10
-
11
- This SDK is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
12
-
13
- - API version: 5.3.0
14
- - Package version: 5.3.0
15
- - Build package: org.openapitools.codegen.languages.RubyClientCodegen
3
+ Hand-written Ruby client for [MockServer](https://www.mock-server.com) with full REST API, fluent builder DSL, and WebSocket callback support.
16
4
 
17
5
  ## Installation
18
6
 
19
- ### Build a gem
20
-
21
- To build the Ruby code into a gem:
7
+ Add to your Gemfile:
22
8
 
23
- ```shell
24
- gem build mockserver-client.gemspec
9
+ ```ruby
10
+ gem 'mockserver-client', '~> 5.16'
25
11
  ```
26
12
 
27
- Then either install the gem locally:
13
+ Or install directly:
28
14
 
29
- ```shell
30
- gem install ./mockserver-client-5.3.0.gem
15
+ ```bash
16
+ gem install mockserver-client
31
17
  ```
32
- (for development, run `gem install --dev ./mockserver-client-5.3.0.gem` to install the development dependencies)
33
-
34
- or publish the gem to a gem hosting service, e.g. [RubyGems](https://rubygems.org/).
35
-
36
- Finally add this to the Gemfile:
37
18
 
38
- gem 'mockserver-client', '~> 5.3.0'
19
+ ## Quick Start
39
20
 
40
- ### Install from Git
21
+ ```ruby
22
+ require 'mockserver-client'
41
23
 
42
- If the Ruby gem is hosted at a git repository: https://github.com/GIT_USER_ID/GIT_REPO_ID, then add the following in the Gemfile:
24
+ # Create a client
25
+ client = MockServer::Client.new('localhost', 1080)
26
+
27
+ # Set up an expectation using the fluent API
28
+ client.when(
29
+ MockServer::HttpRequest.request(path: '/hello')
30
+ .with_method('GET')
31
+ ).respond(
32
+ MockServer::HttpResponse.response(body: 'world', status_code: 200)
33
+ )
34
+
35
+ # Verify a request was received
36
+ client.verify(
37
+ MockServer::HttpRequest.request(path: '/hello'),
38
+ times: MockServer::VerificationTimes.at_least(1)
39
+ )
40
+
41
+ # Clean up
42
+ client.reset
43
+ client.close
44
+ ```
43
45
 
44
- gem 'mockserver-client', :git => 'https://github.com/GIT_USER_ID/GIT_REPO_ID.git'
46
+ ## Block Form
45
47
 
46
- ### Include the Ruby code directly
48
+ ```ruby
49
+ MockServer::Client.new('localhost', 1080) do |client|
50
+ client.when(
51
+ MockServer::HttpRequest.request(path: '/api/test')
52
+ ).respond(
53
+ MockServer::HttpResponse.response(body: '{"status":"ok"}', status_code: 200)
54
+ )
55
+ end
56
+ # Client is automatically closed when the block exits
57
+ ```
47
58
 
48
- Include the Ruby code directly using `-I` as follows:
59
+ ## WebSocket Callbacks
49
60
 
50
- ```shell
51
- ruby -Ilib script.rb
61
+ ```ruby
62
+ client = MockServer::Client.new('localhost', 1080)
63
+
64
+ # Response callback - dynamically generate responses
65
+ client.mock_with_callback(
66
+ MockServer::HttpRequest.request(path: '/dynamic'),
67
+ ->(request) {
68
+ MockServer::HttpResponse.new(
69
+ status_code: 200,
70
+ body: "Echo: #{request.path}"
71
+ )
72
+ }
73
+ )
74
+
75
+ # Forward callback - modify requests before forwarding
76
+ client.mock_with_forward_callback(
77
+ MockServer::HttpRequest.request(path: '/proxy'),
78
+ ->(request) {
79
+ request.with_header('X-Proxied', 'true')
80
+ }
81
+ )
82
+
83
+ client.close
52
84
  ```
53
85
 
54
- ## Getting Started
86
+ ## Models
55
87
 
56
- Please follow the [installation](#installation) procedure and then run the following code:
57
- ```ruby
58
- # Load the gem
59
- require 'mockserver-client'
88
+ All 25 domain model classes are available under the `MockServer` module:
60
89
 
61
- api_instance = MockServer::ControlApi.new
62
- ports = MockServer::Ports.new # Ports | list of ports to bind to, where 0 indicates dynamically bind to any available port
90
+ - `Delay`, `Times`, `TimeToLive`
91
+ - `KeyToMultiValue`, `Body`, `SocketAddress`
92
+ - `HttpRequest`, `HttpResponse`, `HttpForward`, `HttpTemplate`
93
+ - `HttpClassCallback`, `HttpObjectCallback`, `HttpError`
94
+ - `HttpOverrideForwardedRequest`, `HttpRequestAndHttpResponse`
95
+ - `ConnectionOptions`
96
+ - `Expectation`, `ExpectationId`
97
+ - `OpenAPIDefinition`, `OpenAPIExpectation`
98
+ - `Verification`, `VerificationSequence`, `VerificationTimes`
99
+ - `Ports`
100
+ - `RequestDefinition` (alias for `HttpRequest`)
63
101
 
64
- begin
65
- #bind additional listening ports
66
- result = api_instance.bind_put(ports)
67
- p result
68
- rescue MockServer::ApiError => e
69
- puts "Exception when calling ControlApi->bind_put: #{e}"
70
- end
102
+ ## License
71
103
 
72
- ```
104
+ Apache-2.0
105
+
106
+ ## AI Assistant Integration
73
107
 
74
- ## Documentation for API Endpoints
75
-
76
- All URIs are relative to *http://localhost:1080*
77
-
78
- Class | Method | HTTP request | Description
79
- ------------ | ------------- | ------------- | -------------
80
- *MockServer::ControlApi* | [**bind_put**](docs/ControlApi.md#bind_put) | **PUT** /bind | bind additional listening ports
81
- *MockServer::ControlApi* | [**clear_put**](docs/ControlApi.md#clear_put) | **PUT** /clear | clears expectations and recorded requests that match the request matcher
82
- *MockServer::ControlApi* | [**reset_put**](docs/ControlApi.md#reset_put) | **PUT** /reset | clears all expectations and recorded requests
83
- *MockServer::ControlApi* | [**retrieve_put**](docs/ControlApi.md#retrieve_put) | **PUT** /retrieve | retrieve recorded requests, active expectations, recorded expectations or log messages
84
- *MockServer::ControlApi* | [**status_put**](docs/ControlApi.md#status_put) | **PUT** /status | return listening ports
85
- *MockServer::ControlApi* | [**stop_put**](docs/ControlApi.md#stop_put) | **PUT** /stop | stop running process
86
- *MockServer::ExpectationApi* | [**expectation_put**](docs/ExpectationApi.md#expectation_put) | **PUT** /expectation | create expectation
87
- *MockServer::VerifyApi* | [**verify_put**](docs/VerifyApi.md#verify_put) | **PUT** /verify | verify a request has been received a specific number of times
88
- *MockServer::VerifyApi* | [**verify_sequence_put**](docs/VerifyApi.md#verify_sequence_put) | **PUT** /verifySequence | verify a sequence of request has been received in the specific order
89
-
90
-
91
- ## Documentation for Models
92
-
93
- - [MockServer::Body](docs/Body.md)
94
- - [MockServer::BodyWithContentType](docs/BodyWithContentType.md)
95
- - [MockServer::ConnectionOptions](docs/ConnectionOptions.md)
96
- - [MockServer::Delay](docs/Delay.md)
97
- - [MockServer::Expectation](docs/Expectation.md)
98
- - [MockServer::Expectations](docs/Expectations.md)
99
- - [MockServer::HttpClassCallback](docs/HttpClassCallback.md)
100
- - [MockServer::HttpError](docs/HttpError.md)
101
- - [MockServer::HttpForward](docs/HttpForward.md)
102
- - [MockServer::HttpObjectCallback](docs/HttpObjectCallback.md)
103
- - [MockServer::HttpOverrideForwardedRequest](docs/HttpOverrideForwardedRequest.md)
104
- - [MockServer::HttpRequest](docs/HttpRequest.md)
105
- - [MockServer::HttpResponse](docs/HttpResponse.md)
106
- - [MockServer::HttpTemplate](docs/HttpTemplate.md)
107
- - [MockServer::KeyToMultiValue](docs/KeyToMultiValue.md)
108
- - [MockServer::KeyToValue](docs/KeyToValue.md)
109
- - [MockServer::Ports](docs/Ports.md)
110
- - [MockServer::TimeToLive](docs/TimeToLive.md)
111
- - [MockServer::Times](docs/Times.md)
112
- - [MockServer::Verification](docs/Verification.md)
113
- - [MockServer::VerificationSequence](docs/VerificationSequence.md)
114
- - [MockServer::VerificationTimes](docs/VerificationTimes.md)
115
-
116
-
117
- ## Documentation for Authorization
118
-
119
- All endpoints do not require authorization.
108
+ MockServer includes a built-in [MCP](https://modelcontextprotocol.io) (Model Context Protocol) server that enables AI coding assistants to create expectations, verify requests, and debug HTTP traffic programmatically.
120
109
 
110
+ - **MCP Endpoint:** `http://localhost:1080/mockserver/mcp`
111
+ - **AI Documentation:** [llms.txt](https://www.mock-server.com/llms.txt)
112
+ - **Setup Guide:** [AI Integration](https://www.mock-server.com/mock_server/ai_mcp_setup.html)