| resolveConfig(String) |  | 100% |  | 100% | 0 | 3 | 0 | 17 | 0 | 1 |
| verifyCode(String, String, String) |  | 100% |   | 87% | 1 | 5 | 0 | 11 | 0 | 1 |
| generateCode(String, String) |  | 100% | | n/a | 0 | 1 | 0 | 9 | 0 | 1 |
| generateNumericCode(int) |  | 100% |  | 100% | 0 | 2 | 0 | 6 | 0 | 1 |
| normalizeTarget(String, String) |  | 100% |  | 100% | 0 | 3 | 0 | 6 | 0 | 1 |
| enforceRateLimit(String, String, Duration) |  | 100% |   | 90% | 1 | 6 | 0 | 7 | 0 | 1 |
| normalizeType(String) |  | 100% |  | 100% | 0 | 2 | 0 | 3 | 0 | 1 |
| normalizeCode(String) |  | 100% |  | 100% | 0 | 2 | 0 | 3 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| resolveDuration(Duration, Duration) |  | 100% |   | 83% | 1 | 4 | 0 | 3 | 0 | 1 |
| sanitizeLength(Integer, int) |  | 100% |   | 75% | 1 | 3 | 0 | 3 | 0 | 1 |
| AbstractVerificationCodeService(StringRedisTemplate, Oauth2Properties) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| buildCodeKey(String, String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| buildRateLimitKey(String, String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |