Class jodd.http.ProxyTest

5

tests

0

failures

1

ignored

3.665s

duration

100%

successful

Tests

Test Duration Result
testDirect 0.078s passed
testDirectHttps 0.095s passed
testHttpProxy - ignored
testSocks5Proxy 3.292s passed
testSocks5ProxyWithHttps 0.200s passed

Standard output

12:24:37.627 [Test worker] DEBUG i.n.u.i.l.InternalLoggerFactory - Using SLF4J as the default logging framework
12:24:37.638 [Test worker] DEBUG i.n.util.internal.PlatformDependent0 - java.nio.Buffer.address: available
12:24:37.641 [Test worker] DEBUG i.n.util.internal.PlatformDependent0 - sun.misc.Unsafe.theUnsafe: available
12:24:37.641 [Test worker] DEBUG i.n.util.internal.PlatformDependent0 - sun.misc.Unsafe.copyMemory: available
12:24:37.642 [Test worker] DEBUG i.n.util.internal.PlatformDependent0 - java.nio.Bits.unaligned: true
12:24:37.644 [Test worker] DEBUG i.n.util.internal.PlatformDependent - Java version: 8
12:24:37.645 [Test worker] DEBUG i.n.util.internal.PlatformDependent - -Dio.netty.noUnsafe: false
12:24:37.645 [Test worker] DEBUG i.n.util.internal.PlatformDependent - sun.misc.Unsafe: available
12:24:37.645 [Test worker] DEBUG i.n.util.internal.PlatformDependent - -Dio.netty.noJavassist: false
12:24:37.647 [Test worker] DEBUG i.n.util.internal.PlatformDependent - Javassist: unavailable
12:24:37.647 [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.
12:24:37.647 [Test worker] DEBUG i.n.util.internal.PlatformDependent - -Dio.netty.tmpdir: /var/folders/y3/qpdd_xn53l17ky6ptvym9w1h0000gn/T (java.io.tmpdir)
12:24:37.648 [Test worker] DEBUG i.n.util.internal.PlatformDependent - -Dio.netty.bitMode: 64 (sun.arch.data.model)
12:24:37.648 [Test worker] DEBUG i.n.util.internal.PlatformDependent - -Dio.netty.noPreferDirect: false
12:24:38.024 [Test worker] DEBUG i.n.c.MultithreadEventLoopGroup - -Dio.netty.eventLoopThreads: 16
12:24:38.052 [Test worker] DEBUG io.netty.channel.nio.NioEventLoop - -Dio.netty.noKeySetOptimization: false
12:24:38.052 [Test worker] DEBUG io.netty.channel.nio.NioEventLoop - -Dio.netty.selectorAutoRebuildThreshold: 512
12:24:38.122 [Test worker] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.numHeapArenas: 4
12:24:38.123 [Test worker] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.numDirectArenas: 4
12:24:38.123 [Test worker] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.pageSize: 8192
12:24:38.123 [Test worker] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.maxOrder: 11
12:24:38.123 [Test worker] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.chunkSize: 16777216
12:24:38.124 [Test worker] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.tinyCacheSize: 512
12:24:38.124 [Test worker] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.smallCacheSize: 256
12:24:38.124 [Test worker] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.normalCacheSize: 64
12:24:38.124 [Test worker] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.maxCachedBufferCapacity: 32768
12:24:38.124 [Test worker] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.cacheTrimInterval: 8192
12:24:38.205 [MockServer thread for port: 1080] DEBUG i.n.util.internal.ThreadLocalRandom - -Dio.netty.initialSeedUniquifier: 0x6fd86cea1bf7065f (took 1 ms)
12:24:38.254 [MockServer thread for port: 1080] DEBUG io.netty.buffer.ByteBufUtil - -Dio.netty.allocator.type: unpooled
12:24:38.254 [MockServer thread for port: 1080] DEBUG io.netty.buffer.ByteBufUtil - -Dio.netty.threadLocalDirectBufferSize: 65536
12:24:38.255 [MockServer thread for port: 1080] DEBUG io.netty.buffer.ByteBufUtil - -Dio.netty.maxThreadLocalCharBufferSize: 16384
12:24:38.259 [MockServer thread for port: 1080] DEBUG io.netty.util.NetUtil - Loopback interface: lo0 (lo0, 0:0:0:0:0:0:0:1)
12:24:38.260 [MockServer thread for port: 1080] DEBUG io.netty.util.NetUtil - /proc/sys/net/core/somaxconn: 128 (non-existent)
12:24:38.276 [MockServer thread for port: 1080] INFO  org.mockserver.mockserver.MockServer - MockServer started on port: 1080
12:24:38.313 [MockServer HttpProxy Thread] INFO  org.mockserver.proxy.http.HttpProxy - MockServer proxy started on port: 1090
12:24:38.315 [MockServer HttpProxy Thread] DEBUG o.m.c.ConfigurationProperties - Property file not found on classpath using path [mockserver.properties]
12:24:38.316 [MockServer HttpProxy Thread] DEBUG o.m.c.ConfigurationProperties - Property file not found using path [mockserver.properties]
12:24:38.621 [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}"
  }
}
12:24:38.747 [nioEventLoopGroup-6-1] DEBUG io.netty.buffer.AbstractByteBuf - -Dio.netty.buffer.bytebuf.checkAccessible: true
12:24:38.751 [nioEventLoopGroup-6-1] DEBUG io.netty.util.ResourceLeakDetector - -Dio.netty.leakDetection.level: simple
12:24:38.752 [nioEventLoopGroup-6-1] DEBUG io.netty.util.ResourceLeakDetector - -Dio.netty.leakDetection.maxRecords: 4
12:24:38.812 [nioEventLoopGroup-6-1] DEBUG io.netty.util.Recycler - -Dio.netty.recycler.maxCapacity.default: 262144
12:24:39.254 [nioEventLoopGroup-3-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xa5817435, /127.0.0.1:60930 => /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.  }.}      |
+--------+-------------------------------------------------+----------------+
12:24:39.413 [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    }]"
	  }
	}


12:24:39.416 [nioEventLoopGroup-3-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xa5817435, /127.0.0.1:60930 => /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
12:24:39.417 [nioEventLoopGroup-3-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xa5817435, /127.0.0.1:60930 => /127.0.0.1:1080] FLUSH
12:24:39.421 [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" ]
  } ]
}
12:24:39.425 [nioEventLoopGroup-3-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xa5817435, /127.0.0.1:60930 => /127.0.0.1:1080] FLUSH
12:24:39.426 [nioEventLoopGroup-3-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xa5817435, /127.0.0.1:60930 :> /127.0.0.1:1080] INACTIVE
12:24:39.427 [nioEventLoopGroup-3-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xa5817435, /127.0.0.1:60930 :> /127.0.0.1:1080] UNREGISTERED
12:24:39.453 [nioEventLoopGroup-6-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 3 thread-local buffer(s) from thread: nioEventLoopGroup-6-1
12:24:40.184 [nioEventLoopGroup-5-1] DEBUG org.mockserver.socket.SSLFactory - Using protocol TLSv1.2
12:24:40.350 [nioEventLoopGroup-5-1] DEBUG io.netty.util.internal.Cleaner0 - java.nio.ByteBuffer.cleaner(): available
12:24:40.403 [nioEventLoopGroup-5-1] DEBUG i.n.h.s.u.InsecureTrustManagerFactory - Accepting a server certificate: C=UK, ST=England, L=London, O=MockServer, CN=localhost
12:24:40.576 [nioEventLoopGroup-5-2] DEBUG io.netty.handler.ssl.SslHandler - [id: 0x92f716a4, /192.168.1.121:60932 => /192.168.1.121:1090] HANDSHAKEN: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
12:24:40.580 [nioEventLoopGroup-5-1] DEBUG io.netty.handler.ssl.SslHandler - [id: 0x3848173f, /192.168.1.121:60932 => 0.0.0.0/0.0.0.0:1090] HANDSHAKEN: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
12:24:40.608 [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
}
12:24:40.622 [nioEventLoopGroup-3-2] DEBUG i.n.u.internal.NativeLibraryLoader - -Dio.netty.tmpdir: /var/folders/y3/qpdd_xn53l17ky6ptvym9w1h0000gn/T (java.io.tmpdir)
12:24:40.623 [nioEventLoopGroup-3-2] DEBUG i.n.u.internal.NativeLibraryLoader - -Dio.netty.native.workdir: /var/folders/y3/qpdd_xn53l17ky6ptvym9w1h0000gn/T (io.netty.tmpdir)
12:24:40.632 [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_101]
	at java.lang.Runtime.loadLibrary0(Runtime.java:870) ~[na:1.8.0_101]
	at java.lang.System.loadLibrary(System.java:1122) ~[na:1.8.0_101]
	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:745) [na:1.8.0_101]
