|
471 | 471 | </span> |
472 | 472 | </a> |
473 | 473 |
|
| 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 | + |
474 | 498 | </li> |
475 | 499 |
|
476 | 500 | </ul> |
@@ -657,6 +681,72 @@ <h2 id="configure">Configure<a class="headerlink" href="#configure" title="Perma |
657 | 681 | <a id="__codelineno-1-8" name="__codelineno-1-8" href="#__codelineno-1-8"></a><span class="w"> </span><span class="p">}</span> |
658 | 682 | <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> |
659 | 683 | </code></pre></div> |
| 684 | +<h3 id="options">Options<a class="headerlink" href="#options" title="Permanent link">¶</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">-></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">-></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">-></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"><</span><span class="kt">Any</span><span class="p">,</span><span class="w"> </span><span class="n">ByteArray</span><span class="o">></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">¶</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">"externalServiceBaseUrl=http://localhost:9090"</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">"otherService1BaseUrl=http://localhost:9090"</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">"otherService2BaseUrl=http://localhost:9090"</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">"/api/product/get-all"</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">"1"</span><span class="p">,</span><span class="w"> </span><span class="s">"Product 1"</span><span class="p">),</span><span class="w"> </span><span class="n">Product</span><span class="p">(</span><span class="s">"2"</span><span class="p">,</span><span class="w"> </span><span class="s">"Product 2"</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> |
660 | 750 |
|
661 | 751 |
|
662 | 752 |
|
|
0 commit comments