Add Context.toString (#2289)

This commit is contained in:
Anuraag Agrawal 2020-12-15 11:57:36 +09:00 committed by GitHub
parent 7ff20f6db6
commit 13e6485a63
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 0 deletions

View File

@ -81,4 +81,18 @@ final class ArrayBasedContext implements Context {
newEntries[newEntries.length - 1] = value;
return new ArrayBasedContext(newEntries);
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder("{");
for (int i = 0; i < entries.length; i += 2) {
sb.append(entries[i]).append('=').append(entries[i + 1]).append(", ");
}
// get rid of that last pesky comma
if (sb.length() > 1) {
sb.setLength(sb.length() - 2);
}
sb.append('}');
return sb.toString();
}
}

View File

@ -478,6 +478,14 @@ class ContextTest {
assertThat(Context.root().get(new HashCollidingKey())).isEqualTo(null);
}
@Test
void string() {
assertThat(Context.root()).hasToString("{}");
assertThat(Context.root().with(ANIMAL, "cat")).hasToString("{animal=cat}");
assertThat(Context.root().with(ANIMAL, "cat").with(BAG, 10))
.hasToString("{animal=cat, bag=10}");
}
@Test
void hashcodeCollidingKeys() {
Context context = Context.root();