public async Task Get_InValidRequest_ShouldReturnNotFoundResult()
        {
            //Arrange
            var fixture = new DraftApprenticeshipControllerTestsFixture();

            //Act
            var response = await fixture.Get();

            //Assert
            Assert.IsTrue(response is NotFoundResult, $"Get method did not return a {nameof(NotFoundResult)} - returned a {response.GetType().Name} instead");
        }
        public async Task Update_ValidRequest_ShouldReturnAnOkResult()
        {
            //Arrange
            var fixture = new DraftApprenticeshipControllerTestsFixture().WithUpdateDraftApprenticeshipCommandResponse();

            //Act
            var response = await fixture.Update();

            //Assert
            Assert.IsTrue(response is OkResult);
        }
        public async Task Delete_DeleteCommandHandler_CalledWith_CorrectParameter()
        {
            //Arrange
            var fixture = new DraftApprenticeshipControllerTestsFixture().WithDeleteDraftApprenticeshipCommandResponse();

            //Act
            await fixture.Delete();

            //Assert
            fixture.Verify_DeleteCommandHandler_CalledWith_CorrectParameter();
        }
        public async Task Get_ValidRequest_ShouldReturnAnOkObjectResult()
        {
            //Arrange
            var fixture = new DraftApprenticeshipControllerTestsFixture().WithGetDraftApprenticeshipCommandResponse();

            //Act
            var response = await fixture.Get();

            //Assert
            Assert.IsTrue(response is OkObjectResult, $"Get method did not return a {nameof(OkObjectResult)} - returned a {response.GetType().Name} instead");
            var okObjectResult = (OkObjectResult)response;

            Assert.IsTrue(okObjectResult.Value is GetDraftApprenticeshipResponse, $"Get method did not return a value of type {nameof(GetDraftApprenticeshipResponse)} - returned a {okObjectResult.Value?.GetType().Name} instead");
        }
        public async Task Add_ValidRequest_ShouldReturnAnOkObjectResult()
        {
            //Arrange
            var fixture = new DraftApprenticeshipControllerTestsFixture().WithAddDraftApprenticeshipCommandResponse();

            //Act
            var response = await fixture.Add();

            var okObjectResult = response as OkObjectResult;
            var addDraftApprenticeshipResponse = okObjectResult?.Value as AddDraftApprenticeshipResponse;

            //Assert
            Assert.AreEqual(DraftApprenticeshipControllerTestsFixture.DraftApprenticeshipId, addDraftApprenticeshipResponse?.DraftApprenticeshipId);
        }