12:24:40.644 [nioEventLoopGroup-8-1] DEBUG i.n.h.s.u.InsecureTrustManagerFactory - Accepting a server certificate: C=UK, ST=England, L=London, O=MockServer, CN=localhost
12:24:40.655 [nioEventLoopGroup-3-2] DEBUG io.netty.handler.ssl.SslHandler - [id: 0xdcb2e8b3, /127.0.0.1:60933 => /127.0.0.1:1080] HANDSHAKEN: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
12:24:40.657 [nioEventLoopGroup-8-1] DEBUG io.netty.handler.ssl.SslHandler - [id: 0x9626e97e, /127.0.0.1:60933 => localhost/127.0.0.1:1080] HANDSHAKEN: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
12:24:40.662 [nioEventLoopGroup-3-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xdcb2e8b3, /127.0.0.1:60933 => /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
12:24:40.666 [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"
	}


12:24:40.672 [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
	}


12:24:40.674 [nioEventLoopGroup-3-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xdcb2e8b3, /127.0.0.1:60933 => /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                                        | }]             |
+--------+-------------------------------------------------+----------------+
12:24:40.675 [nioEventLoopGroup-3-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xdcb2e8b3, /127.0.0.1:60933 => /127.0.0.1:1080] FLUSH
12:24:40.683 [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    }]"
}
12:24:40.684 [nioEventLoopGroup-3-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xdcb2e8b3, /127.0.0.1:60933 => /127.0.0.1:1080] FLUSH
12:24:40.686 [nioEventLoopGroup-3-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xdcb2e8b3, /127.0.0.1:60933 => /127.0.0.1:1080] FLUSH
12:24:40.687 [nioEventLoopGroup-3-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xdcb2e8b3, /127.0.0.1:60933 :> /127.0.0.1:1080] INACTIVE
12:24:40.687 [nioEventLoopGroup-3-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xdcb2e8b3, /127.0.0.1:60933 :> /127.0.0.1:1080] UNREGISTERED
12:24:40.691 [nioEventLoopGroup-8-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 11 thread-local buffer(s) from thread: nioEventLoopGroup-8-1
12:24:40.696 [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'


12:24:40.712 [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}"
}
12:24:40.735 [nioEventLoopGroup-5-3] INFO  o.m.proxy.http.HttpProxyHandler - verifying:

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


12:24:40.738 [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"
	}


12:24:40.741 [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" ]
  } ]
}
12:24:40.743 [nioEventLoopGroup-9-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-9-1
12:24:40.746 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Sending request: {
  "method" : "PUT",
  "path" : "/stop"
}
12:24:40.764 [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" ]
  } ]
}
12:24:40.766 [nioEventLoopGroup-10-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-10-1
12:24:40.767 [nioEventLoopGroup-5-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 3 thread-local buffer(s) from thread: nioEventLoopGroup-5-1
12:24:40.767 [nioEventLoopGroup-5-2] DEBUG io.netty.buffer.PoolThreadCache - Freed 8 thread-local buffer(s) from thread: nioEventLoopGroup-5-2
12:24:40.769 [nioEventLoopGroup-5-3] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-5-3
12:24:40.771 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Sending request: {
  "method" : "PUT",
  "path" : "/stop"
}
12:24:40.781 [nioEventLoopGroup-3-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x83754a77, /127.0.0.1:60936 => /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
12:24:40.782 [nioEventLoopGroup-3-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x83754a77, /127.0.0.1:60936 => /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
12:24:40.783 [nioEventLoopGroup-3-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x83754a77, /127.0.0.1:60936 => /127.0.0.1:1080] FLUSH
12:24:40.783 [nioEventLoopGroup-3-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x83754a77, /127.0.0.1:60936 => /127.0.0.1:1080] CLOSE()
12:24:40.784 [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" ]
  } ]
}
12:24:40.785 [nioEventLoopGroup-11-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-11-1
12:24:40.786 [nioEventLoopGroup-3-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 5 thread-local buffer(s) from thread: nioEventLoopGroup-3-1
12:24:40.786 [nioEventLoopGroup-3-2] DEBUG io.netty.buffer.PoolThreadCache - Freed 11 thread-local buffer(s) from thread: nioEventLoopGroup-3-2
12:24:40.794 [MockServer thread for port: 1080] INFO  org.mockserver.mockserver.MockServer - MockServer started on port: 1080
12:24:40.798 [MockServer HttpProxy Thread] INFO  org.mockserver.proxy.http.HttpProxy - MockServer proxy started on port: 1090
12:24:40.799 [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}"
  }
}
12:24:40.809 [nioEventLoopGroup-13-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xbde8b441, /127.0.0.1:60937 => /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.  }.}      |
+--------+-------------------------------------------------+----------------+
12:24:40.819 [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    }]"
	  }
	}


12:24:40.820 [nioEventLoopGroup-13-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xbde8b441, /127.0.0.1:60937 => /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
12:24:40.820 [nioEventLoopGroup-13-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xbde8b441, /127.0.0.1:60937 => /127.0.0.1:1080] FLUSH
12:24:40.822 [nioEventLoopGroup-13-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xbde8b441, /127.0.0.1:60937 => /127.0.0.1:1080] FLUSH
12:24:40.821 [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" ]
  } ]
}
12:24:40.822 [nioEventLoopGroup-13-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xbde8b441, /127.0.0.1:60937 :> /127.0.0.1:1080] INACTIVE
12:24:40.822 [nioEventLoopGroup-13-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xbde8b441, /127.0.0.1:60937 :> /127.0.0.1:1080] UNREGISTERED
12:24:40.823 [nioEventLoopGroup-16-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 3 thread-local buffer(s) from thread: nioEventLoopGroup-16-1
12:24:40.842 [nioEventLoopGroup-15-1] DEBUG i.n.h.s.u.InsecureTrustManagerFactory - Accepting a server certificate: C=UK, ST=England, L=London, O=MockServer, CN=localhost
12:24:40.856 [nioEventLoopGroup-15-2] DEBUG io.netty.handler.ssl.SslHandler - [id: 0xc5bebcc4, /192.168.1.121:60939 => /192.168.1.121:1090] HANDSHAKEN: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
12:24:40.857 [nioEventLoopGroup-15-1] DEBUG io.netty.handler.ssl.SslHandler - [id: 0x13da2570, /192.168.1.121:60939 => 0.0.0.0/0.0.0.0:1090] HANDSHAKEN: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
12:24:40.865 [nioEventLoopGroup-15-1] DEBUG io.netty.handler.ssl.SslHandler - [id: 0xd464da54, /127.0.0.1:60938 => /127.0.0.1:1090] HANDSHAKEN: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
12:24:40.879 [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
}
12:24:40.894 [nioEventLoopGroup-17-1] DEBUG i.n.h.s.u.InsecureTrustManagerFactory - Accepting a server certificate: C=UK, ST=England, L=London, O=MockServer, CN=localhost
12:24:40.906 [nioEventLoopGroup-13-2] DEBUG io.netty.handler.ssl.SslHandler - [id: 0x31447a53, /127.0.0.1:60940 => /127.0.0.1:1080] HANDSHAKEN: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
12:24:40.907 [nioEventLoopGroup-17-1] DEBUG io.netty.handler.ssl.SslHandler - [id: 0xd5d78b16, /127.0.0.1:60940 => localhost/127.0.0.1:1080] HANDSHAKEN: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
12:24:40.911 [nioEventLoopGroup-13-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x31447a53, /127.0.0.1:60940 => /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
12:24:40.913 [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"
	}


12:24:40.917 [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
	}


12:24:40.919 [nioEventLoopGroup-13-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x31447a53, /127.0.0.1:60940 => /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                                        | }]             |
+--------+-------------------------------------------------+----------------+
12:24:40.919 [nioEventLoopGroup-13-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x31447a53, /127.0.0.1:60940 => /127.0.0.1:1080] FLUSH
12:24:40.923 [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    }]"
}
12:24:40.925 [nioEventLoopGroup-13-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x31447a53, /127.0.0.1:60940 => /127.0.0.1:1080] FLUSH
12:24:40.926 [nioEventLoopGroup-17-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 11 thread-local buffer(s) from thread: nioEventLoopGroup-17-1
12:24:40.926 [nioEventLoopGroup-13-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x31447a53, /127.0.0.1:60940 => /127.0.0.1:1080] FLUSH
12:24:40.927 [nioEventLoopGroup-13-2] DEBUG io.netty.handler.ssl.SslHandler - [id: 0x31447a53, /127.0.0.1:60940 => /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_101]
	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39) ~[na:1.8.0_101]
	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) ~[na:1.8.0_101]
	at sun.nio.ch.IOUtil.read(IOUtil.java:192) ~[na:1.8.0_101]
	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) ~[na:1.8.0_101]
	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:745) [na:1.8.0_101]
