Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add e2e tests for accepting rejecting cancelling cases #826

Merged
merged 3 commits into from
Sep 18, 2023

Amended to run tests for both change of name and change of date of bi…

3001626
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
Merged

Add e2e tests for accepting rejecting cancelling cases #826

Amended to run tests for both change of name and change of date of bi…
3001626
Select commit
Loading
Failed to load commit list.
This check has been archived and is scheduled for deletion. Learn more about checks retention
GitHub Actions / API test results succeeded Sep 18, 2023 in 1s

API test results ✅

Tests passed successfully

✅ TeachingRecordSystem/tests/TeachingRecordSystem.Api.Tests/TestResults/_fv-az1244-383_2023-09-18_14_18_52.trx

240 tests were completed in 13s with 240 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
TeachingRecordSystem.Api.Tests.Endpoints.IdentityWebHooks.GetAnIdentityEndpointsTests 10✅ 3s
TeachingRecordSystem.Api.Tests.Filters.CrmServiceProtectionFaultExceptionFilterTests 3✅ 2s
TeachingRecordSystem.Api.Tests.V1.Operations.GetTeacherTests 7✅ 2s
TeachingRecordSystem.Api.Tests.V1.SwaggerTests 1✅ 869ms
TeachingRecordSystem.Api.Tests.V1.UnitTests.GetTeacherHandlerTests 5✅ 119ms
TeachingRecordSystem.Api.Tests.V2.Operations.FindTeachersTests 9✅ 2s
TeachingRecordSystem.Api.Tests.V2.Operations.GetIttProvidersTests 1✅ 6s
TeachingRecordSystem.Api.Tests.V2.Operations.GetOrCreateTrnRequestTests 33✅ 2s
TeachingRecordSystem.Api.Tests.V2.Operations.GetTeacherTests 6✅ 2s
TeachingRecordSystem.Api.Tests.V2.Operations.GetTrnRequestTests 5✅ 2s
TeachingRecordSystem.Api.Tests.V2.Operations.SetIttOutcomeTests 20✅ 2s
TeachingRecordSystem.Api.Tests.V2.Operations.SetNpqQualificationTests 6✅ 2s
TeachingRecordSystem.Api.Tests.V2.Operations.UnlockTeacherTests 7✅ 891ms
TeachingRecordSystem.Api.Tests.V2.Operations.UpdateTeacherTests 57✅ 2s
TeachingRecordSystem.Api.Tests.V2.SwaggerTests 1✅ 6s
TeachingRecordSystem.Api.Tests.V3.CreateDateOfBirthChangeTests 8✅ 1s
TeachingRecordSystem.Api.Tests.V3.CreateNameChangeTests 8✅ 972ms
TeachingRecordSystem.Api.Tests.V3.FindTeachersTests 7✅ 1s
TeachingRecordSystem.Api.Tests.V3.GetEytsCertificateTests 3✅ 2s
TeachingRecordSystem.Api.Tests.V3.GetInductionCertificateTests 5✅ 901ms
TeachingRecordSystem.Api.Tests.V3.GetNpqCertificateTests 7✅ 1s
TeachingRecordSystem.Api.Tests.V3.GetQtsCertificateTests 5✅ 1s
TeachingRecordSystem.Api.Tests.V3.GetTeacherByTrnTests 13✅ 1s
TeachingRecordSystem.Api.Tests.V3.GetTeacherTests 12✅ 3s
TeachingRecordSystem.Api.Tests.V3.SwaggerTests 1✅ 875ms

✅ TeachingRecordSystem.Api.Tests.Endpoints.IdentityWebHooks.GetAnIdentityEndpointsTests

✅ Post_WithInvalidContent_ThrowsJsonException
✅ Post_WithInvalidMessageFormat_ThrowsJsonException
✅ Post_WithInvalidSignatureInHeader_ReturnsUnauthorised
✅ Post_WithMessageTypeWeAreNotInterestedIn_ThrowsJsonException
✅ Post_WithNonJsonMessage_ThrowsJsonException
✅ Post_WithNoSignatureInHeader_ReturnsUnauthorised
✅ Post_WithUserUpdatedMessageForRemovedTrn_RemovesLinkFromDqt
✅ Post_WithUserWithoutTrn_DoesNotCallDqt
✅ Post_WithValidUserCreatedMessage_ReturnsNoContent
✅ Post_WithValidUserUpdatedMessage_ReturnsNoContent

✅ TeachingRecordSystem.Api.Tests.Filters.CrmServiceProtectionFaultExceptionFilterTests

✅ ServiceProtectionFaultThrown_Returns429Response(testEndpoint: "concurrent_requests")
✅ ServiceProtectionFaultThrown_Returns429Response(testEndpoint: "execution_time")
✅ ServiceProtectionFaultThrown_Returns429Response(testEndpoint: "number_of_requests")

✅ TeachingRecordSystem.Api.Tests.V1.Operations.GetTeacherTests

✅ Given_invalid_birthdate_returns_error(birthDate: "xxx")
✅ Given_invalid_trn_returns_error(trn: "123456")
✅ Given_invalid_trn_returns_error(trn: "12345678")
✅ Given_invalid_trn_returns_error(trn: "xxx")
✅ Given_match_returns_ok
✅ Given_multiple_matches_returns_match_on_TRN
✅ Given_no_match_found_returns_notfound

✅ TeachingRecordSystem.Api.Tests.V1.SwaggerTests

✅ Get_SwaggerEndpoint_ReturnsOk

✅ TeachingRecordSystem.Api.Tests.V1.UnitTests.GetTeacherHandlerTests

✅ Given_a_contact_the_details_are_mapped
✅ Given_a_contact_with_induction_the_details_are_mapped
✅ Given_a_contact_with_initial_teacher_training_the_details_are_mapped
✅ Given_a_contact_with_qualifications_the_details_are_mapped
✅ Given_a_contact_with_qualified_teacher_status_the_details_are_mapped

✅ TeachingRecordSystem.Api.Tests.V2.Operations.FindTeachersTests

✅ Given_both_ukprn_and_provider_name_are_specified_returns_error
✅ Given_find_with_no_search_parameters_return_empty_collection
✅ Given_no_results_returns_ok
✅ Given_search_returns_a_result_returns_expected_response
✅ Given_search_returns_a_result_with_activesanctions_set_returns_expected_response(activeSanctions: False)
✅ Given_search_returns_a_result_with_activesanctions_set_returns_expected_response(activeSanctions: True)
✅ Given_search_returns_a_result_with_no_active_sanctions_returns_expected_response
✅ Given_search_with_valid_provider_returns_results(providerName: "someProvider", providerUkprn: "")
✅ Given_search_with_valid_provider_returns_results(providerName: null, providerUkprn: "1005811506")

✅ TeachingRecordSystem.Api.Tests.V2.Operations.GetIttProvidersTests

✅ Given_request_returns_list_of_itt_providers

✅ TeachingRecordSystem.Api.Tests.V2.Operations.GetOrCreateTrnRequestTests

