| notifyTeacherAboutStudentMessage(ClassEnrollment, User, String) |   | 24% |   | 41% | 6 | 7 | 14 | 17 | 0 | 1 |
| updateStatus(UUID, User, Map) |   | 91% |   | 90% | 2 | 12 | 2 | 21 | 0 | 1 |
| ensureParticipant(ClassEnrollment, User) |   | 84% |   | 87% | 1 | 5 | 1 | 7 | 0 | 1 |
| ensureChatEnabled(ClassEnrollment) |   | 77% |   | 75% | 1 | 3 | 1 | 5 | 0 | 1 |
| lambda$getEnrollment$11() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| toEnrollmentMap(ClassEnrollment) |   | 98% |   | 66% | 6 | 10 | 1 | 33 | 0 | 1 |
| blankToDefault(String, String) |   | 55% |   | 25% | 2 | 3 | 0 | 1 | 0 | 1 |
| createPost(User, String, String) |  | 96% |   | 90% | 1 | 6 | 0 | 14 | 0 | 1 |
| normalize(String) |  | 85% |   | 75% | 1 | 3 | 0 | 4 | 0 | 1 |
| nullSafeStatus(String) |  | 75% |   | 50% | 1 | 2 | 0 | 1 | 0 | 1 |
| isStudentVisible(ClassEnrollment) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| nullSafeStatus(ClassEnrollment) |  | 88% |   | 50% | 1 | 2 | 0 | 1 | 0 | 1 |
| nullToZero(Integer) |  | 85% |   | 50% | 1 | 2 | 0 | 1 | 0 | 1 |
| value(UUID) |  | 85% |   | 50% | 1 | 2 | 0 | 1 | 0 | 1 |
| checkout(UUID, User) |  | 100% |  | 100% | 0 | 7 | 0 | 37 | 0 | 1 |
| requestClass(UUID, User, Map) |  | 100% |  | 100% | 0 | 5 | 0 | 34 | 0 | 1 |
| requestRefund(UUID, User) |  | 100% |   | 91% | 1 | 7 | 0 | 26 | 0 | 1 |
| notifyStatusChange(ClassEnrollment, String, User, String) |  | 100% |   | 86% | 2 | 10 | 0 | 31 | 0 | 1 |
| createSession(UUID, User, Map) |  | 100% |   | 83% | 1 | 4 | 0 | 27 | 0 | 1 |
| updateSession(UUID, User, Map) |  | 100% |   | 85% | 2 | 8 | 0 | 18 | 0 | 1 |
| confirm(UUID, User) |  | 100% |   | 91% | 1 | 7 | 0 | 22 | 0 | 1 |
| createTeacherReport(UUID, User, Map) |  | 100% |  | 100% | 0 | 5 | 0 | 28 | 0 | 1 |
| toSessionMap(ClassSession) |  | 100% | | n/a | 0 | 1 | 0 | 13 | 0 | 1 |
| getPostsForViewer(User, UUID) |  | 100% |  | 100% | 0 | 9 | 0 | 16 | 0 | 1 |
| notifyStudentsAboutPost(ClassPost) |  | 100% |  | 100% | 0 | 3 | 0 | 18 | 0 | 1 |
| syncEnrollmentWithSessions(ClassEnrollment, String) |  | 100% |   | 87% | 1 | 5 | 0 | 12 | 0 | 1 |
| notifySessionUpdate(ClassSession) |  | 100% |  | 100% | 0 | 3 | 0 | 15 | 0 | 1 |
| sendMessage(UUID, User, String) |  | 100% |  | 100% | 0 | 3 | 0 | 14 | 0 | 1 |
| getManageOverview(User) |  | 100% |  | 100% | 0 | 2 | 0 | 14 | 0 | 1 |
| isAllowedStatus(String) |  | 100% |   | 77% | 4 | 10 | 0 | 10 | 0 | 1 |
| markPaidEnrollment(ClassEnrollment, String, String) |  | 100% |  | 100% | 0 | 2 | 0 | 13 | 0 | 1 |
| notifyScheduling(ClassEnrollment, ClassSession) |  | 100% | | n/a | 0 | 1 | 0 | 12 | 0 | 1 |
| notifyRequestCreated(ClassEnrollment) |  | 100% | | n/a | 0 | 1 | 0 | 11 | 0 | 1 |
| buildEnrollment(User, User) |  | 100% | | n/a | 0 | 1 | 0 | 14 | 0 | 1 |
| getPostsForStudent(User) |  | 100% |  | 100% | 0 | 2 | 0 | 11 | 0 | 1 |
| ClassService(UserRepository, ClassEnrollmentRepository, ClassMessageRepository, ClassPostRepository, ClassSessionRepository, TeacherReportRepository, StripeService, OdooService, NotificationService, EmailService) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| checkoutResponse(ClassEnrollment, String, boolean) |  | 100% | | n/a | 0 | 1 | 0 | 6 | 0 | 1 |
| isPaidState(String) |  | 100% |   | 70% | 3 | 6 | 0 | 6 | 0 | 1 |
| isChatOpenState(String) |  | 100% |   | 90% | 1 | 6 | 0 | 6 | 0 | 1 |
| toMessageMap(ClassMessage) |  | 100% | | n/a | 0 | 1 | 0 | 7 | 0 | 1 |
| toPostMap(ClassPost) |  | 100% | | n/a | 0 | 1 | 0 | 7 | 0 | 1 |
| isActiveRequestStatus(String) |  | 100% |   | 87% | 1 | 5 | 0 | 5 | 0 | 1 |
| lambda$notifyStudentsAboutPost$14(ClassEnrollment) |  | 100% |   | 75% | 2 | 5 | 0 | 5 | 0 | 1 |
| lambda$getPostsForStudent$5(ClassEnrollment) |  | 100% |  | 100% | 0 | 5 | 0 | 5 | 0 | 1 |
| parseDuration(String) |  | 100% |   | 83% | 1 | 4 | 0 | 6 | 0 | 1 |
| getMessages(UUID, User) |  | 100% | | n/a | 0 | 1 | 0 | 7 | 0 | 1 |
| isSchedulableState(String) |  | 100% |   | 83% | 1 | 4 | 0 | 4 | 0 | 1 |
| getPosts(User) |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| requestExtraHour(UUID, User) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| ensureStudent(ClassEnrollment, User) |  | 100% |   | 75% | 1 | 3 | 0 | 3 | 0 | 1 |
| ensureTeacherOwner(User, User) |  | 100% |  | 100% | 0 | 3 | 0 | 3 | 0 | 1 |
| isTeacher(User) |  | 100% |   | 66% | 2 | 4 | 0 | 1 | 0 | 1 |
| listClasses(User) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| lambda$getPostsForStudent$6(Map, ClassEnrollment) |  | 100% |  | 100% | 0 | 2 | 0 | 3 | 0 | 1 |
| lambda$notifyStudentsAboutPost$15(Map, ClassEnrollment) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getEnrollment(UUID) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| safeString(String) |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| lambda$getPostsForStudent$8(ClassPost, ClassPost) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$getPostsForStudent$7(User) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$syncEnrollmentWithSessions$13(ClassSession) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$syncEnrollmentWithSessions$12(ClassSession) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$createTeacherReport$10() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$updateSession$9() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$getPostsForViewer$4() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$requestClass$3(ClassEnrollment) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$requestClass$2(ClassEnrollment) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$requestClass$1() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$checkout$0() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| safeNullable(Object) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |