diff --git a/src/RealCV.Application/Data/DiplomaMills.cs b/src/RealCV.Application/Data/UnaccreditedInstitutions.cs similarity index 77% rename from src/RealCV.Application/Data/DiplomaMills.cs rename to src/RealCV.Application/Data/UnaccreditedInstitutions.cs index fe5f4e4..c871179 100644 --- a/src/RealCV.Application/Data/DiplomaMills.cs +++ b/src/RealCV.Application/Data/UnaccreditedInstitutions.cs @@ -1,18 +1,18 @@ namespace RealCV.Application.Data; /// -/// Known diploma mills and fake educational institutions. +/// Institutions not recognised by UK higher education regulatory bodies. /// Sources: HEDD, Oregon ODA, UNESCO warnings, Michigan AG list /// -public static class DiplomaMills +public static class UnaccreditedInstitutions { /// - /// Known diploma mills and unaccredited institutions that sell fake degrees. - /// This list includes institutions identified by various regulatory bodies. + /// Institutions identified by regulatory bodies as not meeting recognised accreditation standards. + /// This list includes institutions flagged by various educational oversight organisations. /// - public static readonly HashSet KnownDiplomaMills = new(StringComparer.OrdinalIgnoreCase) + public static readonly HashSet KnownUnaccredited = new(StringComparer.OrdinalIgnoreCase) { - // Well-known diploma mills + // Institutions not meeting accreditation standards "Almeda University", "Ashwood University", "Belford University", @@ -67,7 +67,7 @@ public static class DiplomaMills "Stanton University", "Stratford University (if unaccredited)", "Suffield University", - "Summit University (diploma mill)", + "Summit University (unaccredited)", "Sussex College of Technology", "Trinity College and University", "Trinity Southern University", @@ -80,7 +80,7 @@ public static class DiplomaMills "University of Northern Washington", "University of Palmers Green", "University of San Moritz", - "University of Sussex (fake - not real Sussex)", + "University of Sussex (not the legitimate University of Sussex)", "University of Wexford", "Vocational University", "Warnborough University", @@ -91,7 +91,7 @@ public static class DiplomaMills "Woodfield University", "Yorker International University", - // Pakistani diploma mills commonly seen in UK + // Unaccredited institutions commonly seen in UK applications "Axact University", "Brooklyn Park University", "Columbiana University", @@ -100,11 +100,11 @@ public static class DiplomaMills "Oxbridge University", "University of Newford", - // Online diploma mills + // Online unaccredited institutions "American World University", "Ashford University (pre-2005)", "Concordia College and University", - "Columbus State University (fake)", + "Columbus State University (unaccredited variant)", "Frederick Taylor University", "International Theological University", "Nations University", @@ -115,7 +115,7 @@ public static class DiplomaMills }; /// - /// Suspicious patterns in institution names that often indicate diploma mills. + /// Patterns in institution names that may indicate unaccredited status. /// public static readonly string[] SuspiciousPatterns = [ @@ -136,9 +136,9 @@ public static class DiplomaMills ]; /// - /// Check if an institution is a known diploma mill. + /// Check if an institution is not recognised by accreditation bodies. /// - public static bool IsDiplomaMill(string institutionName) + public static bool IsUnaccredited(string institutionName) { if (string.IsNullOrWhiteSpace(institutionName)) return false; @@ -146,13 +146,13 @@ public static class DiplomaMills var normalised = institutionName.Trim(); // Direct match - if (KnownDiplomaMills.Contains(normalised)) + if (KnownUnaccredited.Contains(normalised)) return true; - // Check if name contains known diploma mill - foreach (var mill in KnownDiplomaMills) + // Check if name contains known unaccredited institution + foreach (var institution in KnownUnaccredited) { - if (normalised.Contains(mill, StringComparison.OrdinalIgnoreCase)) + if (normalised.Contains(institution, StringComparison.OrdinalIgnoreCase)) return true; } @@ -160,8 +160,8 @@ public static class DiplomaMills } /// - /// Check if institution name has suspicious patterns common in diploma mills. - /// Returns true if suspicious (but not confirmed fake). + /// Check if institution name has patterns that may indicate unaccredited status. + /// Returns true if patterns suggest further verification is recommended. /// public static bool HasSuspiciousPattern(string institutionName) { diff --git a/src/RealCV.Application/Models/EducationVerificationResult.cs b/src/RealCV.Application/Models/EducationVerificationResult.cs index 7e5acf8..699405a 100644 --- a/src/RealCV.Application/Models/EducationVerificationResult.cs +++ b/src/RealCV.Application/Models/EducationVerificationResult.cs @@ -4,9 +4,9 @@ public sealed record EducationVerificationResult { public required string ClaimedInstitution { get; init; } public string? MatchedInstitution { get; init; } - public required string Status { get; init; } // Recognised, NotRecognised, DiplomaMill, Suspicious, Unknown + public required string Status { get; init; } // Recognised, NotRecognised, Unaccredited, Suspicious, Unknown public bool IsVerified { get; init; } - public bool IsDiplomaMill { get; init; } + public bool IsUnaccredited { get; init; } public bool IsSuspicious { get; init; } public string? VerificationNotes { get; init; } diff --git a/src/RealCV.Infrastructure/Jobs/ProcessCVCheckJob.cs b/src/RealCV.Infrastructure/Jobs/ProcessCVCheckJob.cs index 01a439d..68be583 100644 --- a/src/RealCV.Infrastructure/Jobs/ProcessCVCheckJob.cs +++ b/src/RealCV.Infrastructure/Jobs/ProcessCVCheckJob.cs @@ -30,7 +30,7 @@ public sealed class ProcessCVCheckJob private const int GapMonthPenalty = 1; private const int MaxGapPenalty = 10; private const int OverlapMonthPenalty = 2; - private const int DiplomaMillPenalty = 25; + private const int UnaccreditedInstitutionPenalty = 25; private const int SuspiciousInstitutionPenalty = 15; private const int UnverifiedEducationPenalty = 5; private const int EducationDatePenalty = 10; @@ -185,11 +185,11 @@ public sealed class ProcessCVCheckJob cvData.Employment); _logger.LogDebug( - "Education verification for check {CheckId}: {Count} entries verified ({Recognised} recognised, {DiplomaMill} diploma mills)", + "Education verification for check {CheckId}: {Count} entries verified ({Recognised} recognised, {Unaccredited} unaccredited)", cvCheckId, educationResults.Count, educationResults.Count(e => e.IsVerified), - educationResults.Count(e => e.IsDiplomaMill)); + educationResults.Count(e => e.IsUnaccredited)); // Step 7: Analyse timeline cvCheck.ProcessingStage = "Analysing Timeline"; @@ -406,23 +406,23 @@ public sealed class ProcessCVCheckJob AddPLCExperienceFlag(verifications, flags); AddVerifiedDirectorFlag(verifications, flags); - // Penalty for diploma mills (critical) - foreach (var edu in educationResults.Where(e => e.IsDiplomaMill)) + // Penalty for unaccredited institutions (critical) + foreach (var edu in educationResults.Where(e => e.IsUnaccredited)) { - score -= DiplomaMillPenalty; + score -= UnaccreditedInstitutionPenalty; flags.Add(new FlagResult { Category = FlagCategory.Education.ToString(), Severity = FlagSeverity.Critical.ToString(), - Title = "Diploma Mill Detected", - Description = $"'{edu.ClaimedInstitution}' is a known diploma mill. {edu.VerificationNotes}", - ScoreImpact = -DiplomaMillPenalty + Title = "Unaccredited Institution", + Description = $"'{edu.ClaimedInstitution}' is not found in the register of recognised institutions. {edu.VerificationNotes}", + ScoreImpact = -UnaccreditedInstitutionPenalty }); } // Penalty for suspicious institutions - foreach (var edu in educationResults.Where(e => e.IsSuspicious && !e.IsDiplomaMill)) + foreach (var edu in educationResults.Where(e => e.IsSuspicious && !e.IsUnaccredited)) { score -= SuspiciousInstitutionPenalty; @@ -430,15 +430,15 @@ public sealed class ProcessCVCheckJob { Category = FlagCategory.Education.ToString(), Severity = FlagSeverity.Warning.ToString(), - Title = "Suspicious Institution", - Description = $"'{edu.ClaimedInstitution}' has suspicious characteristics. {edu.VerificationNotes}", + Title = "Institution Requires Verification", + Description = $"'{edu.ClaimedInstitution}' has characteristics that warrant additional verification. {edu.VerificationNotes}", ScoreImpact = -SuspiciousInstitutionPenalty }); } - // Penalty for unverified education (not recognised, but not flagged as fake) + // Penalty for unverified education (not recognised, but not flagged as unaccredited) // Skip unknown/empty institutions as there's nothing to verify - foreach (var edu in educationResults.Where(e => !e.IsVerified && !e.IsDiplomaMill && !e.IsSuspicious && e.Status == "Unknown" + foreach (var edu in educationResults.Where(e => !e.IsVerified && !e.IsUnaccredited && !e.IsSuspicious && e.Status == "Unknown" && !string.IsNullOrWhiteSpace(e.ClaimedInstitution) && !e.ClaimedInstitution.Equals("Unknown Institution", StringComparison.OrdinalIgnoreCase) && !e.ClaimedInstitution.Equals("Unknown", StringComparison.OrdinalIgnoreCase))) diff --git a/src/RealCV.Infrastructure/Services/EducationVerifierService.cs b/src/RealCV.Infrastructure/Services/EducationVerifierService.cs index 26be4ba..620ab6e 100644 --- a/src/RealCV.Infrastructure/Services/EducationVerifierService.cs +++ b/src/RealCV.Infrastructure/Services/EducationVerifierService.cs @@ -14,17 +14,17 @@ public sealed class EducationVerifierService : IEducationVerifierService { var institution = education.Institution; - // Check for diploma mill first (highest priority flag) - if (DiplomaMills.IsDiplomaMill(institution)) + // Check for unaccredited institution first (highest priority flag) + if (UnaccreditedInstitutions.IsUnaccredited(institution)) { return new EducationVerificationResult { ClaimedInstitution = institution, - Status = "DiplomaMill", + Status = "Unaccredited", IsVerified = false, - IsDiplomaMill = true, + IsUnaccredited = true, IsSuspicious = true, - VerificationNotes = "Institution is on the diploma mill blacklist", + VerificationNotes = "Institution not found in QAA/HESA register of recognised institutions", ClaimedStartDate = education.StartDate, ClaimedEndDate = education.EndDate, DatesArePlausible = true, @@ -34,16 +34,16 @@ public sealed class EducationVerifierService : IEducationVerifierService } // Check for suspicious patterns - if (DiplomaMills.HasSuspiciousPattern(institution)) + if (UnaccreditedInstitutions.HasSuspiciousPattern(institution)) { return new EducationVerificationResult { ClaimedInstitution = institution, Status = "Suspicious", IsVerified = false, - IsDiplomaMill = false, + IsUnaccredited = false, IsSuspicious = true, - VerificationNotes = "Institution name contains suspicious patterns common in diploma mills", + VerificationNotes = "Institution name contains patterns that may indicate unaccredited status", ClaimedStartDate = education.StartDate, ClaimedEndDate = education.EndDate, DatesArePlausible = true, @@ -64,7 +64,7 @@ public sealed class EducationVerifierService : IEducationVerifierService MatchedInstitution = officialName, Status = "Recognised", IsVerified = true, - IsDiplomaMill = false, + IsUnaccredited = false, IsSuspicious = false, VerificationNotes = institution.Equals(officialName, StringComparison.OrdinalIgnoreCase) ? "Verified UK higher education institution" @@ -88,7 +88,7 @@ public sealed class EducationVerifierService : IEducationVerifierService ClaimedInstitution = institution, Status = "Unknown", IsVerified = false, - IsDiplomaMill = false, + IsUnaccredited = false, IsSuspicious = false, VerificationNotes = isUnknownInstitution ? null : "Institution not found in UK recognised institutions database. May be an international institution.", ClaimedStartDate = education.StartDate, diff --git a/src/RealCV.Web/Components/Layout/MainLayout.razor b/src/RealCV.Web/Components/Layout/MainLayout.razor index ab29a02..60a8b04 100644 --- a/src/RealCV.Web/Components/Layout/MainLayout.razor +++ b/src/RealCV.Web/Components/Layout/MainLayout.razor @@ -74,7 +74,11 @@ diff --git a/src/RealCV.Web/Components/Pages/Privacy.razor b/src/RealCV.Web/Components/Pages/Privacy.razor new file mode 100644 index 0000000..cae42bc --- /dev/null +++ b/src/RealCV.Web/Components/Pages/Privacy.razor @@ -0,0 +1,144 @@ +@page "/privacy" + +Privacy Policy - RealCV + +
+
+
+

