Class jodd.http.ProxyTest

5

tests

0

failures

1

ignored

2.915s

duration

100%

successful

Tests

Test Duration Result
testDirect 0.148s passed
testDirectHttps 0.078s passed
testHttpProxy - ignored
testSocks5Proxy 2.458s passed
testSocks5ProxyWithHttps 0.231s passed

Standard output

17:00:04.585 [Test worker] DEBUG i.n.u.i.l.InternalLoggerFactory - Using SLF4J as the default logging framework
17:00:04.597 [Test worker] DEBUG i.n.util.internal.PlatformDependent0 - java.nio.Buffer.address: available
17:00:04.601 [Test worker] DEBUG i.n.util.internal.PlatformDependent0 - sun.misc.Unsafe.theUnsafe: available
17:00:04.602 [Test worker] DEBUG i.n.util.internal.PlatformDependent0 - sun.misc.Unsafe.copyMemory: available
17:00:04.602 [Test worker] DEBUG i.n.util.internal.PlatformDependent0 - java.nio.Bits.unaligned: true
17:00:04.604 [Test worker] DEBUG i.n.util.internal.PlatformDependent - Java version: 8
17:00:04.605 [Test worker] DEBUG i.n.util.internal.PlatformDependent - -Dio.netty.noUnsafe: false
17:00:04.605 [Test worker] DEBUG i.n.util.internal.PlatformDependent - sun.misc.Unsafe: available
17:00:04.606 [Test worker] DEBUG i.n.util.internal.PlatformDependent - -Dio.netty.noJavassist: false
17:00:04.607 [Test worker] DEBUG i.n.util.internal.PlatformDependent - Javassist: unavailable
17:00:04.607 [Test worker] DEBUG i.n.util.internal.PlatformDependent - You don't have Javassist in your class path or you don't have enough permission to load dynamically generated classes.  Please check the configuration for better performance.
17:00:04.608 [Test worker] DEBUG i.n.util.internal.PlatformDependent - -Dio.netty.tmpdir: /var/folders/p0/56lcq09x4jng8dcpnjyf0vnm0000gn/T (java.io.tmpdir)
17:00:04.608 [Test worker] DEBUG i.n.util.internal.PlatformDependent - -Dio.netty.bitMode: 64 (sun.arch.data.model)
17:00:04.608 [Test worker] DEBUG i.n.util.internal.PlatformDependent - -Dio.netty.noPreferDirect: false
17:00:04.941 [Test worker] DEBUG i.n.c.MultithreadEventLoopGroup - -Dio.netty.eventLoopThreads: 16
17:00:04.966 [Test worker] DEBUG io.netty.channel.nio.NioEventLoop - -Dio.netty.noKeySetOptimization: false
17:00:04.966 [Test worker] DEBUG io.netty.channel.nio.NioEventLoop - -Dio.netty.selectorAutoRebuildThreshold: 512
17:00:05.011 [Test worker] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.numHeapArenas: 16
17:00:05.011 [Test worker] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.numDirectArenas: 16
17:00:05.011 [Test worker] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.pageSize: 8192
17:00:05.011 [Test worker] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.maxOrder: 11
17:00:05.012 [Test worker] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.chunkSize: 16777216
17:00:05.012 [Test worker] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.tinyCacheSize: 512
17:00:05.012 [Test worker] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.smallCacheSize: 256
17:00:05.012 [Test worker] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.normalCacheSize: 64
17:00:05.012 [Test worker] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.maxCachedBufferCapacity: 32768
17:00:05.012 [Test worker] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.cacheTrimInterval: 8192
17:00:05.051 [MockServer thread for port: 1080] DEBUG i.n.util.internal.ThreadLocalRandom - -Dio.netty.initialSeedUniquifier: 0x90193853d88671ba (took 0 ms)
17:00:05.081 [MockServer thread for port: 1080] DEBUG io.netty.buffer.ByteBufUtil - -Dio.netty.allocator.type: unpooled
17:00:05.081 [MockServer thread for port: 1080] DEBUG io.netty.buffer.ByteBufUtil - -Dio.netty.threadLocalDirectBufferSize: 65536
17:00:05.081 [MockServer thread for port: 1080] DEBUG io.netty.buffer.ByteBufUtil - -Dio.netty.maxThreadLocalCharBufferSize: 16384
17:00:05.084 [MockServer thread for port: 1080] DEBUG io.netty.util.NetUtil - Loopback interface: lo0 (lo0, 0:0:0:0:0:0:0:1)
17:00:05.085 [MockServer thread for port: 1080] DEBUG io.netty.util.NetUtil - /proc/sys/net/core/somaxconn: 128 (non-existent)
17:00:05.096 [MockServer thread for port: 1080] INFO  org.mockserver.mockserver.MockServer - MockServer started on port: 1080
17:00:05.114 [MockServer HttpProxy Thread] INFO  org.mockserver.proxy.http.HttpProxy - MockServer proxy started on port: 1090
17:00:05.116 [MockServer HttpProxy Thread] DEBUG o.m.c.ConfigurationProperties - Property file not found on classpath using path [mockserver.properties]
17:00:05.116 [MockServer HttpProxy Thread] DEBUG o.m.c.ConfigurationProperties - Property file not found using path [mockserver.properties]
17:00:05.277 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Sending request: {
  "method" : "PUT",
  "path" : "/expectation",
  "body" : {
    "charset" : "UTF-8",
    "type" : "STRING",
    "string" : "{\n  \"httpRequest\" : {\n    \"path\" : \"/get_books\"\n  },\n  \"httpResponse\" : {\n    \"headers\" : [ {\n      \"name\" : \"Content-Type\",\n      \"values\" : [ \"application/json\" ]\n    } ],\n    \"body\" : \"[\\n    {\\n        \\\"id\\\": \\\"1\\\",\\n        \\\"title\\\": \\\"Xenophon's imperial fiction : on the education of Cyrus\\\",\\n        \\\"author\\\": \\\"James Tatum\\\",\\n        \\\"isbn\\\": \\\"0691067570\\\",\\n        \\\"publicationDate\\\": \\\"1989\\\"\\n    },\\n    {\\n        \\\"id\\\": \\\"2\\\",\\n        \\\"title\\\": \\\"You are here : personal geographies and other maps of the imagination\\\",\\n        \\\"author\\\": \\\"Katharine A. Harmon\\\",\\n        \\\"isbn\\\": \\\"1568984308\\\",\\n        \\\"publicationDate\\\": \\\"2004\\\"\\n    },\\n    {\\n        \\\"id\\\": \\\"3\\\",\\n        \\\"title\\\": \\\"You just don't understand : women and men in conversation\\\",\\n        \\\"author\\\": \\\"Deborah Tannen\\\",\\n        \\\"isbn\\\": \\\"0345372050\\\",\\n        \\\"publicationDate\\\": \\\"1990\\\"\\n    }]\"\n  },\n  \"times\" : {\n    \"remainingTimes\" : 0,\n    \"unlimited\" : true\n  },\n  \"timeToLive\" : {\n    \"unlimited\" : true\n  }\n}"
  }
}
17:00:05.340 [nioEventLoopGroup-6-1] DEBUG io.netty.buffer.AbstractByteBuf - -Dio.netty.buffer.bytebuf.checkAccessible: true
17:00:05.343 [nioEventLoopGroup-6-1] DEBUG io.netty.util.ResourceLeakDetector - -Dio.netty.leakDetection.level: simple
17:00:05.343 [nioEventLoopGroup-6-1] DEBUG io.netty.util.ResourceLeakDetector - -Dio.netty.leakDetection.maxRecords: 4
17:00:05.376 [nioEventLoopGroup-6-1] DEBUG io.netty.util.Recycler - -Dio.netty.recycler.maxCapacity.default: 262144
17:00:05.604 [nioEventLoopGroup-3-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x0bbe6ba8, /127.0.0.1:65437 => /127.0.0.1:1080] RECEIVED: HttpObjectAggregator$AggregatedFullHttpRequest(decodeResult: success, version: HTTP/1.1, content: CompositeByteBuf(ridx: 0, widx: 1034, cap: 1034, components=2))
PUT /expectation HTTP/1.1
Host: localhost:1080
Accept-Encoding: gzip,deflate
Content-Length: 1034
Connection: keep-alive
Content-Type: text/plain; charset=utf-8, 1034B
         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 7b 0a 20 20 22 68 74 74 70 52 65 71 75 65 73 74 |{.  "httpRequest|
|00000010| 22 20 3a 20 7b 0a 20 20 20 20 22 70 61 74 68 22 |" : {.    "path"|
|00000020| 20 3a 20 22 2f 67 65 74 5f 62 6f 6f 6b 73 22 0a | : "/get_books".|
|00000030| 20 20 7d 2c 0a 20 20 22 68 74 74 70 52 65 73 70 |  },.  "httpResp|
|00000040| 6f 6e 73 65 22 20 3a 20 7b 0a 20 20 20 20 22 68 |onse" : {.    "h|
|00000050| 65 61 64 65 72 73 22 20 3a 20 5b 20 7b 0a 20 20 |eaders" : [ {.  |
|00000060| 20 20 20 20 22 6e 61 6d 65 22 20 3a 20 22 43 6f |    "name" : "Co|
|00000070| 6e 74 65 6e 74 2d 54 79 70 65 22 2c 0a 20 20 20 |ntent-Type",.   |
|00000080| 20 20 20 22 76 61 6c 75 65 73 22 20 3a 20 5b 20 |   "values" : [ |
|00000090| 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f |"application/jso|
|000000a0| 6e 22 20 5d 0a 20 20 20 20 7d 20 5d 2c 0a 20 20 |n" ].    } ],.  |
|000000b0| 20 20 22 62 6f 64 79 22 20 3a 20 22 5b 5c 6e 20 |  "body" : "[\n |
|000000c0| 20 20 20 7b 5c 6e 20 20 20 20 20 20 20 20 5c 22 |   {\n        \"|
|000000d0| 69 64 5c 22 3a 20 5c 22 31 5c 22 2c 5c 6e 20 20 |id\": \"1\",\n  |
|000000e0| 20 20 20 20 20 20 5c 22 74 69 74 6c 65 5c 22 3a |      \"title\":|
|000000f0| 20 5c 22 58 65 6e 6f 70 68 6f 6e 27 73 20 69 6d | \"Xenophon's im|
|00000100| 70 65 72 69 61 6c 20 66 69 63 74 69 6f 6e 20 3a |perial fiction :|
|00000110| 20 6f 6e 20 74 68 65 20 65 64 75 63 61 74 69 6f | on the educatio|
|00000120| 6e 20 6f 66 20 43 79 72 75 73 5c 22 2c 5c 6e 20 |n of Cyrus\",\n |
|00000130| 20 20 20 20 20 20 20 5c 22 61 75 74 68 6f 72 5c |       \"author\|
|00000140| 22 3a 20 5c 22 4a 61 6d 65 73 20 54 61 74 75 6d |": \"James Tatum|
|00000150| 5c 22 2c 5c 6e 20 20 20 20 20 20 20 20 5c 22 69 |\",\n        \"i|
|00000160| 73 62 6e 5c 22 3a 20 5c 22 30 36 39 31 30 36 37 |sbn\": \"0691067|
|00000170| 35 37 30 5c 22 2c 5c 6e 20 20 20 20 20 20 20 20 |570\",\n        |
|00000180| 5c 22 70 75 62 6c 69 63 61 74 69 6f 6e 44 61 74 |\"publicationDat|
|00000190| 65 5c 22 3a 20 5c 22 31 39 38 39 5c 22 5c 6e 20 |e\": \"1989\"\n |
|000001a0| 20 20 20 7d 2c 5c 6e 20 20 20 20 7b 5c 6e 20 20 |   },\n    {\n  |
|000001b0| 20 20 20 20 20 20 5c 22 69 64 5c 22 3a 20 5c 22 |      \"id\": \"|
|000001c0| 32 5c 22 2c 5c 6e 20 20 20 20 20 20 20 20 5c 22 |2\",\n        \"|
|000001d0| 74 69 74 6c 65 5c 22 3a 20 5c 22 59 6f 75 20 61 |title\": \"You a|
|000001e0| 72 65 20 68 65 72 65 20 3a 20 70 65 72 73 6f 6e |re here : person|
|000001f0| 61 6c 20 67 65 6f 67 72 61 70 68 69 65 73 20 61 |al geographies a|
|00000200| 6e 64 20 6f 74 68 65 72 20 6d 61 70 73 20 6f 66 |nd other maps of|
|00000210| 20 74 68 65 20 69 6d 61 67 69 6e 61 74 69 6f 6e | the imagination|
|00000220| 5c 22 2c 5c 6e 20 20 20 20 20 20 20 20 5c 22 61 |\",\n        \"a|
|00000230| 75 74 68 6f 72 5c 22 3a 20 5c 22 4b 61 74 68 61 |uthor\": \"Katha|
|00000240| 72 69 6e 65 20 41 2e 20 48 61 72 6d 6f 6e 5c 22 |rine A. Harmon\"|
|00000250| 2c 5c 6e 20 20 20 20 20 20 20 20 5c 22 69 73 62 |,\n        \"isb|
|00000260| 6e 5c 22 3a 20 5c 22 31 35 36 38 39 38 34 33 30 |n\": \"156898430|
|00000270| 38 5c 22 2c 5c 6e 20 20 20 20 20 20 20 20 5c 22 |8\",\n        \"|
|00000280| 70 75 62 6c 69 63 61 74 69 6f 6e 44 61 74 65 5c |publicationDate\|
|00000290| 22 3a 20 5c 22 32 30 30 34 5c 22 5c 6e 20 20 20 |": \"2004\"\n   |
|000002a0| 20 7d 2c 5c 6e 20 20 20 20 7b 5c 6e 20 20 20 20 | },\n    {\n    |
|000002b0| 20 20 20 20 5c 22 69 64 5c 22 3a 20 5c 22 33 5c |    \"id\": \"3\|
|000002c0| 22 2c 5c 6e 20 20 20 20 20 20 20 20 5c 22 74 69 |",\n        \"ti|
|000002d0| 74 6c 65 5c 22 3a 20 5c 22 59 6f 75 20 6a 75 73 |tle\": \"You jus|
|000002e0| 74 20 64 6f 6e 27 74 20 75 6e 64 65 72 73 74 61 |t don't understa|
|000002f0| 6e 64 20 3a 20 77 6f 6d 65 6e 20 61 6e 64 20 6d |nd : women and m|
|00000300| 65 6e 20 69 6e 20 63 6f 6e 76 65 72 73 61 74 69 |en in conversati|
|00000310| 6f 6e 5c 22 2c 5c 6e 20 20 20 20 20 20 20 20 5c |on\",\n        \|
|00000320| 22 61 75 74 68 6f 72 5c 22 3a 20 5c 22 44 65 62 |"author\": \"Deb|
|00000330| 6f 72 61 68 20 54 61 6e 6e 65 6e 5c 22 2c 5c 6e |orah Tannen\",\n|
|00000340| 20 20 20 20 20 20 20 20 5c 22 69 73 62 6e 5c 22 |        \"isbn\"|
|00000350| 3a 20 5c 22 30 33 34 35 33 37 32 30 35 30 5c 22 |: \"0345372050\"|
|00000360| 2c 5c 6e 20 20 20 20 20 20 20 20 5c 22 70 75 62 |,\n        \"pub|
|00000370| 6c 69 63 61 74 69 6f 6e 44 61 74 65 5c 22 3a 20 |licationDate\": |
|00000380| 5c 22 31 39 39 30 5c 22 5c 6e 20 20 20 20 7d 5d |\"1990\"\n    }]|
|00000390| 22 0a 20 20 7d 2c 0a 20 20 22 74 69 6d 65 73 22 |".  },.  "times"|
|000003a0| 20 3a 20 7b 0a 20 20 20 20 22 72 65 6d 61 69 6e | : {.    "remain|
|000003b0| 69 6e 67 54 69 6d 65 73 22 20 3a 20 30 2c 0a 20 |ingTimes" : 0,. |
|000003c0| 20 20 20 22 75 6e 6c 69 6d 69 74 65 64 22 20 3a |   "unlimited" :|
|000003d0| 20 74 72 75 65 0a 20 20 7d 2c 0a 20 20 22 74 69 | true.  },.  "ti|
|000003e0| 6d 65 54 6f 4c 69 76 65 22 20 3a 20 7b 0a 20 20 |meToLive" : {.  |
|000003f0| 20 20 22 75 6e 6c 69 6d 69 74 65 64 22 20 3a 20 |  "unlimited" : |
|00000400| 74 72 75 65 0a 20 20 7d 0a 7d                   |true.  }.}      |
+--------+-------------------------------------------------+----------------+
17:00:05.715 [nioEventLoopGroup-3-1] INFO  o.m.mockserver.MockServerHandler - creating expectation:

	{
	  "httpRequest" : {
	    "path" : "/get_books"
	  },
	  "times" : {
	    "remainingTimes" : 0,
	    "unlimited" : true
	  },
	  "timeToLive" : {
	    "unlimited" : true
	  },
	  "httpResponse" : {
	    "headers" : [ {
	      "name" : "Content-Type",
	      "values" : [ "application/json" ]
	    } ],
	    "body" : "[\n    {\n        \"id\": \"1\",\n        \"title\": \"Xenophon's imperial fiction : on the education of Cyrus\",\n        \"author\": \"James Tatum\",\n        \"isbn\": \"0691067570\",\n        \"publicationDate\": \"1989\"\n    },\n    {\n        \"id\": \"2\",\n        \"title\": \"You are here : personal geographies and other maps of the imagination\",\n        \"author\": \"Katharine A. Harmon\",\n        \"isbn\": \"1568984308\",\n        \"publicationDate\": \"2004\"\n    },\n    {\n        \"id\": \"3\",\n        \"title\": \"You just don't understand : women and men in conversation\",\n        \"author\": \"Deborah Tannen\",\n        \"isbn\": \"0345372050\",\n        \"publicationDate\": \"1990\"\n    }]"
	  }
	}


17:00:05.717 [nioEventLoopGroup-3-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x0bbe6ba8, /127.0.0.1:65437 => /127.0.0.1:1080] WRITE, DefaultFullHttpResponse(decodeResult: success, version: HTTP/1.1, content: EmptyByteBufBE)
HTTP/1.1 201 Created
Content-Length: 0
Connection: keep-alive
Content-Type: text/plain, 0B
17:00:05.718 [nioEventLoopGroup-3-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x0bbe6ba8, /127.0.0.1:65437 => /127.0.0.1:1080] FLUSH
17:00:05.721 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Received response: {
  "statusCode" : 201,
  "headers" : [ {
    "name" : "Connection",
    "values" : [ "keep-alive" ]
  }, {
    "name" : "Content-Length",
    "values" : [ "0" ]
  }, {
    "name" : "Content-Type",
    "values" : [ "text/plain" ]
  } ]
}
17:00:05.723 [nioEventLoopGroup-3-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x0bbe6ba8, /127.0.0.1:65437 => /127.0.0.1:1080] FLUSH
17:00:05.724 [nioEventLoopGroup-3-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x0bbe6ba8, /127.0.0.1:65437 :> /127.0.0.1:1080] INACTIVE
17:00:05.725 [nioEventLoopGroup-3-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x0bbe6ba8, /127.0.0.1:65437 :> /127.0.0.1:1080] UNREGISTERED
17:00:05.748 [nioEventLoopGroup-6-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 3 thread-local buffer(s) from thread: nioEventLoopGroup-6-1
17:00:06.214 [nioEventLoopGroup-5-1] DEBUG org.mockserver.socket.SSLFactory - Using protocol TLSv1.2
17:00:06.307 [nioEventLoopGroup-5-1] DEBUG io.netty.util.internal.Cleaner0 - java.nio.ByteBuffer.cleaner(): available
17:00:06.350 [nioEventLoopGroup-5-1] DEBUG i.n.h.s.u.InsecureTrustManagerFactory - Accepting a server certificate: C=UK, ST=England, L=London, O=MockServer, CN=localhost
17:00:06.612 [nioEventLoopGroup-5-2] DEBUG io.netty.handler.ssl.SslHandler - [id: 0xe90c1753, /192.168.1.122:65439 => /192.168.1.122:1090] HANDSHAKEN: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
17:00:06.614 [nioEventLoopGroup-5-1] DEBUG io.netty.handler.ssl.SslHandler - [id: 0x72dd5e53, /192.168.1.122:65439 => 0.0.0.0/0.0.0.0:1090] HANDSHAKEN: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
17:00:06.627 [nioEventLoopGroup-5-2] DEBUG o.m.client.netty.NettyHttpClient - Sending request: {
  "method" : "GET",
  "path" : "/get_books",
  "headers" : [ {
    "name" : "Host",
    "values" : [ "localhost:1080" ]
  }, {
    "name" : "User-Agent",
    "values" : [ "Jodd HTTP" ]
  }, {
    "name" : "Content-Length",
    "values" : [ "0" ]
  } ],
  "keepAlive" : false,
  "secure" : true
}
17:00:06.664 [nioEventLoopGroup-3-2] DEBUG i.n.u.internal.NativeLibraryLoader - -Dio.netty.tmpdir: /var/folders/p0/56lcq09x4jng8dcpnjyf0vnm0000gn/T (java.io.tmpdir)
17:00:06.664 [nioEventLoopGroup-3-2] DEBUG i.n.u.internal.NativeLibraryLoader - -Dio.netty.native.workdir: /var/folders/p0/56lcq09x4jng8dcpnjyf0vnm0000gn/T (io.netty.tmpdir)
17:00:06.681 [nioEventLoopGroup-3-2] DEBUG io.netty.handler.ssl.OpenSsl - Failed to load netty-tcnative; OpenSslEngine will be unavailable. See http://netty.io/wiki/forked-tomcat-native.html for more information.
java.lang.UnsatisfiedLinkError: no netty-tcnative in java.library.path
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867) ~[na:1.8.0_144]
	at java.lang.Runtime.loadLibrary0(Runtime.java:870) ~[na:1.8.0_144]
	at java.lang.System.loadLibrary(System.java:1122) ~[na:1.8.0_144]
	at io.netty.util.internal.NativeLibraryLoader.load(NativeLibraryLoader.java:168) ~[netty-common-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.handler.ssl.OpenSsl.<clinit>(OpenSsl.java:58) ~[netty-handler-4.0.34.Final.jar:4.0.34.Final]
	at org.mockserver.server.unification.PortUnificationHandler.enableSsl(PortUnificationHandler.java:85) [mockserver-core-3.10.4.jar:na]
	at org.mockserver.server.unification.PortUnificationHandler.channelRead0(PortUnificationHandler.java:43) [mockserver-core-3.10.4.jar:na]
	at org.mockserver.server.unification.PortUnificationHandler.channelRead0(PortUnificationHandler.java:25) [mockserver-core-3.10.4.jar:na]
	at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [netty-transport-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:307) [netty-transport-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:293) [netty-transport-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:840) [netty-transport-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131) [netty-transport-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511) [netty-transport-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468) [netty-transport-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382) [netty-transport-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354) [netty-transport-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112) [netty-common-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137) [netty-common-4.0.34.Final.jar:4.0.34.Final]
	at java.lang.Thread.run(Thread.java:748) [na:1.8.0_144]
17:00:06.692 [nioEventLoopGroup-8-1] DEBUG i.n.h.s.u.InsecureTrustManagerFactory - Accepting a server certificate: C=UK, ST=England, L=London, O=MockServer, CN=localhost
17:00:06.705 [nioEventLoopGroup-3-2] DEBUG io.netty.handler.ssl.SslHandler - [id: 0x4aa5f5b3, /127.0.0.1:65440 => /127.0.0.1:1080] HANDSHAKEN: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
17:00:06.707 [nioEventLoopGroup-8-1] DEBUG io.netty.handler.ssl.SslHandler - [id: 0x4cbd54fc, /127.0.0.1:65440 => localhost/127.0.0.1:1080] HANDSHAKEN: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
17:00:06.711 [nioEventLoopGroup-3-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x4aa5f5b3, /127.0.0.1:65440 => /127.0.0.1:1080] RECEIVED, HttpObjectAggregator$AggregatedFullHttpRequest(decodeResult: success, version: HTTP/1.1, content: CompositeByteBuf(ridx: 0, widx: 0, cap: 0, components=0))
GET /get_books HTTP/1.1
User-Agent: Jodd HTTP
Host: localhost:1080
Accept-Encoding: gzip,deflate
Content-Length: 0
Connection: keep-alive, 0B
17:00:06.714 [nioEventLoopGroup-3-2] INFO  o.m.matchers.HttpRequestMatcher - request:

	{
	  "method" : "GET",
	  "path" : "/get_books",
	  "headers" : [ {
	    "name" : "User-Agent",
	    "values" : [ "Jodd HTTP" ]
	  }, {
	    "name" : "Host",
	    "values" : [ "localhost:1080" ]
	  }, {
	    "name" : "Accept-Encoding",
	    "values" : [ "gzip,deflate" ]
	  }, {
	    "name" : "Content-Length",
	    "values" : [ "0" ]
	  }, {
	    "name" : "Connection",
	    "values" : [ "keep-alive" ]
	  } ],
	  "keepAlive" : true,
	  "secure" : true
	}

 matched expectation:

	{
	  "path" : "/get_books"
	}


17:00:06.719 [nioEventLoopGroup-3-2] INFO  o.m.mockserver.MockServerHandler - returning response:

	{
	  "headers" : [ {
	    "name" : "Content-Type",
	    "values" : [ "application/json" ]
	  } ],
	  "body" : "[\n    {\n        \"id\": \"1\",\n        \"title\": \"Xenophon's imperial fiction : on the education of Cyrus\",\n        \"author\": \"James Tatum\",\n        \"isbn\": \"0691067570\",\n        \"publicationDate\": \"1989\"\n    },\n    {\n        \"id\": \"2\",\n        \"title\": \"You are here : personal geographies and other maps of the imagination\",\n        \"author\": \"Katharine A. Harmon\",\n        \"isbn\": \"1568984308\",\n        \"publicationDate\": \"2004\"\n    },\n    {\n        \"id\": \"3\",\n        \"title\": \"You just don't understand : women and men in conversation\",\n        \"author\": \"Deborah Tannen\",\n        \"isbn\": \"0345372050\",\n        \"publicationDate\": \"1990\"\n    }]"
	}

 for request:

	{
	  "method" : "GET",
	  "path" : "/get_books",
	  "headers" : [ {
	    "name" : "User-Agent",
	    "values" : [ "Jodd HTTP" ]
	  }, {
	    "name" : "Host",
	    "values" : [ "localhost:1080" ]
	  }, {
	    "name" : "Accept-Encoding",
	    "values" : [ "gzip,deflate" ]
	  }, {
	    "name" : "Content-Length",
	    "values" : [ "0" ]
	  } ],
	  "keepAlive" : true,
	  "secure" : true
	}


17:00:06.721 [nioEventLoopGroup-3-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x4aa5f5b3, /127.0.0.1:65440 => /127.0.0.1:1080] WRITE: DefaultFullHttpResponse(decodeResult: success, version: HTTP/1.1, content: UnpooledHeapByteBuf(ridx: 0, widx: 643, cap: 643/643))
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 643
Connection: keep-alive, 643B
         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 |[.    {.        |
|00000010| 22 69 64 22 3a 20 22 31 22 2c 0a 20 20 20 20 20 |"id": "1",.     |
|00000020| 20 20 20 22 74 69 74 6c 65 22 3a 20 22 58 65 6e |   "title": "Xen|
|00000030| 6f 70 68 6f 6e 27 73 20 69 6d 70 65 72 69 61 6c |ophon's imperial|
|00000040| 20 66 69 63 74 69 6f 6e 20 3a 20 6f 6e 20 74 68 | fiction : on th|
|00000050| 65 20 65 64 75 63 61 74 69 6f 6e 20 6f 66 20 43 |e education of C|
|00000060| 79 72 75 73 22 2c 0a 20 20 20 20 20 20 20 20 22 |yrus",.        "|
|00000070| 61 75 74 68 6f 72 22 3a 20 22 4a 61 6d 65 73 20 |author": "James |
|00000080| 54 61 74 75 6d 22 2c 0a 20 20 20 20 20 20 20 20 |Tatum",.        |
|00000090| 22 69 73 62 6e 22 3a 20 22 30 36 39 31 30 36 37 |"isbn": "0691067|
|000000a0| 35 37 30 22 2c 0a 20 20 20 20 20 20 20 20 22 70 |570",.        "p|
|000000b0| 75 62 6c 69 63 61 74 69 6f 6e 44 61 74 65 22 3a |ublicationDate":|
|000000c0| 20 22 31 39 38 39 22 0a 20 20 20 20 7d 2c 0a 20 | "1989".    },. |
|000000d0| 20 20 20 7b 0a 20 20 20 20 20 20 20 20 22 69 64 |   {.        "id|
|000000e0| 22 3a 20 22 32 22 2c 0a 20 20 20 20 20 20 20 20 |": "2",.        |
|000000f0| 22 74 69 74 6c 65 22 3a 20 22 59 6f 75 20 61 72 |"title": "You ar|
|00000100| 65 20 68 65 72 65 20 3a 20 70 65 72 73 6f 6e 61 |e here : persona|
|00000110| 6c 20 67 65 6f 67 72 61 70 68 69 65 73 20 61 6e |l geographies an|
|00000120| 64 20 6f 74 68 65 72 20 6d 61 70 73 20 6f 66 20 |d other maps of |
|00000130| 74 68 65 20 69 6d 61 67 69 6e 61 74 69 6f 6e 22 |the imagination"|
|00000140| 2c 0a 20 20 20 20 20 20 20 20 22 61 75 74 68 6f |,.        "autho|
|00000150| 72 22 3a 20 22 4b 61 74 68 61 72 69 6e 65 20 41 |r": "Katharine A|
|00000160| 2e 20 48 61 72 6d 6f 6e 22 2c 0a 20 20 20 20 20 |. Harmon",.     |
|00000170| 20 20 20 22 69 73 62 6e 22 3a 20 22 31 35 36 38 |   "isbn": "1568|
|00000180| 39 38 34 33 30 38 22 2c 0a 20 20 20 20 20 20 20 |984308",.       |
|00000190| 20 22 70 75 62 6c 69 63 61 74 69 6f 6e 44 61 74 | "publicationDat|
|000001a0| 65 22 3a 20 22 32 30 30 34 22 0a 20 20 20 20 7d |e": "2004".    }|
|000001b0| 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 |,.    {.        |
|000001c0| 22 69 64 22 3a 20 22 33 22 2c 0a 20 20 20 20 20 |"id": "3",.     |
|000001d0| 20 20 20 22 74 69 74 6c 65 22 3a 20 22 59 6f 75 |   "title": "You|
|000001e0| 20 6a 75 73 74 20 64 6f 6e 27 74 20 75 6e 64 65 | just don't unde|
|000001f0| 72 73 74 61 6e 64 20 3a 20 77 6f 6d 65 6e 20 61 |rstand : women a|
|00000200| 6e 64 20 6d 65 6e 20 69 6e 20 63 6f 6e 76 65 72 |nd men in conver|
|00000210| 73 61 74 69 6f 6e 22 2c 0a 20 20 20 20 20 20 20 |sation",.       |
|00000220| 20 22 61 75 74 68 6f 72 22 3a 20 22 44 65 62 6f | "author": "Debo|
|00000230| 72 61 68 20 54 61 6e 6e 65 6e 22 2c 0a 20 20 20 |rah Tannen",.   |
|00000240| 20 20 20 20 20 22 69 73 62 6e 22 3a 20 22 30 33 |     "isbn": "03|
|00000250| 34 35 33 37 32 30 35 30 22 2c 0a 20 20 20 20 20 |45372050",.     |
|00000260| 20 20 20 22 70 75 62 6c 69 63 61 74 69 6f 6e 44 |   "publicationD|
|00000270| 61 74 65 22 3a 20 22 31 39 39 30 22 0a 20 20 20 |ate": "1990".   |
|00000280| 20 7d 5d                                        | }]             |
+--------+-------------------------------------------------+----------------+
17:00:06.722 [nioEventLoopGroup-3-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x4aa5f5b3, /127.0.0.1:65440 => /127.0.0.1:1080] FLUSH
17:00:06.726 [nioEventLoopGroup-5-2] DEBUG o.m.client.netty.NettyHttpClient - Received response: {
  "statusCode" : 200,
  "headers" : [ {
    "name" : "Connection",
    "values" : [ "keep-alive" ]
  }, {
    "name" : "Content-Length",
    "values" : [ "643" ]
  }, {
    "name" : "Content-Type",
    "values" : [ "application/json" ]
  } ],
  "body" : "[\n    {\n        \"id\": \"1\",\n        \"title\": \"Xenophon's imperial fiction : on the education of Cyrus\",\n        \"author\": \"James Tatum\",\n        \"isbn\": \"0691067570\",\n        \"publicationDate\": \"1989\"\n    },\n    {\n        \"id\": \"2\",\n        \"title\": \"You are here : personal geographies and other maps of the imagination\",\n        \"author\": \"Katharine A. Harmon\",\n        \"isbn\": \"1568984308\",\n        \"publicationDate\": \"2004\"\n    },\n    {\n        \"id\": \"3\",\n        \"title\": \"You just don't understand : women and men in conversation\",\n        \"author\": \"Deborah Tannen\",\n        \"isbn\": \"0345372050\",\n        \"publicationDate\": \"1990\"\n    }]"
}
17:00:06.727 [nioEventLoopGroup-3-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x4aa5f5b3, /127.0.0.1:65440 => /127.0.0.1:1080] FLUSH
17:00:06.728 [nioEventLoopGroup-3-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x4aa5f5b3, /127.0.0.1:65440 => /127.0.0.1:1080] FLUSH
17:00:06.729 [nioEventLoopGroup-3-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x4aa5f5b3, /127.0.0.1:65440 :> /127.0.0.1:1080] INACTIVE
17:00:06.729 [nioEventLoopGroup-3-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x4aa5f5b3, /127.0.0.1:65440 :> /127.0.0.1:1080] UNREGISTERED
17:00:06.733 [nioEventLoopGroup-8-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 11 thread-local buffer(s) from thread: nioEventLoopGroup-8-1
17:00:06.735 [nioEventLoopGroup-5-2] INFO  o.m.proxy.http.HttpProxyHandler - returning response:

	{
	  "statusCode" : 200,
	  "headers" : [ {
	    "name" : "Connection",
	    "values" : [ "keep-alive" ]
	  }, {
	    "name" : "Content-Length",
	    "values" : [ "643" ]
	  }, {
	    "name" : "Content-Type",
	    "values" : [ "application/json" ]
	  } ],
	  "body" : "[\n    {\n        \"id\": \"1\",\n        \"title\": \"Xenophon's imperial fiction : on the education of Cyrus\",\n        \"author\": \"James Tatum\",\n        \"isbn\": \"0691067570\",\n        \"publicationDate\": \"1989\"\n    },\n    {\n        \"id\": \"2\",\n        \"title\": \"You are here : personal geographies and other maps of the imagination\",\n        \"author\": \"Katharine A. Harmon\",\n        \"isbn\": \"1568984308\",\n        \"publicationDate\": \"2004\"\n    },\n    {\n        \"id\": \"3\",\n        \"title\": \"You just don't understand : women and men in conversation\",\n        \"author\": \"Deborah Tannen\",\n        \"isbn\": \"0345372050\",\n        \"publicationDate\": \"1990\"\n    }]"
	}

 for request as json:

	{
	  "method" : "GET",
	  "path" : "/get_books",
	  "headers" : [ {
	    "name" : "Host",
	    "values" : [ "localhost:1080" ]
	  }, {
	    "name" : "User-Agent",
	    "values" : [ "Jodd HTTP" ]
	  }, {
	    "name" : "Content-Length",
	    "values" : [ "0" ]
	  } ],
	  "keepAlive" : false,
	  "secure" : true
	}

 as curl:

	curl -v 'https://localhost:1080/get_books' -H 'Host: localhost:1080' -H 'User-Agent: Jodd HTTP' -H 'Content-Length: 0'


17:00:06.746 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Sending request: {
  "method" : "PUT",
  "path" : "/verify",
  "body" : "{\n  \"httpRequest\" : {\n    \"path\" : \"/get_books\"\n  },\n  \"times\" : {\n    \"count\" : 1,\n    \"exact\" : true\n  }\n}"
}
17:00:06.806 [nioEventLoopGroup-5-3] INFO  o.m.proxy.http.HttpProxyHandler - verifying:

	{
	  "httpRequest" : {
	    "path" : "/get_books"
	  },
	  "times" : {
	    "count" : 1,
	    "exact" : true
	  }
	}


17:00:06.808 [nioEventLoopGroup-5-3] INFO  o.m.matchers.HttpRequestMatcher - request:

	{
	  "method" : "GET",
	  "path" : "/get_books",
	  "headers" : [ {
	    "name" : "Host",
	    "values" : [ "localhost:1080" ]
	  }, {
	    "name" : "User-Agent",
	    "values" : [ "Jodd HTTP" ]
	  }, {
	    "name" : "Content-Length",
	    "values" : [ "0" ]
	  } ],
	  "keepAlive" : false,
	  "secure" : true
	}

 matched expectation:

	{
	  "path" : "/get_books"
	}


17:00:06.810 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Received response: {
  "statusCode" : 202,
  "headers" : [ {
    "name" : "Connection",
    "values" : [ "keep-alive" ]
  }, {
    "name" : "Content-Length",
    "values" : [ "0" ]
  }, {
    "name" : "Content-Type",
    "values" : [ "application/json; charset=utf-8" ]
  } ]
}
17:00:06.812 [nioEventLoopGroup-9-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-9-1
17:00:06.813 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Sending request: {
  "method" : "PUT",
  "path" : "/stop"
}
17:00:06.857 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Received response: {
  "statusCode" : 202,
  "headers" : [ {
    "name" : "Connection",
    "values" : [ "keep-alive" ]
  }, {
    "name" : "Content-Length",
    "values" : [ "0" ]
  }, {
    "name" : "Content-Type",
    "values" : [ "application/json; charset=utf-8" ]
  } ]
}
17:00:06.859 [nioEventLoopGroup-10-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-10-1
17:00:06.861 [nioEventLoopGroup-5-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 3 thread-local buffer(s) from thread: nioEventLoopGroup-5-1
17:00:06.862 [nioEventLoopGroup-5-3] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-5-3
17:00:06.862 [nioEventLoopGroup-5-2] DEBUG io.netty.buffer.PoolThreadCache - Freed 7 thread-local buffer(s) from thread: nioEventLoopGroup-5-2
17:00:06.870 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Sending request: {
  "method" : "PUT",
  "path" : "/stop"
}
17:00:06.910 [nioEventLoopGroup-3-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x576bd9ec, /127.0.0.1:65443 => /127.0.0.1:1080] RECEIVED, HttpObjectAggregator$AggregatedFullHttpRequest(decodeResult: success, version: HTTP/1.1, content: CompositeByteBuf(ridx: 0, widx: 0, cap: 0, components=0))
PUT /stop HTTP/1.1
Host: localhost:1080
Accept-Encoding: gzip,deflate
Content-Length: 0
Connection: keep-alive, 0B
17:00:06.912 [nioEventLoopGroup-3-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x576bd9ec, /127.0.0.1:65443 => /127.0.0.1:1080] WRITE, DefaultFullHttpResponse(decodeResult: success, version: HTTP/1.1, content: EmptyByteBufBE)
HTTP/1.1 202 Accepted
Content-Length: 0
Connection: keep-alive
Content-Type: text/plain, 0B
17:00:06.913 [nioEventLoopGroup-3-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x576bd9ec, /127.0.0.1:65443 => /127.0.0.1:1080] FLUSH
17:00:06.913 [nioEventLoopGroup-3-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x576bd9ec, /127.0.0.1:65443 => /127.0.0.1:1080] CLOSE()
17:00:06.915 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Received response: {
  "statusCode" : 202,
  "headers" : [ {
    "name" : "Connection",
    "values" : [ "keep-alive" ]
  }, {
    "name" : "Content-Length",
    "values" : [ "0" ]
  }, {
    "name" : "Content-Type",
    "values" : [ "text/plain" ]
  } ]
}
17:00:06.917 [nioEventLoopGroup-11-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-11-1
17:00:06.919 [nioEventLoopGroup-3-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 5 thread-local buffer(s) from thread: nioEventLoopGroup-3-1
17:00:06.919 [nioEventLoopGroup-3-2] DEBUG io.netty.buffer.PoolThreadCache - Freed 10 thread-local buffer(s) from thread: nioEventLoopGroup-3-2
17:00:06.930 [MockServer thread for port: 1080] INFO  org.mockserver.mockserver.MockServer - MockServer started on port: 1080
17:00:06.934 [MockServer HttpProxy Thread] INFO  org.mockserver.proxy.http.HttpProxy - MockServer proxy started on port: 1090
17:00:06.936 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Sending request: {
  "method" : "PUT",
  "path" : "/expectation",
  "body" : {
    "charset" : "UTF-8",
    "type" : "STRING",
    "string" : "{\n  \"httpRequest\" : {\n    \"path\" : \"/get_books\"\n  },\n  \"httpResponse\" : {\n    \"headers\" : [ {\n      \"name\" : \"Content-Type\",\n      \"values\" : [ \"application/json\" ]\n    } ],\n    \"body\" : \"[\\n    {\\n        \\\"id\\\": \\\"1\\\",\\n        \\\"title\\\": \\\"Xenophon's imperial fiction : on the education of Cyrus\\\",\\n        \\\"author\\\": \\\"James Tatum\\\",\\n        \\\"isbn\\\": \\\"0691067570\\\",\\n        \\\"publicationDate\\\": \\\"1989\\\"\\n    },\\n    {\\n        \\\"id\\\": \\\"2\\\",\\n        \\\"title\\\": \\\"You are here : personal geographies and other maps of the imagination\\\",\\n        \\\"author\\\": \\\"Katharine A. Harmon\\\",\\n        \\\"isbn\\\": \\\"1568984308\\\",\\n        \\\"publicationDate\\\": \\\"2004\\\"\\n    },\\n    {\\n        \\\"id\\\": \\\"3\\\",\\n        \\\"title\\\": \\\"You just don't understand : women and men in conversation\\\",\\n        \\\"author\\\": \\\"Deborah Tannen\\\",\\n        \\\"isbn\\\": \\\"0345372050\\\",\\n        \\\"publicationDate\\\": \\\"1990\\\"\\n    }]\"\n  },\n  \"times\" : {\n    \"remainingTimes\" : 0,\n    \"unlimited\" : true\n  },\n  \"timeToLive\" : {\n    \"unlimited\" : true\n  }\n}"
  }
}
17:00:06.973 [nioEventLoopGroup-13-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x1393aa4d, /127.0.0.1:65444 => /127.0.0.1:1080] RECEIVED: HttpObjectAggregator$AggregatedFullHttpRequest(decodeResult: success, version: HTTP/1.1, content: CompositeByteBuf(ridx: 0, widx: 1034, cap: 1034, components=2))
PUT /expectation HTTP/1.1
Host: localhost:1080
Accept-Encoding: gzip,deflate
Content-Length: 1034
Connection: keep-alive
Content-Type: text/plain; charset=utf-8, 1034B
         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 7b 0a 20 20 22 68 74 74 70 52 65 71 75 65 73 74 |{.  "httpRequest|
|00000010| 22 20 3a 20 7b 0a 20 20 20 20 22 70 61 74 68 22 |" : {.    "path"|
|00000020| 20 3a 20 22 2f 67 65 74 5f 62 6f 6f 6b 73 22 0a | : "/get_books".|
|00000030| 20 20 7d 2c 0a 20 20 22 68 74 74 70 52 65 73 70 |  },.  "httpResp|
|00000040| 6f 6e 73 65 22 20 3a 20 7b 0a 20 20 20 20 22 68 |onse" : {.    "h|
|00000050| 65 61 64 65 72 73 22 20 3a 20 5b 20 7b 0a 20 20 |eaders" : [ {.  |
|00000060| 20 20 20 20 22 6e 61 6d 65 22 20 3a 20 22 43 6f |    "name" : "Co|
|00000070| 6e 74 65 6e 74 2d 54 79 70 65 22 2c 0a 20 20 20 |ntent-Type",.   |
|00000080| 20 20 20 22 76 61 6c 75 65 73 22 20 3a 20 5b 20 |   "values" : [ |
|00000090| 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f |"application/jso|
|000000a0| 6e 22 20 5d 0a 20 20 20 20 7d 20 5d 2c 0a 20 20 |n" ].    } ],.  |
|000000b0| 20 20 22 62 6f 64 79 22 20 3a 20 22 5b 5c 6e 20 |  "body" : "[\n |
|000000c0| 20 20 20 7b 5c 6e 20 20 20 20 20 20 20 20 5c 22 |   {\n        \"|
|000000d0| 69 64 5c 22 3a 20 5c 22 31 5c 22 2c 5c 6e 20 20 |id\": \"1\",\n  |
|000000e0| 20 20 20 20 20 20 5c 22 74 69 74 6c 65 5c 22 3a |      \"title\":|
|000000f0| 20 5c 22 58 65 6e 6f 70 68 6f 6e 27 73 20 69 6d | \"Xenophon's im|
|00000100| 70 65 72 69 61 6c 20 66 69 63 74 69 6f 6e 20 3a |perial fiction :|
|00000110| 20 6f 6e 20 74 68 65 20 65 64 75 63 61 74 69 6f | on the educatio|
|00000120| 6e 20 6f 66 20 43 79 72 75 73 5c 22 2c 5c 6e 20 |n of Cyrus\",\n |
|00000130| 20 20 20 20 20 20 20 5c 22 61 75 74 68 6f 72 5c |       \"author\|
|00000140| 22 3a 20 5c 22 4a 61 6d 65 73 20 54 61 74 75 6d |": \"James Tatum|
|00000150| 5c 22 2c 5c 6e 20 20 20 20 20 20 20 20 5c 22 69 |\",\n        \"i|
|00000160| 73 62 6e 5c 22 3a 20 5c 22 30 36 39 31 30 36 37 |sbn\": \"0691067|
|00000170| 35 37 30 5c 22 2c 5c 6e 20 20 20 20 20 20 20 20 |570\",\n        |
|00000180| 5c 22 70 75 62 6c 69 63 61 74 69 6f 6e 44 61 74 |\"publicationDat|
|00000190| 65 5c 22 3a 20 5c 22 31 39 38 39 5c 22 5c 6e 20 |e\": \"1989\"\n |
|000001a0| 20 20 20 7d 2c 5c 6e 20 20 20 20 7b 5c 6e 20 20 |   },\n    {\n  |
|000001b0| 20 20 20 20 20 20 5c 22 69 64 5c 22 3a 20 5c 22 |      \"id\": \"|
|000001c0| 32 5c 22 2c 5c 6e 20 20 20 20 20 20 20 20 5c 22 |2\",\n        \"|
|000001d0| 74 69 74 6c 65 5c 22 3a 20 5c 22 59 6f 75 20 61 |title\": \"You a|
|000001e0| 72 65 20 68 65 72 65 20 3a 20 70 65 72 73 6f 6e |re here : person|
|000001f0| 61 6c 20 67 65 6f 67 72 61 70 68 69 65 73 20 61 |al geographies a|
|00000200| 6e 64 20 6f 74 68 65 72 20 6d 61 70 73 20 6f 66 |nd other maps of|
|00000210| 20 74 68 65 20 69 6d 61 67 69 6e 61 74 69 6f 6e | the imagination|
|00000220| 5c 22 2c 5c 6e 20 20 20 20 20 20 20 20 5c 22 61 |\",\n        \"a|
|00000230| 75 74 68 6f 72 5c 22 3a 20 5c 22 4b 61 74 68 61 |uthor\": \"Katha|
|00000240| 72 69 6e 65 20 41 2e 20 48 61 72 6d 6f 6e 5c 22 |rine A. Harmon\"|
|00000250| 2c 5c 6e 20 20 20 20 20 20 20 20 5c 22 69 73 62 |,\n        \"isb|
|00000260| 6e 5c 22 3a 20 5c 22 31 35 36 38 39 38 34 33 30 |n\": \"156898430|
|00000270| 38 5c 22 2c 5c 6e 20 20 20 20 20 20 20 20 5c 22 |8\",\n        \"|
|00000280| 70 75 62 6c 69 63 61 74 69 6f 6e 44 61 74 65 5c |publicationDate\|
|00000290| 22 3a 20 5c 22 32 30 30 34 5c 22 5c 6e 20 20 20 |": \"2004\"\n   |
|000002a0| 20 7d 2c 5c 6e 20 20 20 20 7b 5c 6e 20 20 20 20 | },\n    {\n    |
|000002b0| 20 20 20 20 5c 22 69 64 5c 22 3a 20 5c 22 33 5c |    \"id\": \"3\|
|000002c0| 22 2c 5c 6e 20 20 20 20 20 20 20 20 5c 22 74 69 |",\n        \"ti|
|000002d0| 74 6c 65 5c 22 3a 20 5c 22 59 6f 75 20 6a 75 73 |tle\": \"You jus|
|000002e0| 74 20 64 6f 6e 27 74 20 75 6e 64 65 72 73 74 61 |t don't understa|
|000002f0| 6e 64 20 3a 20 77 6f 6d 65 6e 20 61 6e 64 20 6d |nd : women and m|
|00000300| 65 6e 20 69 6e 20 63 6f 6e 76 65 72 73 61 74 69 |en in conversati|
|00000310| 6f 6e 5c 22 2c 5c 6e 20 20 20 20 20 20 20 20 5c |on\",\n        \|
|00000320| 22 61 75 74 68 6f 72 5c 22 3a 20 5c 22 44 65 62 |"author\": \"Deb|
|00000330| 6f 72 61 68 20 54 61 6e 6e 65 6e 5c 22 2c 5c 6e |orah Tannen\",\n|
|00000340| 20 20 20 20 20 20 20 20 5c 22 69 73 62 6e 5c 22 |        \"isbn\"|
|00000350| 3a 20 5c 22 30 33 34 35 33 37 32 30 35 30 5c 22 |: \"0345372050\"|
|00000360| 2c 5c 6e 20 20 20 20 20 20 20 20 5c 22 70 75 62 |,\n        \"pub|
|00000370| 6c 69 63 61 74 69 6f 6e 44 61 74 65 5c 22 3a 20 |licationDate\": |
|00000380| 5c 22 31 39 39 30 5c 22 5c 6e 20 20 20 20 7d 5d |\"1990\"\n    }]|
|00000390| 22 0a 20 20 7d 2c 0a 20 20 22 74 69 6d 65 73 22 |".  },.  "times"|
|000003a0| 20 3a 20 7b 0a 20 20 20 20 22 72 65 6d 61 69 6e | : {.    "remain|
|000003b0| 69 6e 67 54 69 6d 65 73 22 20 3a 20 30 2c 0a 20 |ingTimes" : 0,. |
|000003c0| 20 20 20 22 75 6e 6c 69 6d 69 74 65 64 22 20 3a |   "unlimited" :|
|000003d0| 20 74 72 75 65 0a 20 20 7d 2c 0a 20 20 22 74 69 | true.  },.  "ti|
|000003e0| 6d 65 54 6f 4c 69 76 65 22 20 3a 20 7b 0a 20 20 |meToLive" : {.  |
|000003f0| 20 20 22 75 6e 6c 69 6d 69 74 65 64 22 20 3a 20 |  "unlimited" : |
|00000400| 74 72 75 65 0a 20 20 7d 0a 7d                   |true.  }.}      |
+--------+-------------------------------------------------+----------------+
17:00:06.982 [nioEventLoopGroup-13-1] INFO  o.m.mockserver.MockServerHandler - creating expectation:

	{
	  "httpRequest" : {
	    "path" : "/get_books"
	  },
	  "times" : {
	    "remainingTimes" : 0,
	    "unlimited" : true
	  },
	  "timeToLive" : {
	    "unlimited" : true
	  },
	  "httpResponse" : {
	    "headers" : [ {
	      "name" : "Content-Type",
	      "values" : [ "application/json" ]
	    } ],
	    "body" : "[\n    {\n        \"id\": \"1\",\n        \"title\": \"Xenophon's imperial fiction : on the education of Cyrus\",\n        \"author\": \"James Tatum\",\n        \"isbn\": \"0691067570\",\n        \"publicationDate\": \"1989\"\n    },\n    {\n        \"id\": \"2\",\n        \"title\": \"You are here : personal geographies and other maps of the imagination\",\n        \"author\": \"Katharine A. Harmon\",\n        \"isbn\": \"1568984308\",\n        \"publicationDate\": \"2004\"\n    },\n    {\n        \"id\": \"3\",\n        \"title\": \"You just don't understand : women and men in conversation\",\n        \"author\": \"Deborah Tannen\",\n        \"isbn\": \"0345372050\",\n        \"publicationDate\": \"1990\"\n    }]"
	  }
	}


17:00:06.983 [nioEventLoopGroup-13-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x1393aa4d, /127.0.0.1:65444 => /127.0.0.1:1080] WRITE, DefaultFullHttpResponse(decodeResult: success, version: HTTP/1.1, content: EmptyByteBufBE)
HTTP/1.1 201 Created
Content-Length: 0
Connection: keep-alive
Content-Type: text/plain, 0B
17:00:06.983 [nioEventLoopGroup-13-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x1393aa4d, /127.0.0.1:65444 => /127.0.0.1:1080] FLUSH
17:00:06.984 [nioEventLoopGroup-13-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x1393aa4d, /127.0.0.1:65444 => /127.0.0.1:1080] FLUSH
17:00:06.984 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Received response: {
  "statusCode" : 201,
  "headers" : [ {
    "name" : "Connection",
    "values" : [ "keep-alive" ]
  }, {
    "name" : "Content-Length",
    "values" : [ "0" ]
  }, {
    "name" : "Content-Type",
    "values" : [ "text/plain" ]
  } ]
}
17:00:06.985 [nioEventLoopGroup-13-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x1393aa4d, /127.0.0.1:65444 :> /127.0.0.1:1080] INACTIVE
17:00:06.985 [nioEventLoopGroup-13-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x1393aa4d, /127.0.0.1:65444 :> /127.0.0.1:1080] UNREGISTERED
17:00:06.986 [nioEventLoopGroup-16-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 3 thread-local buffer(s) from thread: nioEventLoopGroup-16-1
17:00:07.031 [nioEventLoopGroup-15-1] DEBUG io.netty.handler.ssl.SslHandler - [id: 0x2d078ad9, /127.0.0.1:65445 => /127.0.0.1:1090] HANDSHAKEN: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
17:00:07.037 [nioEventLoopGroup-15-1] DEBUG i.n.h.s.u.InsecureTrustManagerFactory - Accepting a server certificate: C=UK, ST=England, L=London, O=MockServer, CN=localhost
17:00:07.050 [nioEventLoopGroup-15-2] DEBUG io.netty.handler.ssl.SslHandler - [id: 0xb0db21e0, /192.168.1.122:65446 => /192.168.1.122:1090] HANDSHAKEN: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
17:00:07.052 [nioEventLoopGroup-15-1] DEBUG io.netty.handler.ssl.SslHandler - [id: 0x88a940b5, /192.168.1.122:65446 => 0.0.0.0/0.0.0.0:1090] HANDSHAKEN: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
17:00:07.057 [nioEventLoopGroup-15-2] DEBUG o.m.client.netty.NettyHttpClient - Sending request: {
  "method" : "GET",
  "path" : "/get_books",
  "headers" : [ {
    "name" : "Host",
    "values" : [ "localhost:1080" ]
  }, {
    "name" : "User-Agent",
    "values" : [ "Jodd HTTP" ]
  }, {
    "name" : "Content-Length",
    "values" : [ "0" ]
  } ],
  "keepAlive" : false,
  "secure" : true
}
17:00:07.073 [nioEventLoopGroup-17-1] DEBUG i.n.h.s.u.InsecureTrustManagerFactory - Accepting a server certificate: C=UK, ST=England, L=London, O=MockServer, CN=localhost
17:00:07.084 [nioEventLoopGroup-13-2] DEBUG io.netty.handler.ssl.SslHandler - [id: 0x30a3a7c7, /127.0.0.1:65447 => /127.0.0.1:1080] HANDSHAKEN: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
17:00:07.086 [nioEventLoopGroup-17-1] DEBUG io.netty.handler.ssl.SslHandler - [id: 0x19c5fc71, /127.0.0.1:65447 => localhost/127.0.0.1:1080] HANDSHAKEN: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
17:00:07.089 [nioEventLoopGroup-13-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x30a3a7c7, /127.0.0.1:65447 => /127.0.0.1:1080] RECEIVED, HttpObjectAggregator$AggregatedFullHttpRequest(decodeResult: success, version: HTTP/1.1, content: CompositeByteBuf(ridx: 0, widx: 0, cap: 0, components=0))
GET /get_books HTTP/1.1
User-Agent: Jodd HTTP
Host: localhost:1080
Accept-Encoding: gzip,deflate
Content-Length: 0
Connection: keep-alive, 0B
17:00:07.091 [nioEventLoopGroup-13-2] INFO  o.m.matchers.HttpRequestMatcher - request:

	{
	  "method" : "GET",
	  "path" : "/get_books",
	  "headers" : [ {
	    "name" : "User-Agent",
	    "values" : [ "Jodd HTTP" ]
	  }, {
	    "name" : "Host",
	    "values" : [ "localhost:1080" ]
	  }, {
	    "name" : "Accept-Encoding",
	    "values" : [ "gzip,deflate" ]
	  }, {
	    "name" : "Content-Length",
	    "values" : [ "0" ]
	  }, {
	    "name" : "Connection",
	    "values" : [ "keep-alive" ]
	  } ],
	  "keepAlive" : true,
	  "secure" : true
	}

 matched expectation:

	{
	  "path" : "/get_books"
	}


17:00:07.093 [nioEventLoopGroup-13-2] INFO  o.m.mockserver.MockServerHandler - returning response:

	{
	  "headers" : [ {
	    "name" : "Content-Type",
	    "values" : [ "application/json" ]
	  } ],
	  "body" : "[\n    {\n        \"id\": \"1\",\n        \"title\": \"Xenophon's imperial fiction : on the education of Cyrus\",\n        \"author\": \"James Tatum\",\n        \"isbn\": \"0691067570\",\n        \"publicationDate\": \"1989\"\n    },\n    {\n        \"id\": \"2\",\n        \"title\": \"You are here : personal geographies and other maps of the imagination\",\n        \"author\": \"Katharine A. Harmon\",\n        \"isbn\": \"1568984308\",\n        \"publicationDate\": \"2004\"\n    },\n    {\n        \"id\": \"3\",\n        \"title\": \"You just don't understand : women and men in conversation\",\n        \"author\": \"Deborah Tannen\",\n        \"isbn\": \"0345372050\",\n        \"publicationDate\": \"1990\"\n    }]"
	}

 for request:

	{
	  "method" : "GET",
	  "path" : "/get_books",
	  "headers" : [ {
	    "name" : "User-Agent",
	    "values" : [ "Jodd HTTP" ]
	  }, {
	    "name" : "Host",
	    "values" : [ "localhost:1080" ]
	  }, {
	    "name" : "Accept-Encoding",
	    "values" : [ "gzip,deflate" ]
	  }, {
	    "name" : "Content-Length",
	    "values" : [ "0" ]
	  } ],
	  "keepAlive" : true,
	  "secure" : true
	}


17:00:07.094 [nioEventLoopGroup-13-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x30a3a7c7, /127.0.0.1:65447 => /127.0.0.1:1080] WRITE: DefaultFullHttpResponse(decodeResult: success, version: HTTP/1.1, content: UnpooledHeapByteBuf(ridx: 0, widx: 643, cap: 643/643))
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 643
Connection: keep-alive, 643B
         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 |[.    {.        |
|00000010| 22 69 64 22 3a 20 22 31 22 2c 0a 20 20 20 20 20 |"id": "1",.     |
|00000020| 20 20 20 22 74 69 74 6c 65 22 3a 20 22 58 65 6e |   "title": "Xen|
|00000030| 6f 70 68 6f 6e 27 73 20 69 6d 70 65 72 69 61 6c |ophon's imperial|
|00000040| 20 66 69 63 74 69 6f 6e 20 3a 20 6f 6e 20 74 68 | fiction : on th|
|00000050| 65 20 65 64 75 63 61 74 69 6f 6e 20 6f 66 20 43 |e education of C|
|00000060| 79 72 75 73 22 2c 0a 20 20 20 20 20 20 20 20 22 |yrus",.        "|
|00000070| 61 75 74 68 6f 72 22 3a 20 22 4a 61 6d 65 73 20 |author": "James |
|00000080| 54 61 74 75 6d 22 2c 0a 20 20 20 20 20 20 20 20 |Tatum",.        |
|00000090| 22 69 73 62 6e 22 3a 20 22 30 36 39 31 30 36 37 |"isbn": "0691067|
|000000a0| 35 37 30 22 2c 0a 20 20 20 20 20 20 20 20 22 70 |570",.        "p|
|000000b0| 75 62 6c 69 63 61 74 69 6f 6e 44 61 74 65 22 3a |ublicationDate":|
|000000c0| 20 22 31 39 38 39 22 0a 20 20 20 20 7d 2c 0a 20 | "1989".    },. |
|000000d0| 20 20 20 7b 0a 20 20 20 20 20 20 20 20 22 69 64 |   {.        "id|
|000000e0| 22 3a 20 22 32 22 2c 0a 20 20 20 20 20 20 20 20 |": "2",.        |
|000000f0| 22 74 69 74 6c 65 22 3a 20 22 59 6f 75 20 61 72 |"title": "You ar|
|00000100| 65 20 68 65 72 65 20 3a 20 70 65 72 73 6f 6e 61 |e here : persona|
|00000110| 6c 20 67 65 6f 67 72 61 70 68 69 65 73 20 61 6e |l geographies an|
|00000120| 64 20 6f 74 68 65 72 20 6d 61 70 73 20 6f 66 20 |d other maps of |
|00000130| 74 68 65 20 69 6d 61 67 69 6e 61 74 69 6f 6e 22 |the imagination"|
|00000140| 2c 0a 20 20 20 20 20 20 20 20 22 61 75 74 68 6f |,.        "autho|
|00000150| 72 22 3a 20 22 4b 61 74 68 61 72 69 6e 65 20 41 |r": "Katharine A|
|00000160| 2e 20 48 61 72 6d 6f 6e 22 2c 0a 20 20 20 20 20 |. Harmon",.     |
|00000170| 20 20 20 22 69 73 62 6e 22 3a 20 22 31 35 36 38 |   "isbn": "1568|
|00000180| 39 38 34 33 30 38 22 2c 0a 20 20 20 20 20 20 20 |984308",.       |
|00000190| 20 22 70 75 62 6c 69 63 61 74 69 6f 6e 44 61 74 | "publicationDat|
|000001a0| 65 22 3a 20 22 32 30 30 34 22 0a 20 20 20 20 7d |e": "2004".    }|
|000001b0| 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 |,.    {.        |
|000001c0| 22 69 64 22 3a 20 22 33 22 2c 0a 20 20 20 20 20 |"id": "3",.     |
|000001d0| 20 20 20 22 74 69 74 6c 65 22 3a 20 22 59 6f 75 |   "title": "You|
|000001e0| 20 6a 75 73 74 20 64 6f 6e 27 74 20 75 6e 64 65 | just don't unde|
|000001f0| 72 73 74 61 6e 64 20 3a 20 77 6f 6d 65 6e 20 61 |rstand : women a|
|00000200| 6e 64 20 6d 65 6e 20 69 6e 20 63 6f 6e 76 65 72 |nd men in conver|
|00000210| 73 61 74 69 6f 6e 22 2c 0a 20 20 20 20 20 20 20 |sation",.       |
|00000220| 20 22 61 75 74 68 6f 72 22 3a 20 22 44 65 62 6f | "author": "Debo|
|00000230| 72 61 68 20 54 61 6e 6e 65 6e 22 2c 0a 20 20 20 |rah Tannen",.   |
|00000240| 20 20 20 20 20 22 69 73 62 6e 22 3a 20 22 30 33 |     "isbn": "03|
|00000250| 34 35 33 37 32 30 35 30 22 2c 0a 20 20 20 20 20 |45372050",.     |
|00000260| 20 20 20 22 70 75 62 6c 69 63 61 74 69 6f 6e 44 |   "publicationD|
|00000270| 61 74 65 22 3a 20 22 31 39 39 30 22 0a 20 20 20 |ate": "1990".   |
|00000280| 20 7d 5d                                        | }]             |
+--------+-------------------------------------------------+----------------+
17:00:07.097 [nioEventLoopGroup-13-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x30a3a7c7, /127.0.0.1:65447 => /127.0.0.1:1080] FLUSH
17:00:07.100 [nioEventLoopGroup-15-2] DEBUG o.m.client.netty.NettyHttpClient - Received response: {
  "statusCode" : 200,
  "headers" : [ {
    "name" : "Connection",
    "values" : [ "keep-alive" ]
  }, {
    "name" : "Content-Length",
    "values" : [ "643" ]
  }, {
    "name" : "Content-Type",
    "values" : [ "application/json" ]
  } ],
  "body" : "[\n    {\n        \"id\": \"1\",\n        \"title\": \"Xenophon's imperial fiction : on the education of Cyrus\",\n        \"author\": \"James Tatum\",\n        \"isbn\": \"0691067570\",\n        \"publicationDate\": \"1989\"\n    },\n    {\n        \"id\": \"2\",\n        \"title\": \"You are here : personal geographies and other maps of the imagination\",\n        \"author\": \"Katharine A. Harmon\",\n        \"isbn\": \"1568984308\",\n        \"publicationDate\": \"2004\"\n    },\n    {\n        \"id\": \"3\",\n        \"title\": \"You just don't understand : women and men in conversation\",\n        \"author\": \"Deborah Tannen\",\n        \"isbn\": \"0345372050\",\n        \"publicationDate\": \"1990\"\n    }]"
}
17:00:07.101 [nioEventLoopGroup-13-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x30a3a7c7, /127.0.0.1:65447 => /127.0.0.1:1080] FLUSH
17:00:07.102 [nioEventLoopGroup-13-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x30a3a7c7, /127.0.0.1:65447 => /127.0.0.1:1080] FLUSH
17:00:07.103 [nioEventLoopGroup-13-2] DEBUG io.netty.handler.ssl.SslHandler - [id: 0x30a3a7c7, /127.0.0.1:65447 => /127.0.0.1:1080] Swallowing a harmless 'connection reset by peer / broken pipe' error that occurred while writing close_notify in response to the peer's close_notify
java.io.IOException: Connection reset by peer
	at sun.nio.ch.FileDispatcherImpl.read0(Native Method) ~[na:1.8.0_144]
	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39) ~[na:1.8.0_144]
	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) ~[na:1.8.0_144]
	at sun.nio.ch.IOUtil.read(IOUtil.java:192) ~[na:1.8.0_144]
	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) ~[na:1.8.0_144]
	at io.netty.buffer.PooledUnsafeDirectByteBuf.setBytes(PooledUnsafeDirectByteBuf.java:221) ~[netty-buffer-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:898) ~[netty-buffer-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:242) ~[netty-transport-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:119) ~[netty-transport-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511) [netty-transport-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468) [netty-transport-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382) [netty-transport-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354) [netty-transport-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112) [netty-common-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137) [netty-common-4.0.34.Final.jar:4.0.34.Final]
	at java.lang.Thread.run(Thread.java:748) [na:1.8.0_144]
17:00:07.104 [nioEventLoopGroup-13-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x30a3a7c7, /127.0.0.1:65447 :> /127.0.0.1:1080] INACTIVE
17:00:07.104 [nioEventLoopGroup-13-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x30a3a7c7, /127.0.0.1:65447 :> /127.0.0.1:1080] UNREGISTERED
17:00:07.105 [nioEventLoopGroup-17-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 11 thread-local buffer(s) from thread: nioEventLoopGroup-17-1
17:00:07.107 [nioEventLoopGroup-15-2] INFO  o.m.proxy.http.HttpProxyHandler - returning response:

	{
	  "statusCode" : 200,
	  "headers" : [ {
	    "name" : "Connection",
	    "values" : [ "keep-alive" ]
	  }, {
	    "name" : "Content-Length",
	    "values" : [ "643" ]
	  }, {
	    "name" : "Content-Type",
	    "values" : [ "application/json" ]
	  } ],
	  "body" : "[\n    {\n        \"id\": \"1\",\n        \"title\": \"Xenophon's imperial fiction : on the education of Cyrus\",\n        \"author\": \"James Tatum\",\n        \"isbn\": \"0691067570\",\n        \"publicationDate\": \"1989\"\n    },\n    {\n        \"id\": \"2\",\n        \"title\": \"You are here : personal geographies and other maps of the imagination\",\n        \"author\": \"Katharine A. Harmon\",\n        \"isbn\": \"1568984308\",\n        \"publicationDate\": \"2004\"\n    },\n    {\n        \"id\": \"3\",\n        \"title\": \"You just don't understand : women and men in conversation\",\n        \"author\": \"Deborah Tannen\",\n        \"isbn\": \"0345372050\",\n        \"publicationDate\": \"1990\"\n    }]"
	}

 for request as json:

	{
	  "method" : "GET",
	  "path" : "/get_books",
	  "headers" : [ {
	    "name" : "Host",
	    "values" : [ "localhost:1080" ]
	  }, {
	    "name" : "User-Agent",
	    "values" : [ "Jodd HTTP" ]
	  }, {
	    "name" : "Content-Length",
	    "values" : [ "0" ]
	  } ],
	  "keepAlive" : false,
	  "secure" : true
	}

 as curl:

	curl -v 'https://localhost:1080/get_books' -H 'Host: localhost:1080' -H 'User-Agent: Jodd HTTP' -H 'Content-Length: 0'


17:00:07.115 [nioEventLoopGroup-15-1] DEBUG io.netty.handler.ssl.SslHandler - [id: 0x88a940b5, /192.168.1.122:65446 => 0.0.0.0/0.0.0.0:1090] Swallowing a harmless 'connection reset by peer / broken pipe' error that occurred while writing close_notify in response to the peer's close_notify
java.io.IOException: Connection reset by peer
	at sun.nio.ch.FileDispatcherImpl.read0(Native Method) ~[na:1.8.0_144]
	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39) ~[na:1.8.0_144]
	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) ~[na:1.8.0_144]
	at sun.nio.ch.IOUtil.read(IOUtil.java:192) ~[na:1.8.0_144]
	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) ~[na:1.8.0_144]
	at io.netty.buffer.UnpooledUnsafeDirectByteBuf.setBytes(UnpooledUnsafeDirectByteBuf.java:357) ~[netty-buffer-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:898) ~[netty-buffer-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:242) ~[netty-transport-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:119) ~[netty-transport-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511) [netty-transport-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468) [netty-transport-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382) [netty-transport-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354) [netty-transport-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112) [netty-common-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137) [netty-common-4.0.34.Final.jar:4.0.34.Final]
	at java.lang.Thread.run(Thread.java:748) [na:1.8.0_144]
17:00:07.114 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Sending request: {
  "method" : "PUT",
  "path" : "/verify",
  "body" : "{\n  \"httpRequest\" : {\n    \"path\" : \"/get_books\"\n  },\n  \"times\" : {\n    \"count\" : 1,\n    \"exact\" : true\n  }\n}"
}
17:00:07.124 [nioEventLoopGroup-15-3] INFO  o.m.proxy.http.HttpProxyHandler - verifying:

	{
	  "httpRequest" : {
	    "path" : "/get_books"
	  },
	  "times" : {
	    "count" : 1,
	    "exact" : true
	  }
	}


17:00:07.125 [nioEventLoopGroup-15-3] INFO  o.m.matchers.HttpRequestMatcher - request:

	{
	  "method" : "GET",
	  "path" : "/get_books",
	  "headers" : [ {
	    "name" : "Host",
	    "values" : [ "localhost:1080" ]
	  }, {
	    "name" : "User-Agent",
	    "values" : [ "Jodd HTTP" ]
	  }, {
	    "name" : "Content-Length",
	    "values" : [ "0" ]
	  } ],
	  "keepAlive" : false,
	  "secure" : true
	}

 matched expectation:

	{
	  "path" : "/get_books"
	}


17:00:07.127 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Received response: {
  "statusCode" : 202,
  "headers" : [ {
    "name" : "Connection",
    "values" : [ "keep-alive" ]
  }, {
    "name" : "Content-Length",
    "values" : [ "0" ]
  }, {
    "name" : "Content-Type",
    "values" : [ "application/json; charset=utf-8" ]
  } ]
}
17:00:07.128 [nioEventLoopGroup-18-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-18-1
17:00:07.129 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Sending request: {
  "method" : "PUT",
  "path" : "/stop"
}
17:00:07.138 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Received response: {
  "statusCode" : 202,
  "headers" : [ {
    "name" : "Connection",
    "values" : [ "keep-alive" ]
  }, {
    "name" : "Content-Length",
    "values" : [ "0" ]
  }, {
    "name" : "Content-Type",
    "values" : [ "application/json; charset=utf-8" ]
  } ]
}
17:00:07.139 [nioEventLoopGroup-15-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 13 thread-local buffer(s) from thread: nioEventLoopGroup-15-1
17:00:07.139 [nioEventLoopGroup-15-2] DEBUG io.netty.buffer.PoolThreadCache - Freed 7 thread-local buffer(s) from thread: nioEventLoopGroup-15-2
17:00:07.141 [nioEventLoopGroup-19-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-19-1
17:00:07.141 [nioEventLoopGroup-15-3] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-15-3
17:00:07.143 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Sending request: {
  "method" : "PUT",
  "path" : "/stop"
}
17:00:07.149 [nioEventLoopGroup-13-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x8a6a3b11, /127.0.0.1:65450 => /127.0.0.1:1080] RECEIVED, HttpObjectAggregator$AggregatedFullHttpRequest(decodeResult: success, version: HTTP/1.1, content: CompositeByteBuf(ridx: 0, widx: 0, cap: 0, components=0))
PUT /stop HTTP/1.1
Host: localhost:1080
Accept-Encoding: gzip,deflate
Content-Length: 0
Connection: keep-alive, 0B
17:00:07.150 [nioEventLoopGroup-13-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x8a6a3b11, /127.0.0.1:65450 => /127.0.0.1:1080] WRITE, DefaultFullHttpResponse(decodeResult: success, version: HTTP/1.1, content: EmptyByteBufBE)
HTTP/1.1 202 Accepted
Content-Length: 0
Connection: keep-alive
Content-Type: text/plain, 0B
17:00:07.150 [nioEventLoopGroup-13-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x8a6a3b11, /127.0.0.1:65450 => /127.0.0.1:1080] FLUSH
17:00:07.150 [nioEventLoopGroup-13-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x8a6a3b11, /127.0.0.1:65450 => /127.0.0.1:1080] CLOSE()
17:00:07.151 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Received response: {
  "statusCode" : 202,
  "headers" : [ {
    "name" : "Connection",
    "values" : [ "keep-alive" ]
  }, {
    "name" : "Content-Length",
    "values" : [ "0" ]
  }, {
    "name" : "Content-Type",
    "values" : [ "text/plain" ]
  } ]
}
17:00:07.153 [nioEventLoopGroup-13-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 5 thread-local buffer(s) from thread: nioEventLoopGroup-13-1
17:00:07.153 [nioEventLoopGroup-13-2] DEBUG io.netty.buffer.PoolThreadCache - Freed 10 thread-local buffer(s) from thread: nioEventLoopGroup-13-2
17:00:07.155 [nioEventLoopGroup-20-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-20-1
17:00:07.162 [MockServer thread for port: 1080] INFO  org.mockserver.mockserver.MockServer - MockServer started on port: 1080
17:00:07.165 [MockServer HttpProxy Thread] INFO  org.mockserver.proxy.http.HttpProxy - MockServer proxy started on port: 1090
17:00:07.166 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Sending request: {
  "method" : "PUT",
  "path" : "/expectation",
  "body" : {
    "charset" : "UTF-8",
    "type" : "STRING",
    "string" : "{\n  \"httpRequest\" : {\n    \"path\" : \"/get_books\"\n  },\n  \"httpResponse\" : {\n    \"headers\" : [ {\n      \"name\" : \"Content-Type\",\n      \"values\" : [ \"application/json\" ]\n    } ],\n    \"body\" : \"[\\n    {\\n        \\\"id\\\": \\\"1\\\",\\n        \\\"title\\\": \\\"Xenophon's imperial fiction : on the education of Cyrus\\\",\\n        \\\"author\\\": \\\"James Tatum\\\",\\n        \\\"isbn\\\": \\\"0691067570\\\",\\n        \\\"publicationDate\\\": \\\"1989\\\"\\n    },\\n    {\\n        \\\"id\\\": \\\"2\\\",\\n        \\\"title\\\": \\\"You are here : personal geographies and other maps of the imagination\\\",\\n        \\\"author\\\": \\\"Katharine A. Harmon\\\",\\n        \\\"isbn\\\": \\\"1568984308\\\",\\n        \\\"publicationDate\\\": \\\"2004\\\"\\n    },\\n    {\\n        \\\"id\\\": \\\"3\\\",\\n        \\\"title\\\": \\\"You just don't understand : women and men in conversation\\\",\\n        \\\"author\\\": \\\"Deborah Tannen\\\",\\n        \\\"isbn\\\": \\\"0345372050\\\",\\n        \\\"publicationDate\\\": \\\"1990\\\"\\n    }]\"\n  },\n  \"times\" : {\n    \"remainingTimes\" : 0,\n    \"unlimited\" : true\n  },\n  \"timeToLive\" : {\n    \"unlimited\" : true\n  }\n}"
  }
}
17:00:07.176 [nioEventLoopGroup-22-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x6e6f2464, /127.0.0.1:65451 => /127.0.0.1:1080] RECEIVED: HttpObjectAggregator$AggregatedFullHttpRequest(decodeResult: success, version: HTTP/1.1, content: CompositeByteBuf(ridx: 0, widx: 1034, cap: 1034, components=2))
PUT /expectation HTTP/1.1
Host: localhost:1080
Accept-Encoding: gzip,deflate
Content-Length: 1034
Connection: keep-alive
Content-Type: text/plain; charset=utf-8, 1034B
         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 7b 0a 20 20 22 68 74 74 70 52 65 71 75 65 73 74 |{.  "httpRequest|
|00000010| 22 20 3a 20 7b 0a 20 20 20 20 22 70 61 74 68 22 |" : {.    "path"|
|00000020| 20 3a 20 22 2f 67 65 74 5f 62 6f 6f 6b 73 22 0a | : "/get_books".|
|00000030| 20 20 7d 2c 0a 20 20 22 68 74 74 70 52 65 73 70 |  },.  "httpResp|
|00000040| 6f 6e 73 65 22 20 3a 20 7b 0a 20 20 20 20 22 68 |onse" : {.    "h|
|00000050| 65 61 64 65 72 73 22 20 3a 20 5b 20 7b 0a 20 20 |eaders" : [ {.  |
|00000060| 20 20 20 20 22 6e 61 6d 65 22 20 3a 20 22 43 6f |    "name" : "Co|
|00000070| 6e 74 65 6e 74 2d 54 79 70 65 22 2c 0a 20 20 20 |ntent-Type",.   |
|00000080| 20 20 20 22 76 61 6c 75 65 73 22 20 3a 20 5b 20 |   "values" : [ |
|00000090| 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f |"application/jso|
|000000a0| 6e 22 20 5d 0a 20 20 20 20 7d 20 5d 2c 0a 20 20 |n" ].    } ],.  |
|000000b0| 20 20 22 62 6f 64 79 22 20 3a 20 22 5b 5c 6e 20 |  "body" : "[\n |
|000000c0| 20 20 20 7b 5c 6e 20 20 20 20 20 20 20 20 5c 22 |   {\n        \"|
|000000d0| 69 64 5c 22 3a 20 5c 22 31 5c 22 2c 5c 6e 20 20 |id\": \"1\",\n  |
|000000e0| 20 20 20 20 20 20 5c 22 74 69 74 6c 65 5c 22 3a |      \"title\":|
|000000f0| 20 5c 22 58 65 6e 6f 70 68 6f 6e 27 73 20 69 6d | \"Xenophon's im|
|00000100| 70 65 72 69 61 6c 20 66 69 63 74 69 6f 6e 20 3a |perial fiction :|
|00000110| 20 6f 6e 20 74 68 65 20 65 64 75 63 61 74 69 6f | on the educatio|
|00000120| 6e 20 6f 66 20 43 79 72 75 73 5c 22 2c 5c 6e 20 |n of Cyrus\",\n |
|00000130| 20 20 20 20 20 20 20 5c 22 61 75 74 68 6f 72 5c |       \"author\|
|00000140| 22 3a 20 5c 22 4a 61 6d 65 73 20 54 61 74 75 6d |": \"James Tatum|
|00000150| 5c 22 2c 5c 6e 20 20 20 20 20 20 20 20 5c 22 69 |\",\n        \"i|
|00000160| 73 62 6e 5c 22 3a 20 5c 22 30 36 39 31 30 36 37 |sbn\": \"0691067|
|00000170| 35 37 30 5c 22 2c 5c 6e 20 20 20 20 20 20 20 20 |570\",\n        |
|00000180| 5c 22 70 75 62 6c 69 63 61 74 69 6f 6e 44 61 74 |\"publicationDat|
|00000190| 65 5c 22 3a 20 5c 22 31 39 38 39 5c 22 5c 6e 20 |e\": \"1989\"\n |
|000001a0| 20 20 20 7d 2c 5c 6e 20 20 20 20 7b 5c 6e 20 20 |   },\n    {\n  |
|000001b0| 20 20 20 20 20 20 5c 22 69 64 5c 22 3a 20 5c 22 |      \"id\": \"|
|000001c0| 32 5c 22 2c 5c 6e 20 20 20 20 20 20 20 20 5c 22 |2\",\n        \"|
|000001d0| 74 69 74 6c 65 5c 22 3a 20 5c 22 59 6f 75 20 61 |title\": \"You a|
|000001e0| 72 65 20 68 65 72 65 20 3a 20 70 65 72 73 6f 6e |re here : person|
|000001f0| 61 6c 20 67 65 6f 67 72 61 70 68 69 65 73 20 61 |al geographies a|
|00000200| 6e 64 20 6f 74 68 65 72 20 6d 61 70 73 20 6f 66 |nd other maps of|
|00000210| 20 74 68 65 20 69 6d 61 67 69 6e 61 74 69 6f 6e | the imagination|
|00000220| 5c 22 2c 5c 6e 20 20 20 20 20 20 20 20 5c 22 61 |\",\n        \"a|
|00000230| 75 74 68 6f 72 5c 22 3a 20 5c 22 4b 61 74 68 61 |uthor\": \"Katha|
|00000240| 72 69 6e 65 20 41 2e 20 48 61 72 6d 6f 6e 5c 22 |rine A. Harmon\"|
|00000250| 2c 5c 6e 20 20 20 20 20 20 20 20 5c 22 69 73 62 |,\n        \"isb|
|00000260| 6e 5c 22 3a 20 5c 22 31 35 36 38 39 38 34 33 30 |n\": \"156898430|
|00000270| 38 5c 22 2c 5c 6e 20 20 20 20 20 20 20 20 5c 22 |8\",\n        \"|
|00000280| 70 75 62 6c 69 63 61 74 69 6f 6e 44 61 74 65 5c |publicationDate\|
|00000290| 22 3a 20 5c 22 32 30 30 34 5c 22 5c 6e 20 20 20 |": \"2004\"\n   |
|000002a0| 20 7d 2c 5c 6e 20 20 20 20 7b 5c 6e 20 20 20 20 | },\n    {\n    |
|000002b0| 20 20 20 20 5c 22 69 64 5c 22 3a 20 5c 22 33 5c |    \"id\": \"3\|
|000002c0| 22 2c 5c 6e 20 20 20 20 20 20 20 20 5c 22 74 69 |",\n        \"ti|
|000002d0| 74 6c 65 5c 22 3a 20 5c 22 59 6f 75 20 6a 75 73 |tle\": \"You jus|
|000002e0| 74 20 64 6f 6e 27 74 20 75 6e 64 65 72 73 74 61 |t don't understa|
|000002f0| 6e 64 20 3a 20 77 6f 6d 65 6e 20 61 6e 64 20 6d |nd : women and m|
|00000300| 65 6e 20 69 6e 20 63 6f 6e 76 65 72 73 61 74 69 |en in conversati|
|00000310| 6f 6e 5c 22 2c 5c 6e 20 20 20 20 20 20 20 20 5c |on\",\n        \|
|00000320| 22 61 75 74 68 6f 72 5c 22 3a 20 5c 22 44 65 62 |"author\": \"Deb|
|00000330| 6f 72 61 68 20 54 61 6e 6e 65 6e 5c 22 2c 5c 6e |orah Tannen\",\n|
|00000340| 20 20 20 20 20 20 20 20 5c 22 69 73 62 6e 5c 22 |        \"isbn\"|
|00000350| 3a 20 5c 22 30 33 34 35 33 37 32 30 35 30 5c 22 |: \"0345372050\"|
|00000360| 2c 5c 6e 20 20 20 20 20 20 20 20 5c 22 70 75 62 |,\n        \"pub|
|00000370| 6c 69 63 61 74 69 6f 6e 44 61 74 65 5c 22 3a 20 |licationDate\": |
|00000380| 5c 22 31 39 39 30 5c 22 5c 6e 20 20 20 20 7d 5d |\"1990\"\n    }]|
|00000390| 22 0a 20 20 7d 2c 0a 20 20 22 74 69 6d 65 73 22 |".  },.  "times"|
|000003a0| 20 3a 20 7b 0a 20 20 20 20 22 72 65 6d 61 69 6e | : {.    "remain|
|000003b0| 69 6e 67 54 69 6d 65 73 22 20 3a 20 30 2c 0a 20 |ingTimes" : 0,. |
|000003c0| 20 20 20 22 75 6e 6c 69 6d 69 74 65 64 22 20 3a |   "unlimited" :|
|000003d0| 20 74 72 75 65 0a 20 20 7d 2c 0a 20 20 22 74 69 | true.  },.  "ti|
|000003e0| 6d 65 54 6f 4c 69 76 65 22 20 3a 20 7b 0a 20 20 |meToLive" : {.  |
|000003f0| 20 20 22 75 6e 6c 69 6d 69 74 65 64 22 20 3a 20 |  "unlimited" : |
|00000400| 74 72 75 65 0a 20 20 7d 0a 7d                   |true.  }.}      |
+--------+-------------------------------------------------+----------------+
17:00:07.187 [nioEventLoopGroup-22-1] INFO  o.m.mockserver.MockServerHandler - creating expectation:

	{
	  "httpRequest" : {
	    "path" : "/get_books"
	  },
	  "times" : {
	    "remainingTimes" : 0,
	    "unlimited" : true
	  },
	  "timeToLive" : {
	    "unlimited" : true
	  },
	  "httpResponse" : {
	    "headers" : [ {
	      "name" : "Content-Type",
	      "values" : [ "application/json" ]
	    } ],
	    "body" : "[\n    {\n        \"id\": \"1\",\n        \"title\": \"Xenophon's imperial fiction : on the education of Cyrus\",\n        \"author\": \"James Tatum\",\n        \"isbn\": \"0691067570\",\n        \"publicationDate\": \"1989\"\n    },\n    {\n        \"id\": \"2\",\n        \"title\": \"You are here : personal geographies and other maps of the imagination\",\n        \"author\": \"Katharine A. Harmon\",\n        \"isbn\": \"1568984308\",\n        \"publicationDate\": \"2004\"\n    },\n    {\n        \"id\": \"3\",\n        \"title\": \"You just don't understand : women and men in conversation\",\n        \"author\": \"Deborah Tannen\",\n        \"isbn\": \"0345372050\",\n        \"publicationDate\": \"1990\"\n    }]"
	  }
	}


17:00:07.188 [nioEventLoopGroup-22-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x6e6f2464, /127.0.0.1:65451 => /127.0.0.1:1080] WRITE, DefaultFullHttpResponse(decodeResult: success, version: HTTP/1.1, content: EmptyByteBufBE)
HTTP/1.1 201 Created
Content-Length: 0
Connection: keep-alive
Content-Type: text/plain, 0B
17:00:07.189 [nioEventLoopGroup-22-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x6e6f2464, /127.0.0.1:65451 => /127.0.0.1:1080] FLUSH
17:00:07.191 [nioEventLoopGroup-22-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x6e6f2464, /127.0.0.1:65451 => /127.0.0.1:1080] FLUSH
17:00:07.190 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Received response: {
  "statusCode" : 201,
  "headers" : [ {
    "name" : "Connection",
    "values" : [ "keep-alive" ]
  }, {
    "name" : "Content-Length",
    "values" : [ "0" ]
  }, {
    "name" : "Content-Type",
    "values" : [ "text/plain" ]
  } ]
}
17:00:07.191 [nioEventLoopGroup-22-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x6e6f2464, /127.0.0.1:65451 :> /127.0.0.1:1080] INACTIVE
17:00:07.191 [nioEventLoopGroup-22-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x6e6f2464, /127.0.0.1:65451 :> /127.0.0.1:1080] UNREGISTERED
17:00:07.191 [nioEventLoopGroup-25-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 3 thread-local buffer(s) from thread: nioEventLoopGroup-25-1
17:00:07.198 [nioEventLoopGroup-22-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x0d4a970e, /127.0.0.1:65452 => /127.0.0.1:1080] RECEIVED, HttpObjectAggregator$AggregatedFullHttpRequest(decodeResult: success, version: HTTP/1.1, content: CompositeByteBuf(ridx: 0, widx: 0, cap: 0, components=0))
GET /get_books HTTP/1.1
Connection: Close
Host: localhost:1080
User-Agent: Jodd HTTP
Content-Length: 0, 0B
17:00:07.199 [nioEventLoopGroup-22-2] INFO  o.m.matchers.HttpRequestMatcher - request:

	{
	  "method" : "GET",
	  "path" : "/get_books",
	  "headers" : [ {
	    "name" : "Connection",
	    "values" : [ "Close" ]
	  }, {
	    "name" : "Host",
	    "values" : [ "localhost:1080" ]
	  }, {
	    "name" : "User-Agent",
	    "values" : [ "Jodd HTTP" ]
	  }, {
	    "name" : "Content-Length",
	    "values" : [ "0" ]
	  } ],
	  "keepAlive" : false,
	  "secure" : false
	}

 matched expectation:

	{
	  "path" : "/get_books"
	}


17:00:07.201 [nioEventLoopGroup-22-2] INFO  o.m.mockserver.MockServerHandler - returning response:

	{
	  "headers" : [ {
	    "name" : "Content-Type",
	    "values" : [ "application/json" ]
	  } ],
	  "body" : "[\n    {\n        \"id\": \"1\",\n        \"title\": \"Xenophon's imperial fiction : on the education of Cyrus\",\n        \"author\": \"James Tatum\",\n        \"isbn\": \"0691067570\",\n        \"publicationDate\": \"1989\"\n    },\n    {\n        \"id\": \"2\",\n        \"title\": \"You are here : personal geographies and other maps of the imagination\",\n        \"author\": \"Katharine A. Harmon\",\n        \"isbn\": \"1568984308\",\n        \"publicationDate\": \"2004\"\n    },\n    {\n        \"id\": \"3\",\n        \"title\": \"You just don't understand : women and men in conversation\",\n        \"author\": \"Deborah Tannen\",\n        \"isbn\": \"0345372050\",\n        \"publicationDate\": \"1990\"\n    }]"
	}

 for request:

	{
	  "method" : "GET",
	  "path" : "/get_books",
	  "headers" : [ {
	    "name" : "Host",
	    "values" : [ "localhost:1080" ]
	  }, {
	    "name" : "User-Agent",
	    "values" : [ "Jodd HTTP" ]
	  }, {
	    "name" : "Content-Length",
	    "values" : [ "0" ]
	  } ],
	  "keepAlive" : false,
	  "secure" : false
	}


17:00:07.203 [nioEventLoopGroup-22-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x0d4a970e, /127.0.0.1:65452 => /127.0.0.1:1080] WRITE: DefaultFullHttpResponse(decodeResult: success, version: HTTP/1.1, content: UnpooledHeapByteBuf(ridx: 0, widx: 643, cap: 643/643))
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 643
Connection: close, 643B
         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 |[.    {.        |
|00000010| 22 69 64 22 3a 20 22 31 22 2c 0a 20 20 20 20 20 |"id": "1",.     |
|00000020| 20 20 20 22 74 69 74 6c 65 22 3a 20 22 58 65 6e |   "title": "Xen|
|00000030| 6f 70 68 6f 6e 27 73 20 69 6d 70 65 72 69 61 6c |ophon's imperial|
|00000040| 20 66 69 63 74 69 6f 6e 20 3a 20 6f 6e 20 74 68 | fiction : on th|
|00000050| 65 20 65 64 75 63 61 74 69 6f 6e 20 6f 66 20 43 |e education of C|
|00000060| 79 72 75 73 22 2c 0a 20 20 20 20 20 20 20 20 22 |yrus",.        "|
|00000070| 61 75 74 68 6f 72 22 3a 20 22 4a 61 6d 65 73 20 |author": "James |
|00000080| 54 61 74 75 6d 22 2c 0a 20 20 20 20 20 20 20 20 |Tatum",.        |
|00000090| 22 69 73 62 6e 22 3a 20 22 30 36 39 31 30 36 37 |"isbn": "0691067|
|000000a0| 35 37 30 22 2c 0a 20 20 20 20 20 20 20 20 22 70 |570",.        "p|
|000000b0| 75 62 6c 69 63 61 74 69 6f 6e 44 61 74 65 22 3a |ublicationDate":|
|000000c0| 20 22 31 39 38 39 22 0a 20 20 20 20 7d 2c 0a 20 | "1989".    },. |
|000000d0| 20 20 20 7b 0a 20 20 20 20 20 20 20 20 22 69 64 |   {.        "id|
|000000e0| 22 3a 20 22 32 22 2c 0a 20 20 20 20 20 20 20 20 |": "2",.        |
|000000f0| 22 74 69 74 6c 65 22 3a 20 22 59 6f 75 20 61 72 |"title": "You ar|
|00000100| 65 20 68 65 72 65 20 3a 20 70 65 72 73 6f 6e 61 |e here : persona|
|00000110| 6c 20 67 65 6f 67 72 61 70 68 69 65 73 20 61 6e |l geographies an|
|00000120| 64 20 6f 74 68 65 72 20 6d 61 70 73 20 6f 66 20 |d other maps of |
|00000130| 74 68 65 20 69 6d 61 67 69 6e 61 74 69 6f 6e 22 |the imagination"|
|00000140| 2c 0a 20 20 20 20 20 20 20 20 22 61 75 74 68 6f |,.        "autho|
|00000150| 72 22 3a 20 22 4b 61 74 68 61 72 69 6e 65 20 41 |r": "Katharine A|
|00000160| 2e 20 48 61 72 6d 6f 6e 22 2c 0a 20 20 20 20 20 |. Harmon",.     |
|00000170| 20 20 20 22 69 73 62 6e 22 3a 20 22 31 35 36 38 |   "isbn": "1568|
|00000180| 39 38 34 33 30 38 22 2c 0a 20 20 20 20 20 20 20 |984308",.       |
|00000190| 20 22 70 75 62 6c 69 63 61 74 69 6f 6e 44 61 74 | "publicationDat|
|000001a0| 65 22 3a 20 22 32 30 30 34 22 0a 20 20 20 20 7d |e": "2004".    }|
|000001b0| 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 |,.    {.        |
|000001c0| 22 69 64 22 3a 20 22 33 22 2c 0a 20 20 20 20 20 |"id": "3",.     |
|000001d0| 20 20 20 22 74 69 74 6c 65 22 3a 20 22 59 6f 75 |   "title": "You|
|000001e0| 20 6a 75 73 74 20 64 6f 6e 27 74 20 75 6e 64 65 | just don't unde|
|000001f0| 72 73 74 61 6e 64 20 3a 20 77 6f 6d 65 6e 20 61 |rstand : women a|
|00000200| 6e 64 20 6d 65 6e 20 69 6e 20 63 6f 6e 76 65 72 |nd men in conver|
|00000210| 73 61 74 69 6f 6e 22 2c 0a 20 20 20 20 20 20 20 |sation",.       |
|00000220| 20 22 61 75 74 68 6f 72 22 3a 20 22 44 65 62 6f | "author": "Debo|
|00000230| 72 61 68 20 54 61 6e 6e 65 6e 22 2c 0a 20 20 20 |rah Tannen",.   |
|00000240| 20 20 20 20 20 22 69 73 62 6e 22 3a 20 22 30 33 |     "isbn": "03|
|00000250| 34 35 33 37 32 30 35 30 22 2c 0a 20 20 20 20 20 |45372050",.     |
|00000260| 20 20 20 22 70 75 62 6c 69 63 61 74 69 6f 6e 44 |   "publicationD|
|00000270| 61 74 65 22 3a 20 22 31 39 39 30 22 0a 20 20 20 |ate": "1990".   |
|00000280| 20 7d 5d                                        | }]             |
+--------+-------------------------------------------------+----------------+
17:00:07.205 [nioEventLoopGroup-22-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x0d4a970e, /127.0.0.1:65452 => /127.0.0.1:1080] FLUSH
17:00:07.205 [nioEventLoopGroup-22-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x0d4a970e, /127.0.0.1:65452 => /127.0.0.1:1080] CLOSE()
17:00:07.205 [nioEventLoopGroup-22-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x0d4a970e, /127.0.0.1:65452 :> /127.0.0.1:1080] FLUSH
17:00:07.205 [nioEventLoopGroup-22-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x0d4a970e, /127.0.0.1:65452 :> /127.0.0.1:1080] INACTIVE
17:00:07.206 [nioEventLoopGroup-22-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x0d4a970e, /127.0.0.1:65452 :> /127.0.0.1:1080] UNREGISTERED
17:00:07.207 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Sending request: {
  "method" : "PUT",
  "path" : "/verify",
  "body" : "{\n  \"httpRequest\" : {\n    \"path\" : \"/get_books\"\n  },\n  \"times\" : {\n    \"count\" : 0,\n    \"exact\" : true\n  }\n}"
}
17:00:07.216 [nioEventLoopGroup-24-1] INFO  o.m.proxy.http.HttpProxyHandler - verifying:

	{
	  "httpRequest" : {
	    "path" : "/get_books"
	  },
	  "times" : {
	    "count" : 0,
	    "exact" : true
	  }
	}


17:00:07.218 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Received response: {
  "statusCode" : 202,
  "headers" : [ {
    "name" : "Connection",
    "values" : [ "keep-alive" ]
  }, {
    "name" : "Content-Length",
    "values" : [ "0" ]
  }, {
    "name" : "Content-Type",
    "values" : [ "application/json; charset=utf-8" ]
  } ]
}
17:00:07.220 [nioEventLoopGroup-26-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-26-1
17:00:07.221 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Sending request: {
  "method" : "PUT",
  "path" : "/stop"
}
17:00:07.234 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Received response: {
  "statusCode" : 202,
  "headers" : [ {
    "name" : "Connection",
    "values" : [ "keep-alive" ]
  }, {
    "name" : "Content-Length",
    "values" : [ "0" ]
  }, {
    "name" : "Content-Type",
    "values" : [ "application/json; charset=utf-8" ]
  } ]
}
17:00:07.292 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Sending request: {
  "method" : "PUT",
  "path" : "/stop"
}
17:00:07.290 [nioEventLoopGroup-24-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-24-1
17:00:07.295 [nioEventLoopGroup-27-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-27-1
17:00:07.299 [nioEventLoopGroup-22-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xfd525033, /127.0.0.1:65455 => /127.0.0.1:1080] RECEIVED, HttpObjectAggregator$AggregatedFullHttpRequest(decodeResult: success, version: HTTP/1.1, content: CompositeByteBuf(ridx: 0, widx: 0, cap: 0, components=0))
PUT /stop HTTP/1.1
Host: localhost:1080
Accept-Encoding: gzip,deflate
Content-Length: 0
Connection: keep-alive, 0B
17:00:07.300 [nioEventLoopGroup-22-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xfd525033, /127.0.0.1:65455 => /127.0.0.1:1080] WRITE, DefaultFullHttpResponse(decodeResult: success, version: HTTP/1.1, content: EmptyByteBufBE)
HTTP/1.1 202 Accepted
Content-Length: 0
Connection: keep-alive
Content-Type: text/plain, 0B
17:00:07.300 [nioEventLoopGroup-22-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xfd525033, /127.0.0.1:65455 => /127.0.0.1:1080] FLUSH
17:00:07.300 [nioEventLoopGroup-22-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xfd525033, /127.0.0.1:65455 => /127.0.0.1:1080] CLOSE()
17:00:07.302 [nioEventLoopGroup-22-2] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-22-2
17:00:07.301 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Received response: {
  "statusCode" : 202,
  "headers" : [ {
    "name" : "Connection",
    "values" : [ "keep-alive" ]
  }, {
    "name" : "Content-Length",
    "values" : [ "0" ]
  }, {
    "name" : "Content-Type",
    "values" : [ "text/plain" ]
  } ]
}
17:00:07.303 [nioEventLoopGroup-28-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-28-1
17:00:07.303 [nioEventLoopGroup-22-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 5 thread-local buffer(s) from thread: nioEventLoopGroup-22-1
17:00:07.308 [MockServer thread for port: 1080] INFO  org.mockserver.mockserver.MockServer - MockServer started on port: 1080
17:00:07.311 [MockServer HttpProxy Thread] INFO  org.mockserver.proxy.http.HttpProxy - MockServer proxy started on port: 1090
17:00:07.312 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Sending request: {
  "method" : "PUT",
  "path" : "/expectation",
  "body" : {
    "charset" : "UTF-8",
    "type" : "STRING",
    "string" : "{\n  \"httpRequest\" : {\n    \"path\" : \"/get_books\"\n  },\n  \"httpResponse\" : {\n    \"headers\" : [ {\n      \"name\" : \"Content-Type\",\n      \"values\" : [ \"application/json\" ]\n    } ],\n    \"body\" : \"[\\n    {\\n        \\\"id\\\": \\\"1\\\",\\n        \\\"title\\\": \\\"Xenophon's imperial fiction : on the education of Cyrus\\\",\\n        \\\"author\\\": \\\"James Tatum\\\",\\n        \\\"isbn\\\": \\\"0691067570\\\",\\n        \\\"publicationDate\\\": \\\"1989\\\"\\n    },\\n    {\\n        \\\"id\\\": \\\"2\\\",\\n        \\\"title\\\": \\\"You are here : personal geographies and other maps of the imagination\\\",\\n        \\\"author\\\": \\\"Katharine A. Harmon\\\",\\n        \\\"isbn\\\": \\\"1568984308\\\",\\n        \\\"publicationDate\\\": \\\"2004\\\"\\n    },\\n    {\\n        \\\"id\\\": \\\"3\\\",\\n        \\\"title\\\": \\\"You just don't understand : women and men in conversation\\\",\\n        \\\"author\\\": \\\"Deborah Tannen\\\",\\n        \\\"isbn\\\": \\\"0345372050\\\",\\n        \\\"publicationDate\\\": \\\"1990\\\"\\n    }]\"\n  },\n  \"times\" : {\n    \"remainingTimes\" : 0,\n    \"unlimited\" : true\n  },\n  \"timeToLive\" : {\n    \"unlimited\" : true\n  }\n}"
  }
}
17:00:07.318 [nioEventLoopGroup-30-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x553417c5, /127.0.0.1:65456 => /127.0.0.1:1080] RECEIVED: HttpObjectAggregator$AggregatedFullHttpRequest(decodeResult: success, version: HTTP/1.1, content: CompositeByteBuf(ridx: 0, widx: 1034, cap: 1034, components=2))
PUT /expectation HTTP/1.1
Host: localhost:1080
Accept-Encoding: gzip,deflate
Content-Length: 1034
Connection: keep-alive
Content-Type: text/plain; charset=utf-8, 1034B
         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 7b 0a 20 20 22 68 74 74 70 52 65 71 75 65 73 74 |{.  "httpRequest|
|00000010| 22 20 3a 20 7b 0a 20 20 20 20 22 70 61 74 68 22 |" : {.    "path"|
|00000020| 20 3a 20 22 2f 67 65 74 5f 62 6f 6f 6b 73 22 0a | : "/get_books".|
|00000030| 20 20 7d 2c 0a 20 20 22 68 74 74 70 52 65 73 70 |  },.  "httpResp|
|00000040| 6f 6e 73 65 22 20 3a 20 7b 0a 20 20 20 20 22 68 |onse" : {.    "h|
|00000050| 65 61 64 65 72 73 22 20 3a 20 5b 20 7b 0a 20 20 |eaders" : [ {.  |
|00000060| 20 20 20 20 22 6e 61 6d 65 22 20 3a 20 22 43 6f |    "name" : "Co|
|00000070| 6e 74 65 6e 74 2d 54 79 70 65 22 2c 0a 20 20 20 |ntent-Type",.   |
|00000080| 20 20 20 22 76 61 6c 75 65 73 22 20 3a 20 5b 20 |   "values" : [ |
|00000090| 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f |"application/jso|
|000000a0| 6e 22 20 5d 0a 20 20 20 20 7d 20 5d 2c 0a 20 20 |n" ].    } ],.  |
|000000b0| 20 20 22 62 6f 64 79 22 20 3a 20 22 5b 5c 6e 20 |  "body" : "[\n |
|000000c0| 20 20 20 7b 5c 6e 20 20 20 20 20 20 20 20 5c 22 |   {\n        \"|
|000000d0| 69 64 5c 22 3a 20 5c 22 31 5c 22 2c 5c 6e 20 20 |id\": \"1\",\n  |
|000000e0| 20 20 20 20 20 20 5c 22 74 69 74 6c 65 5c 22 3a |      \"title\":|
|000000f0| 20 5c 22 58 65 6e 6f 70 68 6f 6e 27 73 20 69 6d | \"Xenophon's im|
|00000100| 70 65 72 69 61 6c 20 66 69 63 74 69 6f 6e 20 3a |perial fiction :|
|00000110| 20 6f 6e 20 74 68 65 20 65 64 75 63 61 74 69 6f | on the educatio|
|00000120| 6e 20 6f 66 20 43 79 72 75 73 5c 22 2c 5c 6e 20 |n of Cyrus\",\n |
|00000130| 20 20 20 20 20 20 20 5c 22 61 75 74 68 6f 72 5c |       \"author\|
|00000140| 22 3a 20 5c 22 4a 61 6d 65 73 20 54 61 74 75 6d |": \"James Tatum|
|00000150| 5c 22 2c 5c 6e 20 20 20 20 20 20 20 20 5c 22 69 |\",\n        \"i|
|00000160| 73 62 6e 5c 22 3a 20 5c 22 30 36 39 31 30 36 37 |sbn\": \"0691067|
|00000170| 35 37 30 5c 22 2c 5c 6e 20 20 20 20 20 20 20 20 |570\",\n        |
|00000180| 5c 22 70 75 62 6c 69 63 61 74 69 6f 6e 44 61 74 |\"publicationDat|
|00000190| 65 5c 22 3a 20 5c 22 31 39 38 39 5c 22 5c 6e 20 |e\": \"1989\"\n |
|000001a0| 20 20 20 7d 2c 5c 6e 20 20 20 20 7b 5c 6e 20 20 |   },\n    {\n  |
|000001b0| 20 20 20 20 20 20 5c 22 69 64 5c 22 3a 20 5c 22 |      \"id\": \"|
|000001c0| 32 5c 22 2c 5c 6e 20 20 20 20 20 20 20 20 5c 22 |2\",\n        \"|
|000001d0| 74 69 74 6c 65 5c 22 3a 20 5c 22 59 6f 75 20 61 |title\": \"You a|
|000001e0| 72 65 20 68 65 72 65 20 3a 20 70 65 72 73 6f 6e |re here : person|
|000001f0| 61 6c 20 67 65 6f 67 72 61 70 68 69 65 73 20 61 |al geographies a|
|00000200| 6e 64 20 6f 74 68 65 72 20 6d 61 70 73 20 6f 66 |nd other maps of|
|00000210| 20 74 68 65 20 69 6d 61 67 69 6e 61 74 69 6f 6e | the imagination|
|00000220| 5c 22 2c 5c 6e 20 20 20 20 20 20 20 20 5c 22 61 |\",\n        \"a|
|00000230| 75 74 68 6f 72 5c 22 3a 20 5c 22 4b 61 74 68 61 |uthor\": \"Katha|
|00000240| 72 69 6e 65 20 41 2e 20 48 61 72 6d 6f 6e 5c 22 |rine A. Harmon\"|
|00000250| 2c 5c 6e 20 20 20 20 20 20 20 20 5c 22 69 73 62 |,\n        \"isb|
|00000260| 6e 5c 22 3a 20 5c 22 31 35 36 38 39 38 34 33 30 |n\": \"156898430|
|00000270| 38 5c 22 2c 5c 6e 20 20 20 20 20 20 20 20 5c 22 |8\",\n        \"|
|00000280| 70 75 62 6c 69 63 61 74 69 6f 6e 44 61 74 65 5c |publicationDate\|
|00000290| 22 3a 20 5c 22 32 30 30 34 5c 22 5c 6e 20 20 20 |": \"2004\"\n   |
|000002a0| 20 7d 2c 5c 6e 20 20 20 20 7b 5c 6e 20 20 20 20 | },\n    {\n    |
|000002b0| 20 20 20 20 5c 22 69 64 5c 22 3a 20 5c 22 33 5c |    \"id\": \"3\|
|000002c0| 22 2c 5c 6e 20 20 20 20 20 20 20 20 5c 22 74 69 |",\n        \"ti|
|000002d0| 74 6c 65 5c 22 3a 20 5c 22 59 6f 75 20 6a 75 73 |tle\": \"You jus|
|000002e0| 74 20 64 6f 6e 27 74 20 75 6e 64 65 72 73 74 61 |t don't understa|
|000002f0| 6e 64 20 3a 20 77 6f 6d 65 6e 20 61 6e 64 20 6d |nd : women and m|
|00000300| 65 6e 20 69 6e 20 63 6f 6e 76 65 72 73 61 74 69 |en in conversati|
|00000310| 6f 6e 5c 22 2c 5c 6e 20 20 20 20 20 20 20 20 5c |on\",\n        \|
|00000320| 22 61 75 74 68 6f 72 5c 22 3a 20 5c 22 44 65 62 |"author\": \"Deb|
|00000330| 6f 72 61 68 20 54 61 6e 6e 65 6e 5c 22 2c 5c 6e |orah Tannen\",\n|
|00000340| 20 20 20 20 20 20 20 20 5c 22 69 73 62 6e 5c 22 |        \"isbn\"|
|00000350| 3a 20 5c 22 30 33 34 35 33 37 32 30 35 30 5c 22 |: \"0345372050\"|
|00000360| 2c 5c 6e 20 20 20 20 20 20 20 20 5c 22 70 75 62 |,\n        \"pub|
|00000370| 6c 69 63 61 74 69 6f 6e 44 61 74 65 5c 22 3a 20 |licationDate\": |
|00000380| 5c 22 31 39 39 30 5c 22 5c 6e 20 20 20 20 7d 5d |\"1990\"\n    }]|
|00000390| 22 0a 20 20 7d 2c 0a 20 20 22 74 69 6d 65 73 22 |".  },.  "times"|
|000003a0| 20 3a 20 7b 0a 20 20 20 20 22 72 65 6d 61 69 6e | : {.    "remain|
|000003b0| 69 6e 67 54 69 6d 65 73 22 20 3a 20 30 2c 0a 20 |ingTimes" : 0,. |
|000003c0| 20 20 20 22 75 6e 6c 69 6d 69 74 65 64 22 20 3a |   "unlimited" :|
|000003d0| 20 74 72 75 65 0a 20 20 7d 2c 0a 20 20 22 74 69 | true.  },.  "ti|
|000003e0| 6d 65 54 6f 4c 69 76 65 22 20 3a 20 7b 0a 20 20 |meToLive" : {.  |
|000003f0| 20 20 22 75 6e 6c 69 6d 69 74 65 64 22 20 3a 20 |  "unlimited" : |
|00000400| 74 72 75 65 0a 20 20 7d 0a 7d                   |true.  }.}      |
+--------+-------------------------------------------------+----------------+
17:00:07.326 [nioEventLoopGroup-30-1] INFO  o.m.mockserver.MockServerHandler - creating expectation:

	{
	  "httpRequest" : {
	    "path" : "/get_books"
	  },
	  "times" : {
	    "remainingTimes" : 0,
	    "unlimited" : true
	  },
	  "timeToLive" : {
	    "unlimited" : true
	  },
	  "httpResponse" : {
	    "headers" : [ {
	      "name" : "Content-Type",
	      "values" : [ "application/json" ]
	    } ],
	    "body" : "[\n    {\n        \"id\": \"1\",\n        \"title\": \"Xenophon's imperial fiction : on the education of Cyrus\",\n        \"author\": \"James Tatum\",\n        \"isbn\": \"0691067570\",\n        \"publicationDate\": \"1989\"\n    },\n    {\n        \"id\": \"2\",\n        \"title\": \"You are here : personal geographies and other maps of the imagination\",\n        \"author\": \"Katharine A. Harmon\",\n        \"isbn\": \"1568984308\",\n        \"publicationDate\": \"2004\"\n    },\n    {\n        \"id\": \"3\",\n        \"title\": \"You just don't understand : women and men in conversation\",\n        \"author\": \"Deborah Tannen\",\n        \"isbn\": \"0345372050\",\n        \"publicationDate\": \"1990\"\n    }]"
	  }
	}


17:00:07.326 [nioEventLoopGroup-30-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x553417c5, /127.0.0.1:65456 => /127.0.0.1:1080] WRITE, DefaultFullHttpResponse(decodeResult: success, version: HTTP/1.1, content: EmptyByteBufBE)
HTTP/1.1 201 Created
Content-Length: 0
Connection: keep-alive
Content-Type: text/plain, 0B
17:00:07.327 [nioEventLoopGroup-30-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x553417c5, /127.0.0.1:65456 => /127.0.0.1:1080] FLUSH
17:00:07.328 [nioEventLoopGroup-30-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x553417c5, /127.0.0.1:65456 => /127.0.0.1:1080] FLUSH
17:00:07.327 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Received response: {
  "statusCode" : 201,
  "headers" : [ {
    "name" : "Connection",
    "values" : [ "keep-alive" ]
  }, {
    "name" : "Content-Length",
    "values" : [ "0" ]
  }, {
    "name" : "Content-Type",
    "values" : [ "text/plain" ]
  } ]
}
17:00:07.328 [nioEventLoopGroup-30-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x553417c5, /127.0.0.1:65456 :> /127.0.0.1:1080] INACTIVE
17:00:07.328 [nioEventLoopGroup-30-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x553417c5, /127.0.0.1:65456 :> /127.0.0.1:1080] UNREGISTERED
17:00:07.328 [nioEventLoopGroup-33-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 3 thread-local buffer(s) from thread: nioEventLoopGroup-33-1
17:00:07.343 [nioEventLoopGroup-30-2] DEBUG io.netty.handler.ssl.SslHandler - [id: 0xa58f9c8a, /127.0.0.1:65457 => /127.0.0.1:1080] HANDSHAKEN: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
17:00:07.347 [nioEventLoopGroup-30-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xa58f9c8a, /127.0.0.1:65457 => /127.0.0.1:1080] RECEIVED, HttpObjectAggregator$AggregatedFullHttpRequest(decodeResult: success, version: HTTP/1.1, content: CompositeByteBuf(ridx: 0, widx: 0, cap: 0, components=0))
GET /get_books HTTP/1.1
Connection: Close
Host: localhost:1080
User-Agent: Jodd HTTP
Content-Length: 0, 0B
17:00:07.348 [nioEventLoopGroup-30-2] INFO  o.m.matchers.HttpRequestMatcher - request:

	{
	  "method" : "GET",
	  "path" : "/get_books",
	  "headers" : [ {
	    "name" : "Connection",
	    "values" : [ "Close" ]
	  }, {
	    "name" : "Host",
	    "values" : [ "localhost:1080" ]
	  }, {
	    "name" : "User-Agent",
	    "values" : [ "Jodd HTTP" ]
	  }, {
	    "name" : "Content-Length",
	    "values" : [ "0" ]
	  } ],
	  "keepAlive" : false,
	  "secure" : true
	}

 matched expectation:

	{
	  "path" : "/get_books"
	}


17:00:07.349 [nioEventLoopGroup-30-2] INFO  o.m.mockserver.MockServerHandler - returning response:

	{
	  "headers" : [ {
	    "name" : "Content-Type",
	    "values" : [ "application/json" ]
	  } ],
	  "body" : "[\n    {\n        \"id\": \"1\",\n        \"title\": \"Xenophon's imperial fiction : on the education of Cyrus\",\n        \"author\": \"James Tatum\",\n        \"isbn\": \"0691067570\",\n        \"publicationDate\": \"1989\"\n    },\n    {\n        \"id\": \"2\",\n        \"title\": \"You are here : personal geographies and other maps of the imagination\",\n        \"author\": \"Katharine A. Harmon\",\n        \"isbn\": \"1568984308\",\n        \"publicationDate\": \"2004\"\n    },\n    {\n        \"id\": \"3\",\n        \"title\": \"You just don't understand : women and men in conversation\",\n        \"author\": \"Deborah Tannen\",\n        \"isbn\": \"0345372050\",\n        \"publicationDate\": \"1990\"\n    }]"
	}

 for request:

	{
	  "method" : "GET",
	  "path" : "/get_books",
	  "headers" : [ {
	    "name" : "Host",
	    "values" : [ "localhost:1080" ]
	  }, {
	    "name" : "User-Agent",
	    "values" : [ "Jodd HTTP" ]
	  }, {
	    "name" : "Content-Length",
	    "values" : [ "0" ]
	  } ],
	  "keepAlive" : false,
	  "secure" : true
	}


17:00:07.350 [nioEventLoopGroup-30-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xa58f9c8a, /127.0.0.1:65457 => /127.0.0.1:1080] WRITE: DefaultFullHttpResponse(decodeResult: success, version: HTTP/1.1, content: UnpooledHeapByteBuf(ridx: 0, widx: 643, cap: 643/643))
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 643
Connection: close, 643B
         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 |[.    {.        |
|00000010| 22 69 64 22 3a 20 22 31 22 2c 0a 20 20 20 20 20 |"id": "1",.     |
|00000020| 20 20 20 22 74 69 74 6c 65 22 3a 20 22 58 65 6e |   "title": "Xen|
|00000030| 6f 70 68 6f 6e 27 73 20 69 6d 70 65 72 69 61 6c |ophon's imperial|
|00000040| 20 66 69 63 74 69 6f 6e 20 3a 20 6f 6e 20 74 68 | fiction : on th|
|00000050| 65 20 65 64 75 63 61 74 69 6f 6e 20 6f 66 20 43 |e education of C|
|00000060| 79 72 75 73 22 2c 0a 20 20 20 20 20 20 20 20 22 |yrus",.        "|
|00000070| 61 75 74 68 6f 72 22 3a 20 22 4a 61 6d 65 73 20 |author": "James |
|00000080| 54 61 74 75 6d 22 2c 0a 20 20 20 20 20 20 20 20 |Tatum",.        |
|00000090| 22 69 73 62 6e 22 3a 20 22 30 36 39 31 30 36 37 |"isbn": "0691067|
|000000a0| 35 37 30 22 2c 0a 20 20 20 20 20 20 20 20 22 70 |570",.        "p|
|000000b0| 75 62 6c 69 63 61 74 69 6f 6e 44 61 74 65 22 3a |ublicationDate":|
|000000c0| 20 22 31 39 38 39 22 0a 20 20 20 20 7d 2c 0a 20 | "1989".    },. |
|000000d0| 20 20 20 7b 0a 20 20 20 20 20 20 20 20 22 69 64 |   {.        "id|
|000000e0| 22 3a 20 22 32 22 2c 0a 20 20 20 20 20 20 20 20 |": "2",.        |
|000000f0| 22 74 69 74 6c 65 22 3a 20 22 59 6f 75 20 61 72 |"title": "You ar|
|00000100| 65 20 68 65 72 65 20 3a 20 70 65 72 73 6f 6e 61 |e here : persona|
|00000110| 6c 20 67 65 6f 67 72 61 70 68 69 65 73 20 61 6e |l geographies an|
|00000120| 64 20 6f 74 68 65 72 20 6d 61 70 73 20 6f 66 20 |d other maps of |
|00000130| 74 68 65 20 69 6d 61 67 69 6e 61 74 69 6f 6e 22 |the imagination"|
|00000140| 2c 0a 20 20 20 20 20 20 20 20 22 61 75 74 68 6f |,.        "autho|
|00000150| 72 22 3a 20 22 4b 61 74 68 61 72 69 6e 65 20 41 |r": "Katharine A|
|00000160| 2e 20 48 61 72 6d 6f 6e 22 2c 0a 20 20 20 20 20 |. Harmon",.     |
|00000170| 20 20 20 22 69 73 62 6e 22 3a 20 22 31 35 36 38 |   "isbn": "1568|
|00000180| 39 38 34 33 30 38 22 2c 0a 20 20 20 20 20 20 20 |984308",.       |
|00000190| 20 22 70 75 62 6c 69 63 61 74 69 6f 6e 44 61 74 | "publicationDat|
|000001a0| 65 22 3a 20 22 32 30 30 34 22 0a 20 20 20 20 7d |e": "2004".    }|
|000001b0| 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 |,.    {.        |
|000001c0| 22 69 64 22 3a 20 22 33 22 2c 0a 20 20 20 20 20 |"id": "3",.     |
|000001d0| 20 20 20 22 74 69 74 6c 65 22 3a 20 22 59 6f 75 |   "title": "You|
|000001e0| 20 6a 75 73 74 20 64 6f 6e 27 74 20 75 6e 64 65 | just don't unde|
|000001f0| 72 73 74 61 6e 64 20 3a 20 77 6f 6d 65 6e 20 61 |rstand : women a|
|00000200| 6e 64 20 6d 65 6e 20 69 6e 20 63 6f 6e 76 65 72 |nd men in conver|
|00000210| 73 61 74 69 6f 6e 22 2c 0a 20 20 20 20 20 20 20 |sation",.       |
|00000220| 20 22 61 75 74 68 6f 72 22 3a 20 22 44 65 62 6f | "author": "Debo|
|00000230| 72 61 68 20 54 61 6e 6e 65 6e 22 2c 0a 20 20 20 |rah Tannen",.   |
|00000240| 20 20 20 20 20 22 69 73 62 6e 22 3a 20 22 30 33 |     "isbn": "03|
|00000250| 34 35 33 37 32 30 35 30 22 2c 0a 20 20 20 20 20 |45372050",.     |
|00000260| 20 20 20 22 70 75 62 6c 69 63 61 74 69 6f 6e 44 |   "publicationD|
|00000270| 61 74 65 22 3a 20 22 31 39 39 30 22 0a 20 20 20 |ate": "1990".   |
|00000280| 20 7d 5d                                        | }]             |
+--------+-------------------------------------------------+----------------+
17:00:07.351 [nioEventLoopGroup-30-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xa58f9c8a, /127.0.0.1:65457 => /127.0.0.1:1080] FLUSH
17:00:07.352 [nioEventLoopGroup-30-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xa58f9c8a, /127.0.0.1:65457 => /127.0.0.1:1080] CLOSE()
17:00:07.352 [nioEventLoopGroup-30-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xa58f9c8a, /127.0.0.1:65457 :> /127.0.0.1:1080] FLUSH
17:00:07.352 [nioEventLoopGroup-30-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xa58f9c8a, /127.0.0.1:65457 :> /127.0.0.1:1080] INACTIVE
17:00:07.352 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Sending request: {
  "method" : "PUT",
  "path" : "/verify",
  "body" : "{\n  \"httpRequest\" : {\n    \"path\" : \"/get_books\"\n  },\n  \"times\" : {\n    \"count\" : 0,\n    \"exact\" : true\n  }\n}"
}
17:00:07.353 [nioEventLoopGroup-30-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xa58f9c8a, /127.0.0.1:65457 :> /127.0.0.1:1080] UNREGISTERED
17:00:07.359 [nioEventLoopGroup-32-1] INFO  o.m.proxy.http.HttpProxyHandler - verifying:

	{
	  "httpRequest" : {
	    "path" : "/get_books"
	  },
	  "times" : {
	    "count" : 0,
	    "exact" : true
	  }
	}


17:00:07.361 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Received response: {
  "statusCode" : 202,
  "headers" : [ {
    "name" : "Connection",
    "values" : [ "keep-alive" ]
  }, {
    "name" : "Content-Length",
    "values" : [ "0" ]
  }, {
    "name" : "Content-Type",
    "values" : [ "application/json; charset=utf-8" ]
  } ]
}
17:00:07.362 [nioEventLoopGroup-34-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-34-1
17:00:07.362 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Sending request: {
  "method" : "PUT",
  "path" : "/stop"
}
17:00:07.369 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Received response: {
  "statusCode" : 202,
  "headers" : [ {
    "name" : "Connection",
    "values" : [ "keep-alive" ]
  }, {
    "name" : "Content-Length",
    "values" : [ "0" ]
  }, {
    "name" : "Content-Type",
    "values" : [ "application/json; charset=utf-8" ]
  } ]
}
17:00:07.370 [nioEventLoopGroup-35-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-35-1
17:00:07.371 [nioEventLoopGroup-32-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-32-1
17:00:07.372 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Sending request: {
  "method" : "PUT",
  "path" : "/stop"
}
17:00:07.378 [nioEventLoopGroup-30-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x484da038, /127.0.0.1:65461 => /127.0.0.1:1080] RECEIVED, HttpObjectAggregator$AggregatedFullHttpRequest(decodeResult: success, version: HTTP/1.1, content: CompositeByteBuf(ridx: 0, widx: 0, cap: 0, components=0))
PUT /stop HTTP/1.1
Host: localhost:1080
Accept-Encoding: gzip,deflate
Content-Length: 0
Connection: keep-alive, 0B
17:00:07.379 [nioEventLoopGroup-30-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x484da038, /127.0.0.1:65461 => /127.0.0.1:1080] WRITE, DefaultFullHttpResponse(decodeResult: success, version: HTTP/1.1, content: EmptyByteBufBE)
HTTP/1.1 202 Accepted
Content-Length: 0
Connection: keep-alive
Content-Type: text/plain, 0B
17:00:07.379 [nioEventLoopGroup-30-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x484da038, /127.0.0.1:65461 => /127.0.0.1:1080] FLUSH
17:00:07.380 [nioEventLoopGroup-30-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x484da038, /127.0.0.1:65461 => /127.0.0.1:1080] CLOSE()
17:00:07.381 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Received response: {
  "statusCode" : 202,
  "headers" : [ {
    "name" : "Connection",
    "values" : [ "keep-alive" ]
  }, {
    "name" : "Content-Length",
    "values" : [ "0" ]
  }, {
    "name" : "Content-Type",
    "values" : [ "text/plain" ]
  } ]
}
17:00:07.381 [nioEventLoopGroup-36-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-36-1
17:00:07.382 [nioEventLoopGroup-30-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 5 thread-local buffer(s) from thread: nioEventLoopGroup-30-1
17:00:07.382 [nioEventLoopGroup-30-2] DEBUG io.netty.buffer.PoolThreadCache - Freed 10 thread-local buffer(s) from thread: nioEventLoopGroup-30-2