@Test
public void testDecoding() {

    MatcherAssert.assertThat(PercentCodec.decode("blah%21%20~%20huh%3F", StandardCharsets.UTF_8),
            CoreMatchers.equalTo("blah! ~ huh?"));
    MatcherAssert.assertThat(PercentCodec.decode("blah%21+~%20huh%3F", StandardCharsets.UTF_8),
            CoreMatchers.equalTo("blah!+~ huh?"));
    MatcherAssert.assertThat(PercentCodec.decode("blah%21+~%20huh%3F", StandardCharsets.UTF_8, true),
            CoreMatchers.equalTo("blah! ~ huh?"));
}