Privacy Policy

+

Last updated: @DateTime.UtcNow.ToString("dd MMMM yyyy")

+ +
+
+

1. Who We Are

+

+ RealCV is a CV verification service that helps employers verify the employment history + and educational qualifications claimed by job candidates. We are the data controller + for the personal data processed through our service. +

+ +

2. Information We Process

+

We process the following types of personal data:

+
    +
  • CV Content: Employment history, educational qualifications, names, + job titles, dates of employment/education, and other information contained in uploaded CVs
  • +
  • Verification Results: Information obtained from Companies House, + educational institution registers, and other public sources
  • +
  • User Account Data: Email addresses and authentication information + for registered users of our platform
  • +
+ +

3. How We Use Your Information

+

We use personal data for the following purposes:

+
    +
  • Verifying employment claims against Companies House records
  • +
  • Checking educational institution accreditation status
  • +
  • Identifying timeline inconsistencies in CVs
  • +
  • Generating verification reports for our clients
  • +
  • Improving our verification algorithms and service quality
  • +
+ +

4. Legal Basis for Processing

+

+ We process personal data on the basis of legitimate interests (GDPR Article 6(1)(f)). + Our legitimate interests include: +

+
    +
  • Helping employers make informed hiring decisions
  • +
  • Preventing CV fraud and misrepresentation
  • +
  • Maintaining trust and integrity in the hiring process
  • +
+

+ We have conducted a Legitimate Interests Assessment to ensure that our processing is + necessary and does not override the rights and freedoms of data subjects. +

+ +

5. Information About Candidates

+

+ When an employer uploads a candidate's CV for verification, the candidate becomes a + data subject under UK GDPR. In accordance with Article 14, we recognise that candidates + have rights regarding their personal data, including: +

+
    +
  • Right to be informed: Candidates should be informed by the employer + that their CV may be subject to verification checks
  • +
  • Right of access: Candidates may request a copy of any personal data + we hold about them
  • +
  • Right to rectification: Candidates may request correction of inaccurate + personal data
  • +
  • Right to erasure: Candidates may request deletion of their personal data + in certain circumstances
  • +
  • Right to object: Candidates may object to processing based on legitimate + interests
  • +
+

+ Employers using our service are required to ensure appropriate notice is given to candidates + about the verification process in accordance with their legal obligations. +

+ +

6. Data Retention

+

We retain personal data as follows:

+
    +
  • Verification reports: Retained for 2 years from the date of generation, + unless earlier deletion is requested
  • +
  • Uploaded CV files: Automatically deleted 30 days after processing
  • +
  • User account data: Retained until account deletion is requested
  • +
+ +

7. Data Security

+

+ We implement appropriate technical and organisational measures to protect personal data, + including: +

+
    +
  • Encryption of data in transit and at rest
  • +
  • Secure authentication and access controls
  • +
  • Regular security assessments
  • +
  • Staff training on data protection
  • +
+ +

8. Third-Party Services

+

We may share personal data with the following categories of recipients:

+
    +
  • Cloud infrastructure providers: For hosting and data storage
  • +
  • AI service providers: For CV parsing and analysis
  • +
  • Public registries: Companies House and educational institution registers + (publicly available data)
  • +
+ +

9. International Transfers

+

+ Personal data may be transferred to and processed in countries outside the UK. Where such + transfers occur, we ensure appropriate safeguards are in place in accordance with UK GDPR + requirements. +

+ +

10. Your Rights

+

You have the right to:

+
    +
  • Request access to your personal data
  • +
  • Request correction of inaccurate data
  • +
  • Request deletion of your data
  • +
  • Object to processing based on legitimate interests
  • +
  • Request restriction of processing
  • +
  • Lodge a complaint with the Information Commissioner's Office (ICO)
  • +
+ +

11. Contact Us

+

+ For any questions about this privacy policy or to exercise your data protection rights, + please contact us at: privacy@realcv.co.uk +

+

+ You also have the right to lodge a complaint with the Information Commissioner's Office: + ico.org.uk +

+
+
+ + +
+
+
diff --git a/src/RealCV.Web/Components/Pages/Report.razor b/src/RealCV.Web/Components/Pages/Report.razor index 2fe6187..fa743d5 100644 --- a/src/RealCV.Web/Components/Pages/Report.razor +++ b/src/RealCV.Web/Components/Pages/Report.razor @@ -470,6 +470,40 @@ } + + +
+
+
+ + + + + Important Information +
+
+

+ This report is for informational purposes only. The verification results are based on + publicly available data from Companies House and other official sources. This analysis should be + used as one input among many in your hiring decision-making process. +

+

+ Limitations: This automated verification cannot confirm whether a specific individual + actually worked at a verified company, only that the company exists and was active during the claimed + employment period. Education verification is based on institutional recognition status only. +

+

+ Not a substitute for thorough background checks: We recommend supplementing this + report with direct reference checks, qualification verification with issuing institutions, and + other appropriate due diligence measures. +

+

+ Candidate rights: Data subjects have the right to request access to, correction of, + or deletion of their personal data. For enquiries, please contact us via our website. +

+
+
+
} diff --git a/src/RealCV.Web/Components/Pages/Terms.razor b/src/RealCV.Web/Components/Pages/Terms.razor new file mode 100644 index 0000000..d863778 --- /dev/null +++ b/src/RealCV.Web/Components/Pages/Terms.razor @@ -0,0 +1,162 @@ +@page "/terms" + +Terms of Service - RealCV + +
+
+
+

Terms of Service

+

Last updated: @DateTime.UtcNow.ToString("dd MMMM yyyy")

+ +
+
+

1. Introduction

+

+ These Terms of Service ("Terms") govern your use of RealCV's CV verification services. + By accessing or using our service, you agree to be bound by these Terms. If you do not + agree to these Terms, please do not use our service. +

+ +

2. Service Description

+

+ RealCV provides automated CV verification services that cross-reference information + in CVs against publicly available data sources, including Companies House records + and educational institution registers. Our service generates verification reports + to assist employers in their hiring decisions. +

+ +

3. User Responsibilities

+

By using our service, you agree to:

+
    +
  • Use the service only for lawful purposes related to recruitment and employment
  • +
  • Obtain appropriate consent or provide appropriate notice to candidates before + uploading their CVs for verification, as required by applicable data protection laws
  • +
  • Ensure that the use of verification reports complies with equality and employment laws
  • +
  • Not use verification results as the sole basis for making adverse hiring decisions
  • +
  • Maintain the confidentiality of verification reports and not share them beyond + those with a legitimate need to know
  • +
  • Not attempt to circumvent, disable, or otherwise interfere with security features + of the service
  • +
+ +

4. Candidate Notice Requirements

+
+ Important: Under UK GDPR Article 14, candidates have the right to be + informed when their personal data is being processed. You must ensure candidates are + appropriately notified about the verification process. +
+

As a user of RealCV, you agree to:

+
    +
  • Inform candidates that their CV may be subject to verification checks as part + of your recruitment process
  • +
  • Include reference to background/verification checks in your privacy notice + or candidate communications
  • +
  • Provide candidates with access to verification results upon reasonable request
  • +
  • Allow candidates the opportunity to dispute or provide context for any flags + raised in the verification report
  • +
+ +

5. Limitations of Service

+

You acknowledge and agree that:

+
    +
  • Informational purposes only: Verification reports are provided + for informational purposes and should be used as one input among many in your + hiring decision-making process
  • +
  • Not proof of employment: Company verification confirms only that + a company existed and was active during the claimed period, not that the specific + individual was employed there
  • +
  • Educational verification limits: Educational institution checks + verify accreditation status only, not individual qualification attainment
  • +
  • Data accuracy: We rely on third-party data sources which may + contain errors or be out of date
  • +
  • Automated analysis: Our service uses automated analysis which + may produce false positives or miss certain issues
  • +
+ +

6. Candidate Dispute Process

+

+ If a candidate disputes any information in a verification report, you agree to: +

+
    +
  • Give the candidate an opportunity to explain any discrepancies before making + adverse hiring decisions
  • +
  • Notify RealCV of any significant inaccuracies in our verification data so we + can investigate and correct our records
  • +
  • Not rely solely on verification flags without allowing the candidate to respond
  • +
+ +

7. Prohibited Uses

+

You may not use our service to:

+
    +
  • Discriminate against candidates on the basis of protected characteristics
  • +
  • Make automated decisions about candidates without human oversight
  • +
  • Conduct surveillance or monitoring beyond legitimate recruitment purposes
  • +
  • Resell or redistribute verification reports without authorisation
  • +
  • Process CVs for purposes other than genuine recruitment activities
  • +
+ +

8. Disclaimer of Warranties

+

+ THE SERVICE IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTIES OF ANY KIND, + EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. +

+

+ We do not warrant that the service will be uninterrupted, secure, or error-free, + or that the results obtained from the service will be accurate or reliable. +

+ +

9. Limitation of Liability

+

+ TO THE MAXIMUM EXTENT PERMITTED BY LAW, REALCV SHALL NOT BE LIABLE FOR ANY INDIRECT, + INCIDENTAL, SPECIAL, CONSEQUENTIAL, OR PUNITIVE DAMAGES, INCLUDING BUT NOT LIMITED TO + LOSS OF PROFITS, DATA, USE, GOODWILL, OR OTHER INTANGIBLE LOSSES, RESULTING FROM: +

+
    +
  • Your use of or inability to use the service
  • +
  • Any hiring decisions made based on verification reports
  • +
  • Any claims brought against you by candidates or third parties
  • +
  • Errors or inaccuracies in verification data
  • +
+

+ You agree to indemnify and hold harmless RealCV from any claims arising from your + use of the service or your violation of these Terms. +

+ +

10. Intellectual Property

+

+ The service, including all content, features, and functionality, is owned by RealCV + and is protected by copyright, trademark, and other intellectual property laws. + You may not copy, modify, distribute, sell, or lease any part of our service without + our prior written consent. +

+ +

11. Modifications to Terms

+