12:24:40.928 [nioEventLoopGroup-13-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x31447a53, /127.0.0.1:60940 :> /127.0.0.1:1080] INACTIVE
12:24:40.928 [nioEventLoopGroup-13-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x31447a53, /127.0.0.1:60940 :> /127.0.0.1:1080] UNREGISTERED
12:24:40.931 [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'


12:24:40.939 [nioEventLoopGroup-15-1] DEBUG io.netty.handler.ssl.SslHandler - [id: 0x13da2570, /192.168.1.121:60939 => 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_101]
	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39) ~[na:1.8.0_101]
	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) ~[na:1.8.0_101]
	at sun.nio.ch.IOUtil.read(IOUtil.java:192) ~[na:1.8.0_101]
	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) ~[na:1.8.0_101]
	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:745) [na:1.8.0_101]
12:24:40.940 [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}"
}
12:24:40.950 [nioEventLoopGroup-15-3] INFO  o.m.proxy.http.HttpProxyHandler - verifying:

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


12:24:40.951 [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"
	}


12:24:40.953 [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" ]
  } ]
}
12:24:40.953 [nioEventLoopGroup-18-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-18-1
12:24:40.955 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Sending request: {
  "method" : "PUT",
  "path" : "/stop"
}
12:24:40.965 [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" ]
  } ]
}
12:24:40.966 [nioEventLoopGroup-19-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-19-1
12:24:40.967 [nioEventLoopGroup-15-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 11 thread-local buffer(s) from thread: nioEventLoopGroup-15-1
12:24:40.967 [nioEventLoopGroup-15-3] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-15-3
12:24:40.967 [nioEventLoopGroup-15-2] DEBUG io.netty.buffer.PoolThreadCache - Freed 8 thread-local buffer(s) from thread: nioEventLoopGroup-15-2
12:24:40.973 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Sending request: {
  "method" : "PUT",
  "path" : "/stop"
}
12:24:40.979 [nioEventLoopGroup-13-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x2575fbad, /127.0.0.1:60943 => /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
12:24:40.980 [nioEventLoopGroup-13-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x2575fbad, /127.0.0.1:60943 => /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
12:24:40.980 [nioEventLoopGroup-13-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x2575fbad, /127.0.0.1:60943 => /127.0.0.1:1080] FLUSH
12:24:40.980 [nioEventLoopGroup-13-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x2575fbad, /127.0.0.1:60943 => /127.0.0.1:1080] CLOSE()
12:24:40.981 [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" ]
  } ]
}
12:24:40.982 [nioEventLoopGroup-20-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-20-1
12:24:40.983 [nioEventLoopGroup-13-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 5 thread-local buffer(s) from thread: nioEventLoopGroup-13-1
12:24:40.983 [nioEventLoopGroup-13-2] DEBUG io.netty.buffer.PoolThreadCache - Freed 11 thread-local buffer(s) from thread: nioEventLoopGroup-13-2
12:24:40.995 [MockServer thread for port: 1080] INFO  org.mockserver.mockserver.MockServer - MockServer started on port: 1080
12:24:40.998 [MockServer HttpProxy Thread] INFO  org.mockserver.proxy.http.HttpProxy - MockServer proxy started on port: 1090
12:24:40.999 [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}"
  }
}
12:24:41.007 [nioEventLoopGroup-22-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x407b9b19, /127.0.0.1:60944 => /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.  }.}      |
+--------+-------------------------------------------------+----------------+
12:24:41.013 [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    }]"
	  }
	}


