Skip to content

Commit 96d2e20

Browse files
committed
deploy: f808469
1 parent 6bfc651 commit 96d2e20

File tree

3 files changed

+91
-1
lines changed

3 files changed

+91
-1
lines changed

Components/04-wiremock/index.html

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -471,6 +471,30 @@
471471
</span>
472472
</a>
473473

474+
<nav class="md-nav" aria-label="Configure">
475+
<ul class="md-nav__list">
476+
477+
<li class="md-nav__item">
478+
<a href="#options" class="md-nav__link">
479+
<span class="md-ellipsis">
480+
Options
481+
</span>
482+
</a>
483+
484+
</li>
485+
486+
</ul>
487+
</nav>
488+
489+
</li>
490+
491+
<li class="md-nav__item">
492+
<a href="#mocking" class="md-nav__link">
493+
<span class="md-ellipsis">
494+
Mocking
495+
</span>
496+
</a>
497+
474498
</li>
475499

476500
</ul>
@@ -657,6 +681,72 @@ <h2 id="configure">Configure<a class="headerlink" href="#configure" title="Perma
657681
<a id="__codelineno-1-8" name="__codelineno-1-8" href="#__codelineno-1-8"></a><span class="w"> </span><span class="p">}</span>
658682
<a id="__codelineno-1-9" name="__codelineno-1-9" href="#__codelineno-1-9"></a><span class="w"> </span><span class="p">.</span><span class="na">run</span><span class="p">()</span>
659683
</code></pre></div>
684+
<h3 id="options">Options<a class="headerlink" href="#options" title="Permanent link">&para;</a></h3>
685+
<div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a><span class="kd">data</span><span class="w"> </span><span class="kd">class</span><span class="w"> </span><span class="nc">WireMockSystemOptions</span><span class="p">(</span>
686+
<a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a><span class="w"> </span><span class="cm">/**</span>
687+
<a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a><span class="cm"> * Port of wiremock server</span>
688+
<a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a><span class="cm"> */</span>
689+
<a id="__codelineno-2-5" name="__codelineno-2-5" href="#__codelineno-2-5"></a><span class="w"> </span><span class="kd">val</span><span class="w"> </span><span class="nv">port</span><span class="p">:</span><span class="w"> </span><span class="kt">Int</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">9090</span><span class="p">,</span>
690+
<a id="__codelineno-2-6" name="__codelineno-2-6" href="#__codelineno-2-6"></a><span class="w"> </span><span class="cm">/**</span>
691+
<a id="__codelineno-2-7" name="__codelineno-2-7" href="#__codelineno-2-7"></a><span class="cm"> * Configures wiremock server</span>
692+
<a id="__codelineno-2-8" name="__codelineno-2-8" href="#__codelineno-2-8"></a><span class="cm"> */</span>
693+
<a id="__codelineno-2-9" name="__codelineno-2-9" href="#__codelineno-2-9"></a><span class="w"> </span><span class="kd">val</span><span class="w"> </span><span class="nv">configure</span><span class="p">:</span><span class="w"> </span><span class="n">WireMockConfiguration</span><span class="p">.()</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="n">WireMockConfiguration</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">notifier</span><span class="p">(</span><span class="n">ConsoleNotifier</span><span class="p">(</span><span class="kc">true</span><span class="p">))</span><span class="w"> </span><span class="p">},</span>
694+
<a id="__codelineno-2-10" name="__codelineno-2-10" href="#__codelineno-2-10"></a><span class="w"> </span><span class="cm">/**</span>
695+
<a id="__codelineno-2-11" name="__codelineno-2-11" href="#__codelineno-2-11"></a><span class="cm"> * Removes the stub when request matches/completes</span>
696+
<a id="__codelineno-2-12" name="__codelineno-2-12" href="#__codelineno-2-12"></a><span class="cm"> * Default value is false</span>
697+
<a id="__codelineno-2-13" name="__codelineno-2-13" href="#__codelineno-2-13"></a><span class="cm"> */</span>
698+
<a id="__codelineno-2-14" name="__codelineno-2-14" href="#__codelineno-2-14"></a><span class="w"> </span><span class="kd">val</span><span class="w"> </span><span class="nv">removeStubAfterRequestMatched</span><span class="p">:</span><span class="w"> </span><span class="kt">Boolean</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span>
699+
<a id="__codelineno-2-15" name="__codelineno-2-15" href="#__codelineno-2-15"></a><span class="w"> </span><span class="cm">/**</span>
700+
<a id="__codelineno-2-16" name="__codelineno-2-16" href="#__codelineno-2-16"></a><span class="cm"> * Called after stub removed</span>
701+
<a id="__codelineno-2-17" name="__codelineno-2-17" href="#__codelineno-2-17"></a><span class="cm"> */</span>
702+
<a id="__codelineno-2-18" name="__codelineno-2-18" href="#__codelineno-2-18"></a><span class="w"> </span><span class="kd">val</span><span class="w"> </span><span class="nv">afterStubRemoved</span><span class="p">:</span><span class="w"> </span><span class="n">AfterStubRemoved</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">_</span><span class="p">,</span><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="p">},</span>
703+
<a id="__codelineno-2-19" name="__codelineno-2-19" href="#__codelineno-2-19"></a><span class="w"> </span><span class="cm">/**</span>
704+
<a id="__codelineno-2-20" name="__codelineno-2-20" href="#__codelineno-2-20"></a><span class="cm"> * Called after request handled</span>
705+
<a id="__codelineno-2-21" name="__codelineno-2-21" href="#__codelineno-2-21"></a><span class="cm"> */</span>
706+
<a id="__codelineno-2-22" name="__codelineno-2-22" href="#__codelineno-2-22"></a><span class="w"> </span><span class="kd">val</span><span class="w"> </span><span class="nv">afterRequest</span><span class="p">:</span><span class="w"> </span><span class="n">AfterRequestHandler</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">_</span><span class="p">,</span><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="p">},</span>
707+
<a id="__codelineno-2-23" name="__codelineno-2-23" href="#__codelineno-2-23"></a><span class="w"> </span><span class="cm">/**</span>
708+
<a id="__codelineno-2-24" name="__codelineno-2-24" href="#__codelineno-2-24"></a><span class="cm"> * ObjectMapper for serialization/deserialization</span>
709+
<a id="__codelineno-2-25" name="__codelineno-2-25" href="#__codelineno-2-25"></a><span class="cm"> */</span>
710+
<a id="__codelineno-2-26" name="__codelineno-2-26" href="#__codelineno-2-26"></a><span class="w"> </span><span class="kd">val</span><span class="w"> </span><span class="nv">serde</span><span class="p">:</span><span class="w"> </span><span class="n">StoveSerde</span><span class="o">&lt;</span><span class="kt">Any</span><span class="p">,</span><span class="w"> </span><span class="n">ByteArray</span><span class="o">&gt;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">StoveSerde</span><span class="p">.</span><span class="na">jackson</span><span class="p">.</span><span class="na">anyByteArraySerde</span><span class="p">()</span>
711+
<a id="__codelineno-2-27" name="__codelineno-2-27" href="#__codelineno-2-27"></a><span class="p">)</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="n">SystemOptions</span>
712+
</code></pre></div>
713+
<h2 id="mocking">Mocking<a class="headerlink" href="#mocking" title="Permanent link">&para;</a></h2>
714+
<p>Wiremock starts a mock server on the <code>localhost</code> with the given port. The important thing is that you use the same port
715+
in your application for your services.</p>
716+
<p>Say, your application calls an external service in your production configuration as:
717+
<code>http://externalservice.com/api/product/get-all</code>
718+
you need to replace the <strong>base url</strong> of this an all the external services with the Wiremock host and port:
719+
<code>http://localhost:9090</code></p>
720+
<p>You can either do this in your application configuration, or let Stove send this as a command line argument to your
721+
application.</p>
722+
<div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a><span class="n">TestSystem</span><span class="p">()</span>
723+
<a id="__codelineno-3-2" name="__codelineno-3-2" href="#__codelineno-3-2"></a><span class="w"> </span><span class="p">.</span><span class="na">with</span><span class="w"> </span><span class="p">{</span>
724+
<a id="__codelineno-3-3" name="__codelineno-3-3" href="#__codelineno-3-3"></a><span class="w"> </span><span class="n">wiremock</span><span class="w"> </span><span class="p">{</span>
725+
<a id="__codelineno-3-4" name="__codelineno-3-4" href="#__codelineno-3-4"></a><span class="w"> </span><span class="n">WireMockSystemOptions</span><span class="p">(</span>
726+
<a id="__codelineno-3-5" name="__codelineno-3-5" href="#__codelineno-3-5"></a><span class="w"> </span><span class="n">port</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">9090</span><span class="p">,</span>
727+
<a id="__codelineno-3-6" name="__codelineno-3-6" href="#__codelineno-3-6"></a><span class="w"> </span><span class="p">)</span>
728+
<a id="__codelineno-3-7" name="__codelineno-3-7" href="#__codelineno-3-7"></a><span class="w"> </span><span class="p">}</span>
729+
<a id="__codelineno-3-8" name="__codelineno-3-8" href="#__codelineno-3-8"></a><span class="w"> </span><span class="n">springBoot</span><span class="p">(</span><span class="w"> </span><span class="c1">// or ktor</span>
730+
<a id="__codelineno-3-9" name="__codelineno-3-9" href="#__codelineno-3-9"></a><span class="w"> </span><span class="n">runner</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span>
731+
<a id="__codelineno-3-10" name="__codelineno-3-10" href="#__codelineno-3-10"></a><span class="w"> </span><span class="c1">// ...</span>
732+
<a id="__codelineno-3-11" name="__codelineno-3-11" href="#__codelineno-3-11"></a><span class="w"> </span><span class="p">},</span>
733+
<a id="__codelineno-3-12" name="__codelineno-3-12" href="#__codelineno-3-12"></a><span class="w"> </span><span class="n">withParameters</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">listOf</span><span class="p">(</span>
734+
<a id="__codelineno-3-13" name="__codelineno-3-13" href="#__codelineno-3-13"></a><span class="w"> </span><span class="s">&quot;externalServiceBaseUrl=http://localhost:9090&quot;</span><span class="p">,</span>
735+
<a id="__codelineno-3-14" name="__codelineno-3-14" href="#__codelineno-3-14"></a><span class="w"> </span><span class="s">&quot;otherService1BaseUrl=http://localhost:9090&quot;</span><span class="p">,</span>
736+
<a id="__codelineno-3-15" name="__codelineno-3-15" href="#__codelineno-3-15"></a><span class="w"> </span><span class="s">&quot;otherService2BaseUrl=http://localhost:9090&quot;</span>
737+
<a id="__codelineno-3-16" name="__codelineno-3-16" href="#__codelineno-3-16"></a><span class="w"> </span><span class="p">)</span>
738+
<a id="__codelineno-3-17" name="__codelineno-3-17" href="#__codelineno-3-17"></a><span class="w"> </span><span class="p">)</span>
739+
<a id="__codelineno-3-18" name="__codelineno-3-18" href="#__codelineno-3-18"></a><span class="w"> </span><span class="p">}</span>
740+
<a id="__codelineno-3-19" name="__codelineno-3-19" href="#__codelineno-3-19"></a><span class="w"> </span><span class="p">.</span><span class="na">run</span><span class="p">()</span>
741+
</code></pre></div>
742+
<p>All service endpoints will be pointing to the Wiremock server. You can now define the stubs for the services that your
743+
application calls.</p>
744+
<div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a><span class="n">wiremock</span><span class="w"> </span><span class="p">{</span>
745+
<a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a><span class="w"> </span><span class="n">mockGet</span><span class="p">(</span><span class="s">&quot;/api/product/get-all&quot;</span><span class="p">,</span><span class="w"> </span><span class="m">200</span><span class="p">,</span><span class="w"> </span><span class="n">lisOf</span><span class="p">(</span><span class="n">Product</span><span class="p">(</span><span class="s">&quot;1&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;Product 1&quot;</span><span class="p">),</span><span class="w"> </span><span class="n">Product</span><span class="p">(</span><span class="s">&quot;2&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;Product 2&quot;</span><span class="p">)).</span><span class="na">some</span><span class="p">())</span>
746+
<a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a><span class="p">}</span>
747+
</code></pre></div>
748+
<p>Relative url is mocked. BaseUrl is known by Wiremock server since it hosts it, and your application because you passed
749+
it as a command line argument.</p>
660750

661751

662752

search/search_index.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

sitemap.xml.gz

0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)