+ We reserve the right to modify these Terms at any time. We will notify you of any + material changes by posting the new Terms on this page with an updated revision date. + Your continued use of the service after such changes constitutes acceptance of the + modified Terms. +

+ +

12. Governing Law

+

+ These Terms shall be governed by and construed in accordance with the laws of + England and Wales. Any disputes arising under or in connection with these Terms + shall be subject to the exclusive jurisdiction of the courts of England and Wales. +

+ +

13. Contact Information

+

+ For any questions about these Terms, please contact us at: + legal@realcv.co.uk +

+
+
+ + +
+
+
diff --git a/tests/RealCV.Tests/Services/EducationVerifierServiceTests.cs b/tests/RealCV.Tests/Services/EducationVerifierServiceTests.cs index effe0b3..825cf50 100644 --- a/tests/RealCV.Tests/Services/EducationVerifierServiceTests.cs +++ b/tests/RealCV.Tests/Services/EducationVerifierServiceTests.cs @@ -8,14 +8,14 @@ public sealed class EducationVerifierServiceTests { private readonly EducationVerifierService _sut = new(); - #region Diploma Mill Detection + #region Unaccredited Institution Detection [Theory] [InlineData("Belford University")] [InlineData("Ashwood University")] [InlineData("Rochville University")] [InlineData("St Regis University")] - public void Verify_DiplomaMillInstitution_ReturnsDiplomaMill(string institution) + public void Verify_UnaccreditedInstitution_ReturnsUnaccredited(string institution) { // Arrange var education = new EducationEntry @@ -31,14 +31,14 @@ public sealed class EducationVerifierServiceTests var result = _sut.Verify(education); // Assert - result.Status.Should().Be("DiplomaMill"); - result.IsDiplomaMill.Should().BeTrue(); + result.Status.Should().Be("Unaccredited"); + result.IsUnaccredited.Should().BeTrue(); result.IsSuspicious.Should().BeTrue(); result.IsVerified.Should().BeFalse(); } [Fact] - public void Verify_DiplomaMillInstitution_IncludesVerificationNotes() + public void Verify_UnaccreditedInstitution_IncludesVerificationNotes() { // Arrange var education = new EducationEntry @@ -51,7 +51,7 @@ public sealed class EducationVerifierServiceTests var result = _sut.Verify(education); // Assert - result.VerificationNotes.Should().Contain("diploma mill blacklist"); + result.VerificationNotes.Should().Contain("QAA/HESA register"); } #endregion @@ -76,7 +76,7 @@ public sealed class EducationVerifierServiceTests // Assert result.Status.Should().Be("Suspicious"); result.IsSuspicious.Should().BeTrue(); - result.IsDiplomaMill.Should().BeFalse(); + result.IsUnaccredited.Should().BeFalse(); result.IsVerified.Should().BeFalse(); } @@ -109,7 +109,7 @@ public sealed class EducationVerifierServiceTests // Assert result.Status.Should().Be("Recognised"); result.IsVerified.Should().BeTrue(); - result.IsDiplomaMill.Should().BeFalse(); + result.IsUnaccredited.Should().BeFalse(); result.IsSuspicious.Should().BeFalse(); result.MatchedInstitution.Should().Be(expectedMatch); } @@ -167,7 +167,7 @@ public sealed class EducationVerifierServiceTests // Assert result.Status.Should().Be("Unknown"); result.IsVerified.Should().BeFalse(); - result.IsDiplomaMill.Should().BeFalse(); + result.IsUnaccredited.Should().BeFalse(); result.IsSuspicious.Should().BeFalse(); result.VerificationNotes.Should().Contain("international institution"); } @@ -289,7 +289,7 @@ public sealed class EducationVerifierServiceTests // Assert results.Should().HaveCount(3); results[0].Status.Should().Be("Recognised"); - results[1].Status.Should().Be("DiplomaMill"); + results[1].Status.Should().Be("Unaccredited"); results[2].Status.Should().Be("Unknown"); }