✅ Given_dob_before_1_1_1940_returns_error(year: 1900, month: 1, day: 1)
✅ Given_dob_equal_or_after_today_returns_error(year: 2022, month: 1, day: 1)
✅ Given_dob_equal_or_after_today_returns_error(year: 2023, month: 1, day: 1)
✅ Given_invalid_age_combination_returns_error(ageRangeFrom: -1, ageRangeTo: 1, expectedErrorPropertyName: "InitialTeacherTraining.AgeRangeFrom", expectedErrorMessage: "Age must be 0-19 inclusive.")
✅ Given_invalid_age_combination_returns_error(ageRangeFrom: 1, ageRangeTo: -1, expectedErrorPropertyName: "InitialTeacherTraining.AgeRangeTo", expectedErrorMessage: "Age must be 0-19 inclusive.")
✅ Given_invalid_age_combination_returns_error(ageRangeFrom: 5, ageRangeTo: 4, expectedErrorPropertyName: "InitialTeacherTraining.AgeRangeTo", expectedErrorMessage: "'Age to' cannot be less than 'age from'.")
✅ Given_invalid_itt_provider_returns_error
✅ Given_invalid_itt_qualification_returns_error
✅ Given_invalid_itt_subject1_returns_error
✅ Given_invalid_itt_subject2_returns_error
✅ Given_invalid_qualification_country_returns_error
✅ Given_invalid_qualification_provider_returns_error
✅ Given_invalid_qualification_returns_error
✅ Given_invalid_qualification_subject_returns_error
✅ Given_invalid_qualification_subject2_returns_error
✅ Given_invalid_qualification_subject3_returns_error
✅ Given_invalid_qualificationtype_not_found_returns_error
✅ Given_OverseasQualifiedTeacher_and_EarlyYears_ProgrammeType_returns_error
✅ Given_request_for_non_traineeteacher_with_slugid_returns_error
✅ Given_request_with_id_already_exists_for_client_and_status_is_completed_returns_existing_trn
✅ Given_request_with_id_already_exists_for_client_and_status_is_pending_returns_null_trn
✅ Given_request_with_invalid_id_returns_error
✅ Given_request_with_new_id_creates_teacher_and_returns_created(trn: "1234567", expectedStatus: "Completed", expectedPotentialDuplicate: False)
✅ Given_request_with_new_id_creates_teacher_and_returns_created(trn: null, expectedStatus: "Pending", expectedPotentialDuplicate: True)
✅ Given_request_with_null_qualification_passes_request_to_DataverseAdapter_successfully
✅ Given_request_with_null_qualification_subject2_request_to_DataverseAdapter_successfully
✅ Given_request_with_null_qualification_subject3_request_to_DataverseAdapter_successfully
✅ Given_request_with_too_long_invalid_id_returns_error
✅ Given_request_with_too_long_invalid_slugid_returns_error
✅ Given_trainee_with_multiple_first_names_populates_middlename_field(firstName: "Joe Xavier", middleName: "", expectedFirstName: "Joe", expectedMiddleName: "Xavier")
✅ Given_trainee_with_multiple_first_names_populates_middlename_field(firstName: "Joe Xavier", middleName: "Andre", expectedFirstName: "Joe", expectedMiddleName: "Xavier Andre")
✅ Given_valid_InternationalQualifiedTeacherStatus_request_passes_request_to_DataverseAdapter_successfully
✅ Given_valid_OverseasQualifiedTeacher_request_passes_request_to_DataverseAdapter_successfully

✅ TeachingRecordSystem.Api.Tests.V2.Operations.GetTeacherTests

✅ Given_invalid_trn_returns_error(trn: "123456")
✅ Given_invalid_trn_returns_error(trn: "12345678")
✅ Given_invalid_trn_returns_error(trn: "xxx")
✅ Given_match_returns_ok
✅ Given_match_returns_ok_and_returns_active_and_inactive_itt_records
✅ Given_no_match_found_returns_notfound

✅ TeachingRecordSystem.Api.Tests.V2.Operations.GetTrnRequestTests

✅ Get_ForTrnRequestWithTrnToken_ReturnsAccessYourQualificationsLink
✅ Given_trn_request_with_specified_id_does_not_exist_for_current_client_returns_notfound
✅ Given_trn_request_with_specified_id_does_not_exist_returns_notfound
✅ Given_valid_completed_trn_request_returns_ok_with_completed_status_and_trn
✅ Given_valid_pending_trn_request_returns_ok_with_pending_status

✅ TeachingRecordSystem.Api.Tests.V2.Operations.SetIttOutcomeTests

✅ Given_AssessmentDate_would_lead_to_QtsDate_in_future_returns_error
✅ Given_missing_birthdate_returns_error
✅ Given_missing_IttProviderUkprn_returns_error
✅ Given_non_Pass_outcome_and_specified_AssessmentDate_returns_error(outcome: Deferred)
✅ Given_non_Pass_outcome_and_specified_AssessmentDate_returns_error(outcome: DeferredForSkillsTests)
✅ Given_non_Pass_outcome_and_specified_AssessmentDate_returns_error(outcome: Fail)
✅ Given_non_Pass_outcome_and_specified_AssessmentDate_returns_error(outcome: Withdrawn)
✅ Given_Passed_outcome_and_missing_AssessmentDate_returns_error
✅ Given_teacher_already_has_different_QTS_date_returns_error
✅ Given_teacher_is_fetched_using_correct_method_without_passing_slugid
✅ Given_teacher_is_fetched_using_fallback_if_notfound_using_slugid
✅ Given_teacher_passing_withdrawn_outcome_for_teacher_that_is_withdrawn_do_nothing_without_error
✅ Given_teacher_state_is_invalid_returns_error(failedReason: EytsDateMismatch, expectedErrorCode: 10003)
✅ Given_teacher_state_is_invalid_returns_error(failedReason: MultipleIttRecords, expectedErrorCode: 10004)
✅ Given_teacher_state_is_invalid_returns_error(failedReason: MultipleQtsRecords, expectedErrorCode: 10007)
✅ Given_teacher_state_is_invalid_returns_error(failedReason: NoMatchingIttRecord, expectedErrorCode: 10005)
✅ Given_teacher_state_is_invalid_returns_error(failedReason: NoMatchingQtsRecord, expectedErrorCode: 10006)
✅ Given_teacher_state_is_invalid_returns_error(failedReason: QtsDateMismatch, expectedErrorCode: 10003)
✅ Given_TRN_that_does_not_exist_returns_not_found
✅ Given_TRN_that_maps_to_multiple_teachers_return_error

✅ TeachingRecordSystem.Api.Tests.V2.Operations.SetNpqQualificationTests

✅ Given_completeddate_before_provider_earliest_completiondate_return_error
✅ Given_contact_for_trn_not_found_return_error
✅ Given_invalid_qualificationtype_return_error
✅ Given_request_without_trn_return_error
✅ Given_valid_request_for_qualification_not_createdbyapi_return_error
✅ Given_valid_request_return_nocontent

✅ TeachingRecordSystem.Api.Tests.V2.Operations.UnlockTeacherTests

✅ Given_a_teacher_that_does_exist_and_is_locked_returns_ok
✅ Given_a_teacher_that_does_exist_but_is_not_locked_returns_ok(loginFailedCounter: 0)
✅ Given_a_teacher_that_does_exist_but_is_not_locked_returns_ok(loginFailedCounter: 1)
✅ Given_a_teacher_that_does_exist_but_is_not_locked_returns_ok(loginFailedCounter: 2)
✅ Given_a_teacher_that_does_exist_but_is_not_locked_returns_ok(loginFailedCounter: null)
✅ Given_a_teacher_that_does_not_exist_returns_notfound
✅ Given_a_teacher_that_has_activesanctions_returns_error

✅ TeachingRecordSystem.Api.Tests.V2.Operations.UpdateTeacherTests

