| recordFailure(String, Instant) |   | 17% |   | 12% | 4 | 5 | 13 | 17 | 0 | 1 |
| isBlocked(String, Instant) |   | 37% |   | 16% | 3 | 4 | 6 | 10 | 0 | 1 |
| clear(String) |   | 40% |   | 50% | 1 | 2 | 6 | 10 | 0 | 1 |
| lambda$recordLocalFailure$0(Instant, AtomicReference, String, ResilientLoginAttemptStore.LocalAttempt) |   | 79% |   | 64% | 4 | 8 | 2 | 12 | 0 | 1 |
| markRedisDegraded(RuntimeException) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| markRedisHealthy() |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| hash(String) |   | 61% | | n/a | 0 | 1 | 2 | 4 | 0 | 1 |
| isLocallyBlocked(String, Instant) |   | 76% |   | 83% | 1 | 4 | 2 | 7 | 0 | 1 |
| failureKey(String) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lockKey(String) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| keyPrefix() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| ResilientLoginAttemptStore(StringRedisTemplate, LoginAttemptProperties) |  | 100% | | n/a | 0 | 1 | 0 | 9 | 0 | 1 |
| recordLocalFailure(String, Instant) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |