public async void GivenNewScreeningWithTwoScreeningsInDatabase_WhenAddingAThirdScreening_ThenThirdScreeningIsAdded()
        {
            var       testGuid      = Guid.NewGuid();
            Screening testScreening = new CV_Screening("testtess", testGuid);

            testScreening.UpdateStatusToFalse();
            Screening        testScreening2 = new Phone_Screening("ezqdsrezrez", testGuid);
            Screening        testScreening3 = new TestResults_Screening("ezqdsrezrazezaeez", testGuid);
            List <Screening> testList       = new List <Screening>()
            {
                testScreening, testScreening2
            };

            var mockRepo = Substitute.For <ScreeningRepository>();

            mockRepo.AddNewScreeningToDatabase(testScreening3)
            .Returns(Task.FromResult(testScreening3));
            mockRepo.GetAllById(testGuid)
            .Returns(Task.FromResult(testList));
            var mockLogger = Substitute.For <ILoggerManager>();
            var mockJopApp = Substitute.For <IJobApplicationService>();
            var service    = new ScreeningService(mockRepo, mockLogger, mockJopApp);

            var actualScreenings = await service.NewScreening(testGuid.ToString(), testScreening3.Comment);

            Assert.True(actualScreenings.Count == 3);
            Assert.Equal(testScreening3.Comment, actualScreenings[2].Comment);
            Assert.IsType <TestResults_Screening>(actualScreenings[2]);
            Assert.False(actualScreenings[1].Status);
        }
        public async void GivenNewScreeningWithFiveScreeningsInDatabase_WhenAddingSixthScreening_ThenSixthScreeningIsAdded()
        {
            var testGuid   = Guid.NewGuid();
            var testJobApp = new JobApplication(testGuid, Guid.NewGuid(), Guid.NewGuid(), 4);

            Screening testScreening = new CV_Screening("testtess", testGuid);

            testScreening.UpdateStatusToFalse();
            Screening testScreening2 = new Phone_Screening("ezqdsrezrez", testGuid);

            testScreening2.UpdateStatusToFalse();
            Screening testScreening3 = new TestResults_Screening("ezqdsrezrazezaeez", testGuid);

            testScreening3.UpdateStatusToFalse();
            Screening testScreening4 = new FirstInterview_Screening("eblabla", testGuid);

            testScreening4.UpdateStatusToFalse();
            Screening        testScreening5 = new GroupInterview_Screening("eblabdsdsfdsfla", testGuid);
            Screening        testScreening6 = new FinalDecision_Screening("aangenome", testGuid);
            List <Screening> testList       = new List <Screening>()
            {
                testScreening, testScreening2, testScreening3, testScreening4, testScreening5
            };

            var mockRepo = Substitute.For <ScreeningRepository>();

            mockRepo.AddNewScreeningToDatabase(testScreening6)
            .Returns(Task.FromResult(testScreening6));
            mockRepo.GetAllById(testGuid)
            .Returns(Task.FromResult(testList));
            var mockLogger = Substitute.For <ILoggerManager>();
            var mockJopApp = Substitute.For <IJobApplicationService>();

            mockJopApp.UpdateStatusOfJobApplication(testGuid.ToString(), 4)
            .Returns(Task.FromResult(testJobApp));
            var service = new ScreeningService(mockRepo, mockLogger, mockJopApp);

            var actualScreenings = await service.NewScreening(testGuid.ToString(), testScreening6.Comment);

            Assert.Equal(testJobApp.StatusId, 4);
            Assert.True(actualScreenings.Count == 6);
            Assert.Equal(testScreening6.Comment, actualScreenings[5].Comment);
            Assert.IsType <FinalDecision_Screening>(actualScreenings[5]);
            Assert.False(actualScreenings[4].Status);
            Assert.False(actualScreenings[5].Status);
        }