✅ Given_a_teacher_that_does_not_exist_returns_notfound
✅ Given_a_two_teachers_have_the_same_trn_return_conflict
✅ Given_asessmentonlyroute_programmetype_then_intraining_outcome_is_not_permitted
✅ Given_emailaddress_exceeeds_maxlength_returns_error
✅ Given_firstname_empty_returns_error
✅ Given_firstname_exceeeds_maxlength_returns_error
✅ Given_InitialTeacherTraining_is_empty_return_error
✅ Given_invalid_age_combination_returns_error(ageRangeFrom: -1, ageRangeTo: 1, expectedErrorPropertyName: "InitialTeacherTraining.AgeRangeFrom", expectedErrorMessage: "Age must be 0-19 inclusive.")
✅ Given_invalid_age_combination_returns_error(ageRangeFrom: 1, ageRangeTo: -1, expectedErrorPropertyName: "InitialTeacherTraining.AgeRangeTo", expectedErrorMessage: "Age must be 0-19 inclusive.")
✅ Given_invalid_age_combination_returns_error(ageRangeFrom: 5, ageRangeTo: 4, expectedErrorPropertyName: "InitialTeacherTraining.AgeRangeTo", expectedErrorMessage: "'Age to' cannot be less than 'age from'.")
✅ Given_invalid_dateofbirth_returns_error
✅ Given_invalid_email_returns_error
✅ Given_invalid_gendercode_returns_error
✅ Given_invalid_itt_provider_returns_error
✅ Given_invalid_itt_qualification_returns_error
✅ Given_invalid_itt_subject1_returns_error
✅ Given_invalid_itt_subject2_returns_error
✅ Given_invalid_itt_subject3_returns_error
✅ Given_invalid_outcome_return_error
✅ Given_invalid_qualification_country_returns_error
✅ Given_invalid_qualification_subject_returns_error
✅ Given_invalid_qualification_subject2_returns_error
✅ Given_invalid_qualification_subject3_returns_error
✅ Given_invalid_qualification_type_returns_error
✅ Given_lastname_empty_returns_error
✅ Given_lastname_exceeeds_maxlength_returns_error
✅ Given_middlename_empty_returns_error
✅ Given_middlename_exceeeds_maxlength_returns_error
✅ Given_missing_birthdate_returns_error
✅ Given_missing_initialteachertraining_providerukprn_returns_error
✅ Given_multiple_lookups_failed_returns_error
✅ Given_non_asessmentonlyroute_programmetypes_then_underassessment_outcome_is_not_permitted(programmeType: Apprenticeship)
✅ Given_non_asessmentonlyroute_programmetypes_then_underassessment_outcome_is_not_permitted(programmeType: Core)
✅ Given_non_asessmentonlyroute_programmetypes_then_underassessment_outcome_is_not_permitted(programmeType: CoreFlexible)
✅ Given_non_asessmentonlyroute_programmetypes_then_underassessment_outcome_is_not_permitted(programmeType: EYITTGraduateEmploymentBased)
✅ Given_non_asessmentonlyroute_programmetypes_then_underassessment_outcome_is_not_permitted(programmeType: EYITTGraduateEntry)
✅ Given_non_asessmentonlyroute_programmetypes_then_underassessment_outcome_is_not_permitted(programmeType: EYITTSchoolDirectEarlyYears)
✅ Given_non_asessmentonlyroute_programmetypes_then_underassessment_outcome_is_not_permitted(programmeType: FutureTeachingScholars)
✅ Given_non_asessmentonlyroute_programmetypes_then_underassessment_outcome_is_not_permitted(programmeType: HEI)
✅ Given_non_asessmentonlyroute_programmetypes_then_underassessment_outcome_is_not_permitted(programmeType: InternationalQualifiedTeacherStatus)
✅ Given_non_asessmentonlyroute_programmetypes_then_underassessment_outcome_is_not_permitted(programmeType: LicensedTeacherProgramme)
✅ Given_non_asessmentonlyroute_programmetypes_then_underassessment_outcome_is_not_permitted(programmeType: OverseasTrainedTeacherProgramme)
✅ Given_non_asessmentonlyroute_programmetypes_then_underassessment_outcome_is_not_permitted(programmeType: ProviderLedPostgrad)
✅ Given_non_asessmentonlyroute_programmetypes_then_underassessment_outcome_is_not_permitted(programmeType: UndergraduateOptIn)
✅ Given_qts_registration_not_matched_return_error
✅ Given_request_slugid_exceeding_maxlength_return_error
✅ Given_request_with_existing_husid_for_another_teacher_returns_error
✅ Given_slugid_does_not_return_contact_fallback_to_trn_and_dob_return_nocontent
✅ Given_teacher_has_multiple_incomplete_itt_records_return_error
✅ Given_update_pii_request_returns_nocontent
✅ Given_update_with_firstname_provided_without_lastname_return_error
✅ Given_update_with_lastname_provided_without_firstname_return_error
✅ Given_update_with_middlename_provided_without_firstname_return_error
✅ Given_update_with_middlename_provided_without_lastname_return_error
✅ Given_valid_update_with_slugid_return_nocontent
✅ Given_valid_update_with_trn_and_dob_succeeds_return_nocontent
✅ Given_valid_update_without_qualification_succeeds

✅ TeachingRecordSystem.Api.Tests.V2.SwaggerTests

✅ Get_SwaggerEndpoint_ReturnsOk

✅ TeachingRecordSystem.Api.Tests.V3.CreateDateOfBirthChangeTests

✅ Post_EvidenceFileDoesNotExist_ReturnsError
✅ Post_InvalidRequest_ReturnsBadRequest(includeTrn: False, newDateOfBirthString: "1990-07-01", evidenceFileName: "evidence.jpg", evidenceFileUrl: "https://place.com/evidence.jpg")
✅ Post_InvalidRequest_ReturnsBadRequest(includeTrn: True, newDateOfBirthString: "1990-07-01", evidenceFileName: "evidence.jpg", evidenceFileUrl: "https://place.com/evidence.jpg")
✅ Post_InvalidRequest_ReturnsBadRequest(includeTrn: True, newDateOfBirthString: "1990-07-01", evidenceFileName: "evidence.jpg", evidenceFileUrl: null)
✅ Post_InvalidRequest_ReturnsBadRequest(includeTrn: True, newDateOfBirthString: "1990-07-01", evidenceFileName: null, evidenceFileUrl: "https://place.com/evidence.jpg")
✅ Post_InvalidRequest_ReturnsBadRequest(includeTrn: True, newDateOfBirthString: null, evidenceFileName: "evidence.jpg", evidenceFileUrl: "https://place.com/evidence.jpg")
✅ Post_TeacherWithTrnDoesNotExist_ReturnsBadRequest
✅ Post_ValidRequest_CreatesIncident

✅ TeachingRecordSystem.Api.Tests.V3.CreateNameChangeTests

✅ Post_EvidenceFileDoesNotExist_ReturnsError
✅ Post_InvalidRequest_ReturnsBadRequest(includeTrn: False, newFirstName: "First", newMiddleName: "Middle", newLastName: "Last", evidenceFileName: "evidence.jpg", evidenceFileUrl: "https://place.com/evidence.jpg")
✅ Post_InvalidRequest_ReturnsBadRequest(includeTrn: True, newFirstName: "First", newMiddleName: "Middle", newLastName: "Last", evidenceFileName: "evidence.jpg", evidenceFileUrl: null)
✅ Post_InvalidRequest_ReturnsBadRequest(includeTrn: True, newFirstName: "First", newMiddleName: "Middle", newLastName: "Last", evidenceFileName: null, evidenceFileUrl: "https://place.com/evidence.jpg")
✅ Post_InvalidRequest_ReturnsBadRequest(includeTrn: True, newFirstName: "First", newMiddleName: "Middle", newLastName: null, evidenceFileName: "evidence.jpg", evidenceFileUrl: "https://place.com/evidence.jpg")
✅ Post_InvalidRequest_ReturnsBadRequest(includeTrn: True, newFirstName: null, newMiddleName: "Middle", newLastName: "Last", evidenceFileName: "evidence.jpg", evidenceFileUrl: "https://place.com/evidence.jpg")
✅ Post_TeacherWithTrnDoesNotExist_ReturnsBadRequest
✅ Post_ValidRequest_CreatesIncident

✅ TeachingRecordSystem.Api.Tests.V3.FindTeachersTests

✅ Get_InvalidFindBy_ReturnsError(findBy: "", expectedErrorMessage: "Invalid matching policy.")
✅ Get_InvalidFindBy_ReturnsError(findBy: "BadFindBy", expectedErrorMessage: "The value 'BadFindBy' is not valid for FindBy.")
✅ Get_MissingPropertiesForFindBy_ReturnsError(lastName: "", dateOfBirth: "1990-01-01", expectedErrorPropertyName: "lastName", expectedErrorMessage: "A value is required when findBy is 'LastNameAndDat"···)
✅ Get_MissingPropertiesForFindBy_ReturnsError(lastName: "Smith", dateOfBirth: "", expectedErrorPropertyName: "dateOfBirth", expectedErrorMessage: "A value is required when findBy is 'LastNameAndDat"···)
✅ Get_NonExposableSanctionCode_IsNotReturned
✅ Get_ValidRequestWithMatchesOnLastName_ReturnsMappedContacts
✅ Get_ValidRequestWithMatchOnPreviousName_ReturnsMappedContacts

✅ TeachingRecordSystem.Api.Tests.V3.GetEytsCertificateTests

✅ Get_EytsCertificateWithEytsDateDoesNotExist_ReturnsNotFound
✅ Get_EytsCertificateWithTrnDoesNotExist_ReturnsNotFound
✅ Get_ValidRequest_ReturnsExpectedResponse

✅ TeachingRecordSystem.Api.Tests.V3.GetInductionCertificateTests

✅ Get_InductionCertificateWhenInductionDoesNotExist_ReturnsNotFound
✅ Get_InductionCertificateWhenInductionHasNoCompletionDate_ReturnsNotFound
✅ Get_InductionCertificateWhenInductionNotPassed_ReturnsNotFound
✅ Get_InductionCertificateWhenNoTeacherAssociatedWithTrn_ReturnsNotFound
✅ Get_ValidRequest_ReturnsExpectedResponse

