using Jiaowu.Api.Domain.Academic; using Jiaowu.Api.Infrastructure.Graduation; namespace Jiaowu.Api.Tests; public sealed class GraduationAuditRulesTests { [Fact] public void Active_student_with_full_credits_and_courses_is_eligible() { var conclusion = GraduationAuditRules.Evaluate( true, StudentStatus.Active, 160, 162, 42, 42, 0); Assert.Equal(GraduationAuditConclusion.Eligible, conclusion); } [Theory] [InlineData(false, StudentStatus.Active, 160, 162, 42, 42, 0)] [InlineData(true, StudentStatus.Suspended, 160, 162, 42, 42, 0)] [InlineData(true, StudentStatus.Active, 160, 159, 42, 42, 0)] [InlineData(true, StudentStatus.Active, 160, 162, 42, 41, 0)] [InlineData(true, StudentStatus.Active, 160, 162, 42, 42, 1)] public void Any_unresolved_requirement_makes_student_ineligible( bool hasPlan, StudentStatus status, decimal requiredCredits, decimal earnedCredits, int requiredCourses, int passedRequiredCourses, int failedCourses) { var conclusion = GraduationAuditRules.Evaluate( hasPlan, status, requiredCredits, earnedCredits, requiredCourses, passedRequiredCourses, failedCourses); Assert.Equal(GraduationAuditConclusion.Ineligible, conclusion); } }