<?xml version="1.0"?>
<?xml-stylesheet href="/puzzles.xsl" type="text/xsl"?>
<puzzles xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.0pdd.com/puzzles.xsd" version="0.30.21" date="2020-11-10T12:21:05+00:00">
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>1-40eeff88</id>
    <ticket>1</ticket>
    <file>src/test/java/com/jcabi/http/mock/MkContainerTest.java</file>
    <lines>73-74</lines>
    <estimate>30</estimate>
    <role>DEV</role>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T11:39:44Z</time>
    <body>Grizzly container doesn't understand same-name headers, or we don't fetch them correctly from GrizzlyRequest</body>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>19-aa7a7497</id>
    <ticket>19</ticket>
    <file>src/main/java/com/jcabi/http/mock/MkContainer.java</file>
    <lines>64-66</lines>
    <estimate>30</estimate>
    <role>DEV</role>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T11:39:44Z</time>
    <body>Let's introduce a utility class MkQueryMatchers which contains convenience methods for matching MkQuery objects. This is primarily intended for use with the conditional MkContainer.next() methods. For example:</body>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>19-a877bdce</id>
    <ticket>19</ticket>
    <file>src/main/java/com/jcabi/http/mock/MkContainer.java</file>
    <lines>87-89</lines>
    <estimate>30</estimate>
    <role>DEV</role>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T11:39:44Z</time>
    <body>Let's add methods take(Matcher ) and takeAll(Matcher
  
   ), and a utility class MkAnswerMatchers. Intended usage is as follows:</body>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>1-5ecf8bb2</id>
    <ticket>1</ticket>
    <file>src/test/java/com/jcabi/http/response/JsoupResponseTest.java</file>
    <lines>50-53</lines>
    <estimate>30</estimate>
    <role>DEV</role>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T11:39:44Z</time>
    <body>Saxon complains about HTML 1.0, and I'm not sure how this is possible to fix. All we need to check in this test is that the output is a clean HTML document. Aparently JSOUP produces a broken HTML? Let's investigate and fix.</body>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>90-35dd830e</id>
    <ticket>90</ticket>
    <file>src/main/java/com/jcabi/http/wire/LastModifiedCachingWire.java</file>
    <lines>46-47</lines>
    <estimate>30</estimate>
    <body>If the original request already has an If-Modified-Since header it should be sent directly.</body>
    <role>IMP</role>
    <author>Igor Piddubnyi</author>
    <email>igor.piddubnyi@solvians.com</email>
    <time>2016-01-15T11:03:29Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/jcabi/jcabi-http/issues/120" closed="2017-11-02T06:41:14+00:00">120</issue>
    <id>90-f5d7f05d</id>
    <ticket>90</ticket>
    <file>src/main/java/com/jcabi/http/wire/LastModifiedCachingWire.java</file>
    <lines>141-142</lines>
    <estimate>30</estimate>
    <body>Evict cache entry if If-Modified-Since request responded with HTTP_OK code and no Last-Modified header.</body>
    <role>IMP</role>
    <author>Igor Piddubnyi</author>
    <email>igor.piddubnyi@solvians.com</email>
    <time>2016-01-15T11:03:29Z</time>
    <children>
      <puzzle alive="true">
        <issue href="https://github.com/jcabi/jcabi-http/issues/161">161</issue>
        <id>120-e6bf947f</id>
        <ticket>120</ticket>
        <file>src/test/java/com/jcabi/http/wire/LastModifiedCachingWireTest.java</file>
        <lines>62-69</lines>
        <estimate>15</estimate>
        <body>Clean tests shared fields and redundant variables Move constants in this file to their tests because tests must share nothing. Then also inline any redundant variables. Please also configure pdd and est in.travis.yml as done e.g. in https://github.com/jcabi/jcabi-xml/blob/master/.travis.yml For first points explanation, read: http://www.yegor256.com/2016/05/03/test-methods-must-share-nothing.html http://www.yegor256.com/2015/09/01/redundant-variables-are-evil.html</body>
        <role>IMP</role>
        <author>Alan Evans</author>
        <email>thealanevans@googlemail.com</email>
        <time>2016-05-18T19:05:31Z</time>
        <children/>
      </puzzle>
      <puzzle alive="true">
        <issue href="https://github.com/jcabi/jcabi-http/issues/162">162</issue>
        <id>120-2756c8f7</id>
        <ticket>120</ticket>
        <file>src/test/java/com/jcabi/http/wire/LastModifiedCachingWireTest.java</file>
        <lines>211-219</lines>
        <estimate>30</estimate>
        <body>Confirm cache clearing behaviour in all non-OK responses Non-OK behaviour was not specified in #120, so for example, if the response is 404 as below, does it make any sense to keep the item in cache? Is it likely a server will respond 404, and then later the exact unmodified content is available again. I think they all need to be thought about, another dubious response might be 301 Moved Permanently, or 410 Gone etc. Or, personally I think all non-OK and OK responses should behave the same WRT to clearing the cache as the cache value is so unlikely to be returned in future.</body>
        <role>IMP</role>
        <author>Alan Evans</author>
        <email>thealanevans@googlemail.com</email>
        <time>2016-05-19T06:17:28Z</time>
        <children/>
      </puzzle>
    </children>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/jcabi/jcabi-http/issues/163">163</issue>
    <id>87-5547b016</id>
    <ticket>87</ticket>
    <file>src/main/java/com/jcabi/http/request/BaseRequest.java</file>
    <lines>69-76</lines>
    <estimate>30</estimate>
    <body>Refactor this class to get rid of PMD.GodClass. This can be done if MultiPartFormBody and FormEncodedBody are pulled out. Also, the two share the same implementations for all methods besides formParam, so they can be refactored to extend an AbstractRequestBody. PMD.TooManyMethods might come together with getting rid of the first one, since maybe qulice is counting the methods in the inner classes too - if it doesn't, then it can be left.</body>
    <role>IMP</role>
    <author>amihaiemil</author>
    <email>amihaiemil@gmail.com</email>
    <time>2016-08-12T06:22:28Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/jcabi/jcabi-http/issues/164" closed="2019-11-29T16:22:36+00:00">164</issue>
    <id>87-bd2cb401</id>
    <ticket>87</ticket>
    <file>src/main/java/com/jcabi/http/request/BaseRequest.java</file>
    <lines>470-476</lines>
    <estimate>60</estimate>
    <body>Implement and unit test method formParam(String, Object) Details

here

(second answer).

e.g. While FormEncodedBody.formParam adds the param to a body with enctype application/x-www-form-urlencoded, method MultipartFormBody.formParam should add it to a body with enctype multipart/form-data.</body>
    <role>IMP</role>
    <author>amihaiemil</author>
    <email>amihaiemil@gmail.com</email>
    <time>2016-08-10T13:17:35Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/jcabi/jcabi-http/issues/194">194</issue>
    <ticket>171</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>171-f8bc6a22</id>
    <lines>113-117</lines>
    <body>Transitive dependencies for hamcrest 1.3 and junit 4 comes from this dependency. 1) Upgrade jcabi-matchers to the same version of parent as jcabi-http. 2) Replace hamcrest 1.3 with hamcrest 2.2 (?) from parent 3) Replace junit 5 with junit 5</body>
    <file>pom.xml</file>
    <author>andreoss</author>
    <email>andreoss@sdf.org</email>
    <time>2020-06-25T18:57:43Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/jcabi/jcabi-http/issues/195" closed="2020-07-07T20:55:29+00:00">195</issue>
    <ticket>171</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>171-01da2b80</id>
    <lines>151-157</lines>
    <body>Migrate all simple tests to Junit 5. For the sake of smaller PRs, migration can be done in steps 1) All tests classes without @Rule, and @Test(expected = ...) 2) All parameterized tests classes 3) The rest, (i.e dependent on @Rule's and so on) After completing one of the steps, create a new puzzle for the next. After all tests are run by Junit 5 remove this dependency.</body>
    <file>pom.xml</file>
    <author>andreoss</author>
    <email>andreoss@sdf.org</email>
    <time>2020-06-25T18:57:43Z</time>
    <children>
      <puzzle alive="false">
        <issue href="https://github.com/jcabi/jcabi-http/issues/199" closed="2020-07-09T01:45:18+00:00">199</issue>
        <ticket>195</ticket>
        <estimate>30</estimate>
        <role>DEV</role>
        <id>195-eea7018e</id>
        <lines>151-155</lines>
        <body>Migrate the rest of tests to Junit 5. For the sake of smaller PRs, migration can be done in steps 1) Parameterized tests classes 2) Tests dependent on ExpectedException, or @Test(expected= ...) After all tests are run by Junit 5 remove this dependency.</body>
        <file>pom.xml</file>
        <author>andreoss</author>
        <email>andreoss@sdf.org</email>
        <time>2020-07-07T18:24:52Z</time>
        <children>
          <puzzle alive="false">
            <issue href="https://github.com/jcabi/jcabi-http/issues/206" closed="2020-07-10T17:32:26+00:00">206</issue>
            <ticket>199</ticket>
            <estimate>30</estimate>
            <role>DEV</role>
            <id>199-1532b845</id>
            <lines>151-152</lines>
            <body>Migrate Junit 5 tests dependent on ExpectedException to Junit 5. After all tests are run by Junit 5 remove this dependency.</body>
            <file>pom.xml</file>
            <author>andreoss</author>
            <email>andreoss@sdf.org</email>
            <time>2020-07-09T00:42:42Z</time>
            <children>
              <puzzle alive="false">
                <issue href="https://github.com/jcabi/jcabi-http/issues/210" closed="2020-07-25T13:01:26+00:00">210</issue>
                <ticket>206</ticket>
                <estimate>30</estimate>
                <role>DEV</role>
                <id>206-f3551294</id>
                <lines>43-45</lines>
                <body>Use assertThrows instead of try/catch/match. Some of the tests use try/catch in orted to test caught Exception. Replace them with assertThrows.</body>
                <file>src/test/java/com/jcabi/http/response/JsonResponseTest.java</file>
                <author>andreoss</author>
                <email>andreoss@sdf.org</email>
                <time>2020-07-10T17:01:43Z</time>
                <children/>
              </puzzle>
            </children>
          </puzzle>
        </children>
      </puzzle>
    </children>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/jcabi/jcabi-http/issues/202">202</issue>
    <ticket>200</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>200-8bafc4f4</id>
    <lines>68-70</lines>
    <body>TrustedWire does not support ApacheRequest. Investigate if it's possible for them to work together, if not see jcabi-http#178 for discussion about alternative solutions.</body>
    <file>src/main/java/com/jcabi/http/request/ApacheRequest.java</file>
    <author>andreoss</author>
    <email>andreoss@sdf.org</email>
    <time>2020-07-08T16:12:16Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/jcabi/jcabi-http/issues/207" closed="2020-07-10T12:05:30+00:00">207</issue>
    <ticket>126</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>126-c5eb9db3</id>
    <lines>173-176</lines>
    <body>Grizzly Server has native mechanism for port reservation. See https://github.com/eclipse-ee4j/grizzly/issues/1001. Use it and remove this method, field for port probably can be removed as well. This should eventually close jcabi-http#116.</body>
    <file>src/main/java/com/jcabi/http/mock/MkGrizzlyContainer.java</file>
    <author>@rultor</author>
    <email>me@rultor.com</email>
    <time>2020-07-09T10:10:49Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/jcabi/jcabi-http/issues/215" closed="2020-08-28T14:30:13+00:00">215</issue>
    <ticket>97</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>97-5ddd4355</id>
    <lines>68-70</lines>
    <body>Strip user info from URI after Auth header is added. Consider adding warnings about the wire applied for Request with header, and without user info.</body>
    <file>src/main/java/com/jcabi/http/wire/BasicAuthWire.java</file>
    <author>andreoss</author>
    <email>andreoss@sdf.org</email>
    <time>2020-07-25T15:41:37Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/jcabi/jcabi-http/issues/222">222</issue>
    <ticket>179</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>179-2a860650</id>
    <lines>85-88</lines>
    <body>This implementation depends on Guava. Investigate for a possible shared interface between this class and other implementations for caching. If this shared interface is possible replace this task with a task for implementing it.</body>
    <file>src/main/java/com/jcabi/http/wire/CachingWire.java</file>
    <author>andreoss</author>
    <email>andreoss@sdf.org</email>
    <time>2020-09-02T21:02:56Z</time>
    <children/>
  </puzzle>
</puzzles>