✅ TeachingRecordSystem.Api.Tests.V3.GetNpqCertificateTests

✅ Get_NpqCertificateWhenAssociatedTeacherIsNotTheAuthenticatedUser_ReturnsNotFound
✅ Get_NpqCertificateWhenNoAssociatedTeacher_ReturnsNotFound
✅ Get_NpqCertificateWhenQualificationDoesNotExist_ReturnsNotFound
✅ Get_NpqCertificateWhenQualificationHasNoAwardDate_ReturnsNotFound
✅ Get_NpqCertificateWhenQualificationIsNotActive_ReturnsNotFound
✅ Get_NpqCertificateWhenQualificationIsNotNpq_ReturnsNotFound
✅ Get_ValidRequest_ReturnsExpectedResponse

✅ TeachingRecordSystem.Api.Tests.V3.GetQtsCertificateTests

✅ Get_QtsCertificateForTeacherQualifiedInWales_ReturnsNotFound
✅ Get_QtsCertificateWithQtsDateDoesNotExist_ReturnsNotFound
✅ Get_QtsCertificateWithTrnDoesNotExist_ReturnsNotFound
✅ Get_ValidRequest_ReturnsExpectedResponse(exemptFromInduction: False)
✅ Get_ValidRequest_ReturnsExpectedResponse(exemptFromInduction: True)

✅ TeachingRecordSystem.Api.Tests.V3.GetTeacherByTrnTests

✅ Get_TrnNotFound_ReturnsNotFound
✅ Get_UnauthenticatedRequest_ReturnsUnauthorized
✅ Get_ValidRequest_ReturnsExpectedResponse
✅ Get_ValidRequestForContactWithMultiWordFirstName_ReturnsExpectedResponse
✅ Get_ValidRequestForContactWithPendingDateOfBirthChange_ReturnsPendingDateOfBirthChangeTrue
✅ Get_ValidRequestForContactWithPendingNameChange_ReturnsPendingNameChangeTrue
✅ Get_ValidRequestForTeacherQualifiedInWales_ReturnsExpectedResponse
✅ Get_ValidRequestWithHigherEducationQualifications_ReturnsExpectedHigherEducationQualificationsContent
✅ Get_ValidRequestWithInduction_ReturnsExpectedInductionContent
✅ Get_ValidRequestWithInitialTeacherTraining_ReturnsExpectedInitialTeacherTrainingContent
✅ Get_ValidRequestWithMandatoryQualifications_ReturnsExpectedMandatoryQualificationsContent
✅ Get_ValidRequestWithNpqQualifications_ReturnsExpectedNpqQualificationsContent
✅ Get_ValidRequestWithSanctions_ReturnsExpectedSanctionsContent

✅ TeachingRecordSystem.Api.Tests.V3.GetTeacherTests

✅ Get_TeacherWithTrnDoesNotExist_ReturnsBadRequest
✅ Get_ValidRequest_ReturnsExpectedResponse
✅ Get_ValidRequestForContactWithMultiWordFirstName_ReturnsExpectedResponse
✅ Get_ValidRequestForContactWithPendingDateOfBirthChange_ReturnsPendingDateOfBirthChangeTrue
✅ Get_ValidRequestForContactWithPendingNameChange_ReturnsPendingNameChangeTrue
✅ Get_ValidRequestForTeacherQualifiedInWales_ReturnsExpectedResponse
✅ Get_ValidRequestWithHigherEducationQualifications_ReturnsExpectedHigherEducationQualificationsContent
✅ Get_ValidRequestWithInduction_ReturnsExpectedInductionContent
✅ Get_ValidRequestWithInitialTeacherTraining_ReturnsExpectedInitialTeacherTrainingContent
✅ Get_ValidRequestWithMandatoryQualifications_ReturnsExpectedMandatoryQualificationsContent
✅ Get_ValidRequestWithNpqQualifications_ReturnsExpectedNpqQualificationsContent
✅ Get_ValidRequestWithSanctions_ReturnsExpectedSanctionsContent

✅ TeachingRecordSystem.Api.Tests.V3.SwaggerTests

✅ Get_SwaggerEndpoint_ReturnsOk