Added printing of status code by response classes. Close #8

This commit is contained in:
Erik C. Thauvin 2023-09-28 23:34:02 -07:00
parent 7b3e4adfc8
commit 1fca084fc9
3 changed files with 37 additions and 11 deletions

View file

@ -302,3 +302,14 @@ $ java -jar httpstatus-1.1.0.jar
226: IM Used 226: IM Used
... ...
``` ```
You can also print status codes by [response classes](https://www.rfc-editor.org/rfc/rfc9110.html#name-status-codes):
```sh
$ java -jar httpstatus-1.1.0.jar 2xx
200: OK
201: Created
202: Accepted
203: Non-Authoritative Information
204: No Content
...
```

View file

@ -100,9 +100,18 @@ public final class Reasons {
public static void main(final String... args) { public static void main(final String... args) {
if (args.length >= 1) { if (args.length >= 1) {
for (final String key : args) { for (final String key : args) {
final String value = REASON_PHRASES.get(key); if (key.endsWith("xx")) {
if (value != null) { var cat = key.charAt(0);
System.out.println(key + ": " + value); REASON_PHRASES.forEach((k, v) -> {
if (k.charAt(0) == cat) {
System.out.println(k + ": " + v);
}
});
} else {
final String value = REASON_PHRASES.get(key);
if (value != null) {
System.out.println(key + ": " + value);
}
} }
} }
} else { } else {

View file

@ -71,28 +71,34 @@ class ReasonsMainTest {
@Test @Test
void testMain() { void testMain() {
Reasons.main("401"); Reasons.main("401");
assertThat(outContent.toString().contains(Reasons.getReasonPhrase("401"))).as("401").isTrue(); assertThat(outContent.toString()).contains(Reasons.getReasonPhrase("401")).as("401");
assertThat(outContent.toString().contains("500")).as("401 no 500").isFalse(); assertThat(outContent.toString()).doesNotContain("500").as("401 no 500");
} }
@Test @Test
void testMainAll() { void testMainAll() {
Reasons.main(); Reasons.main();
assertThat(outContent.toString().contains(Reasons.getReasonPhrase(301))).as("301").isTrue(); assertThat(outContent.toString()).contains(Reasons.getReasonPhrase(301)).as("301");
assertThat(outContent.toString().contains(Reasons.getReasonPhrase(404))).as("404").isTrue(); assertThat(outContent.toString()).contains(Reasons.getReasonPhrase(404)).as("404");
} }
@Test @Test
void testMainArgs() { void testMainArgs() {
Reasons.main("500", "302"); Reasons.main("500", "302");
assertThat(outContent.toString().contains(Reasons.getReasonPhrase("500"))).as("500 (302)").isTrue(); assertThat(outContent.toString()).contains(Reasons.getReasonPhrase("500")).as("500 (302)");
assertThat(outContent.toString().contains(Reasons.getReasonPhrase("302"))).as("(500) 302").isTrue(); assertThat(outContent.toString()).contains(Reasons.getReasonPhrase("302")).as("(500) 302");
assertThat(outContent.toString().contains("404")).as("500/302 not 404").isFalse(); assertThat(outContent.toString()).doesNotContain("404").as("500/302 not 404");
}
@Test
void testMainArgsClass() {
Reasons.main("2xx");
assertThat(outContent.toString()).contains(Reasons.getReasonPhrase("200")).as("2xx");
} }
@Test @Test
void testMainInvalid() { void testMainInvalid() {
Reasons.main("aaa"); Reasons.main("aaa");
assertThat(outContent.toString().isEmpty()).as("invalid argument: aaa").isTrue(); assertThat(outContent.toString()).as("invalid argument: aaa").isEmpty();
} }
} }