12:24:41.014 [nioEventLoopGroup-22-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x407b9b19, /127.0.0.1:60944 => /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
12:24:41.014 [nioEventLoopGroup-22-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x407b9b19, /127.0.0.1:60944 => /127.0.0.1:1080] FLUSH
12:24:41.015 [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" ]
  } ]
}
12:24:41.015 [nioEventLoopGroup-22-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x407b9b19, /127.0.0.1:60944 => /127.0.0.1:1080] FLUSH
12:24:41.015 [nioEventLoopGroup-22-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x407b9b19, /127.0.0.1:60944 :> /127.0.0.1:1080] INACTIVE
12:24:41.015 [nioEventLoopGroup-25-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 3 thread-local buffer(s) from thread: nioEventLoopGroup-25-1
12:24:41.015 [nioEventLoopGroup-22-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x407b9b19, /127.0.0.1:60944 :> /127.0.0.1:1080] UNREGISTERED
12:24:41.020 [nioEventLoopGroup-22-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xc5e0b668, /127.0.0.1:60945 => /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
12:24:41.021 [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"
	}


12:24:41.023 [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
	}


12:24:41.025 [nioEventLoopGroup-22-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xc5e0b668, /127.0.0.1:60945 => /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                                        | }]             |
+--------+-------------------------------------------------+----------------+
12:24:41.025 [nioEventLoopGroup-22-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xc5e0b668, /127.0.0.1:60945 => /127.0.0.1:1080] FLUSH
12:24:41.026 [nioEventLoopGroup-22-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xc5e0b668, /127.0.0.1:60945 => /127.0.0.1:1080] CLOSE()
12:24:41.026 [nioEventLoopGroup-22-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xc5e0b668, /127.0.0.1:60945 :> /127.0.0.1:1080] FLUSH
12:24:41.026 [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}"
}
12:24:41.026 [nioEventLoopGroup-22-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xc5e0b668, /127.0.0.1:60945 :> /127.0.0.1:1080] INACTIVE
12:24:41.026 [nioEventLoopGroup-22-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xc5e0b668, /127.0.0.1:60945 :> /127.0.0.1:1080] UNREGISTERED
12:24:41.036 [nioEventLoopGroup-24-1] INFO  o.m.proxy.http.HttpProxyHandler - verifying:

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


12:24:41.038 [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" ]
  } ]
}
12:24:41.039 [nioEventLoopGroup-26-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-26-1
12:24:41.040 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Sending request: {
  "method" : "PUT",
  "path" : "/stop"
}
12:24:41.049 [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" ]
  } ]
}
12:24:41.050 [nioEventLoopGroup-27-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-27-1
12:24:41.050 [nioEventLoopGroup-24-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-24-1
12:24:41.054 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Sending request: {
  "method" : "PUT",
  "path" : "/stop"
}
12:24:41.060 [nioEventLoopGroup-22-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xf79417a1, /127.0.0.1:60948 => /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
12:24:41.061 [nioEventLoopGroup-22-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xf79417a1, /127.0.0.1:60948 => /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
12:24:41.061 [nioEventLoopGroup-22-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xf79417a1, /127.0.0.1:60948 => /127.0.0.1:1080] FLUSH
12:24:41.062 [nioEventLoopGroup-22-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xf79417a1, /127.0.0.1:60948 => /127.0.0.1:1080] CLOSE()
12:24:41.063 [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" ]
  } ]
}
12:24:41.064 [nioEventLoopGroup-28-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-28-1
12:24:41.065 [nioEventLoopGroup-22-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 5 thread-local buffer(s) from thread: nioEventLoopGroup-22-1
12:24:41.065 [nioEventLoopGroup-22-2] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-22-2
12:24:41.073 [MockServer thread for port: 1080] INFO  org.mockserver.mockserver.MockServer - MockServer started on port: 1080
12:24:41.076 [MockServer HttpProxy Thread] INFO  org.mockserver.proxy.http.HttpProxy - MockServer proxy started on port: 1090
12:24:41.077 [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}"
  }
}
12:24:41.085 [nioEventLoopGroup-30-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x7467a947, /127.0.0.1:60949 => /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.  }.}      |
+--------+-------------------------------------------------+----------------+
12:24:41.094 [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    }]"
	  }
	}


12:24:41.095 [nioEventLoopGroup-30-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x7467a947, /127.0.0.1:60949 => /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
12:24:41.095 [nioEventLoopGroup-30-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x7467a947, /127.0.0.1:60949 => /127.0.0.1:1080] FLUSH
12:24:41.096 [nioEventLoopGroup-30-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x7467a947, /127.0.0.1:60949 => /127.0.0.1:1080] FLUSH
12:24:41.096 [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" ]
  } ]
}
12:24:41.097 [nioEventLoopGroup-30-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x7467a947, /127.0.0.1:60949 :> /127.0.0.1:1080] INACTIVE
12:24:41.097 [nioEventLoopGroup-30-1] DEBUG i.n.handler.logging.LoggingHandler - [id: 0x7467a947, /127.0.0.1:60949 :> /127.0.0.1:1080] UNREGISTERED
12:24:41.097 [nioEventLoopGroup-33-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 3 thread-local buffer(s) from thread: nioEventLoopGroup-33-1
12:24:41.114 [nioEventLoopGroup-30-2] DEBUG io.netty.handler.ssl.SslHandler - [id: 0xcd53c0d0, /127.0.0.1:60950 => /127.0.0.1:1080] HANDSHAKEN: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
12:24:41.117 [nioEventLoopGroup-30-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xcd53c0d0, /127.0.0.1:60950 => /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
12:24:41.119 [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"
	}


12:24:41.120 [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
	}


12:24:41.122 [nioEventLoopGroup-30-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xcd53c0d0, /127.0.0.1:60950 => /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                                        | }]             |
+--------+-------------------------------------------------+----------------+
12:24:41.122 [nioEventLoopGroup-30-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xcd53c0d0, /127.0.0.1:60950 => /127.0.0.1:1080] FLUSH
12:24:41.123 [nioEventLoopGroup-30-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xcd53c0d0, /127.0.0.1:60950 => /127.0.0.1:1080] CLOSE()
12:24:41.124 [nioEventLoopGroup-30-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xcd53c0d0, /127.0.0.1:60950 :> /127.0.0.1:1080] FLUSH
12:24:41.124 [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}"
}
12:24:41.124 [nioEventLoopGroup-30-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xcd53c0d0, /127.0.0.1:60950 :> /127.0.0.1:1080] INACTIVE
12:24:41.124 [nioEventLoopGroup-30-2] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xcd53c0d0, /127.0.0.1:60950 :> /127.0.0.1:1080] UNREGISTERED
12:24:41.132 [nioEventLoopGroup-32-1] INFO  o.m.proxy.http.HttpProxyHandler - verifying:

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


12:24:41.133 [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" ]
  } ]
}
12:24:41.134 [nioEventLoopGroup-34-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-34-1
12:24:41.136 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Sending request: {
  "method" : "PUT",
  "path" : "/stop"
}
12:24:41.144 [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" ]
  } ]
}
12:24:41.145 [nioEventLoopGroup-35-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-35-1
12:24:41.145 [nioEventLoopGroup-32-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-32-1
12:24:41.149 [Test worker] DEBUG o.m.client.netty.NettyHttpClient - Sending request: {
  "method" : "PUT",
  "path" : "/stop"
}
12:24:41.154 [nioEventLoopGroup-30-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xbd6e407d, /127.0.0.1:60953 => /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
12:24:41.156 [nioEventLoopGroup-30-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xbd6e407d, /127.0.0.1:60953 => /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
12:24:41.156 [nioEventLoopGroup-30-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xbd6e407d, /127.0.0.1:60953 => /127.0.0.1:1080] FLUSH
12:24:41.156 [nioEventLoopGroup-30-3] DEBUG i.n.handler.logging.LoggingHandler - [id: 0xbd6e407d, /127.0.0.1:60953 => /127.0.0.1:1080] CLOSE()
12:24:41.157 [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" ]
  } ]
}
12:24:41.158 [nioEventLoopGroup-36-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 2 thread-local buffer(s) from thread: nioEventLoopGroup-36-1
12:24:41.160 [nioEventLoopGroup-30-2] DEBUG io.netty.buffer.PoolThreadCache - Freed 10 thread-local buffer(s) from thread: nioEventLoopGroup-30-2
12:24:41.160 [nioEventLoopGroup-30-1] DEBUG io.netty.buffer.PoolThreadCache - Freed 5 thread-local buffer(s) from thread: nioEventLoopGroup-30-1