public async void GivenNewScreeningWithThreeScreeningsInDatabase_WhenAddingAFourthScreening_ThenFourthScreeningIsAdded()
        {
            var       testGuid      = Guid.NewGuid();
            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);
            Screening        testScreening4 = new FirstInterview_Screening("eblabla", testGuid);
            List <Screening> testList       = new List <Screening>()
            {
                testScreening, testScreening2, testScreening3
            };

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

            mockRepo.AddNewScreeningToDatabase(testScreening4)
            .Returns(Task.FromResult(testScreening4));
            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(), testScreening4.Comment);

            Assert.True(actualScreenings.Count == 4);
            Assert.Equal(testScreening4.Comment, actualScreenings[3].Comment);
            Assert.IsType <FirstInterview_Screening>(actualScreenings[3]);
            Assert.False(actualScreenings[2].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);
        }