Example #1
0
        public async Task ShouldBeAbleToCreateAnEmptyInterview()
        {
            var requestInterview = Stubber.StubInterviewDto();

            var responseInterview = await ApiClient.PostInterview(requestInterview)
                                    .AwaitGetSuccessfulResponse <InterviewDto>();

            Assert.IsNotNull(responseInterview.Id);
        }
Example #2
0
        public async Task ShouldBeAbleToCreateACandidate()
        {
            var requestCandidate = Stubber.StubCandidateDto();

            var responseCandidate = await ApiClient.PostCandidate(requestCandidate)
                                    .AwaitGetSuccessfulResponse <CandidateDto>();

            responseCandidate.ToLikeness().ShouldEqual(requestCandidate);
        }
        public async Task ShouldBeAbleToCreateAnInterviewTemplateWithoutQuestions()
        {
            var requestInterviewTemplate = Stubber.StubInterviewTemplateDto();

            var responseInterviewTemplate = await ApiClient.PostInterviewTemplate(requestInterviewTemplate)
                                            .AwaitGetSuccessfulResponse <InterviewTemplateDto>();

            responseInterviewTemplate.ToLikeness().ShouldEqual(requestInterviewTemplate);
        }
        public async Task ShouldBeAbleToCreateAQuestion()
        {
            var requestQuestion = Stubber.StubQuestionDto();

            var responseQuestion = await ApiClient.PostQuestion(requestQuestion)
                                   .AwaitGetSuccessfulResponse <QuestionDto>();

            responseQuestion.ToLikeness().ShouldEqual(requestQuestion);
        }
Example #5
0
        public async Task ShouldBeAbleToCreateInterviewFromTemplate()
        {
            var dbInterviewTemplate = await Arranger.CreateInterviewTemplate();

            var requestInterview = Stubber.StubInterviewDto();

            var responseInterview = await ApiClient.PostInterview(requestInterview, dbInterviewTemplate.Id)
                                    .AwaitGetSuccessfulResponse <InterviewDto>();

            var dbInterviewTemplateDto = Mapper.Map <IEnumerable <QuestionDto> >(dbInterviewTemplate.Questions);

            Assert.IsTrue(responseInterview.Questions.CompareCollectionsUsingLikeness(dbInterviewTemplateDto));
        }
        public async Task ShouldBeABleToUpdateQuestion()
        {
            var questionDto = Mapper.Map <QuestionDto>(await Arranger.CreateQuestion());

            var questionPatchRequest = Stubber.StubQuestionPatchRequest();

            questionPatchRequest.ApplyTo(questionDto);

            await ApiClient.PatchQuestion(questionDto.Id, questionPatchRequest);

            var updatedQuestionDto = Mapper.Map <QuestionDto>(await Arranger.GetQuestion(questionDto.Id));

            questionDto.ToLikeness(true).ShouldEqual(updatedQuestionDto);
        }
Example #7
0
        public async Task ShouldBeAbleToUpdateCandidate()
        {
            var candidateDto = Mapper.Map <CandidateDto>(await Arranger.CreateCandidate());

            var patchRequest = Stubber.StubCandidatePatchRequest();

            patchRequest.ApplyTo(candidateDto);

            (await ApiClient.PatchCandidate(candidateDto.Id, patchRequest))
            .EnsureSuccessStatusCode();

            var updatedCandidateDto = Mapper.Map <CandidateDto>(await Arranger.GetCandidate(candidateDto.Id));

            candidateDto.ToLikeness(true)
            .ShouldEqual(updatedCandidateDto);
        }
Example #8
0
        public async Task ShouldBeAbleToCreateInterviewWithCandidate()
        {
            var requestInterviewDto = Stubber.StubInterviewDto();

            var dbCandidate = await Arranger.CreateCandidate();

            requestInterviewDto.Candidate = Mapper.Map <CandidateDto>(dbCandidate);

            var responseInterviewDto = await ApiClient.PostInterview(requestInterviewDto, candidateId : dbCandidate.Id)
                                       .AwaitGetSuccessfulResponse <InterviewDto>();

            responseInterviewDto
            .ToLikeness()
            .WithInnerLikeness(o => o.Candidate, o => o.Candidate)
            .ShouldEqual(requestInterviewDto);
        }
        public async Task ShouldBeAbleToCreateAnInterviewTemplateWithQuestions()
        {
            var requestInterviewTemplate = Stubber.StubInterviewTemplateDto();

            var questions = await Arranger.CreateQuestions();

            requestInterviewTemplate.QuestionIds = questions.Select(q => q.Id);

            var responseInterviewTemplate = await ApiClient.PostInterviewTemplate(requestInterviewTemplate)
                                            .AwaitGetSuccessfulResponse <InterviewTemplateDto>();

            responseInterviewTemplate
            .ToLikeness()
            .WithCollectionSequenceEquals(o => o.QuestionIds)
            .ShouldEqual(requestInterviewTemplate);
        }
        public async Task ShouldBeAbleToPatchAnInterviewTemplate()
        {
            var interviewTemplateDto = Mapper.Map <InterviewTemplateDto>(await Arranger.CreateInterviewTemplate());

            var patchRequest = Stubber.StubInterviewTemplatePatchRequest();

            patchRequest.ApplyTo(interviewTemplateDto);

            (await ApiClient.PatchInterviewTemplate(interviewTemplateDto.Id, patchRequest))
            .EnsureSuccessStatusCode();

            var updatedInterviewTemplateDto = Mapper.Map <InterviewTemplateDto>(
                await Arranger.GetInterviewTemplate(interviewTemplateDto.Id));

            interviewTemplateDto
            .ToLikeness()
            .Without(o => o.QuestionIds)
            .ShouldEqual(updatedInterviewTemplateDto);
        }
Example #11
0
        public void Setup()
        {
            var builder = new ConfigurationBuilder()
                          .AddJsonFile("appSettings.json");

            var configuration = builder.Build();

            ServiceProvider = new ServiceCollection()
                              .AddOptions()
                              .Configure <AppSettings>(configuration)
                              .AddSingleton <IQuestionRepository, QuestionRepository>()
                              .AddSingleton <IInterviewRepository, InterviewRepository>()
                              .AddSingleton <IInterviewTemplateRepository, InterviewTemplateRepository>()
                              .AddSingleton <ICandidateRepository, CandidateRepository>()
                              .AddSingleton <IMapper>(new Mapper(new MapperConfiguration(c => c.AddProfile(new MappingProfile()))))
                              .AddSingleton <Arranger, Arranger>()
                              .AddSingleton <Stubber, Stubber>()
                              .AddSingleton <ApiClient, ApiClient>()
                              .BuildServiceProvider();

            var appSettings = ServiceProvider.GetService <IOptions <AppSettings> >().Value;

            HttpClient             = new HttpClient();
            HttpClient.BaseAddress = new Uri(appSettings.ApiUri);

            Arranger  = ServiceProvider.GetService <Arranger>();
            Stubber   = ServiceProvider.GetService <Stubber>();
            ApiClient = ServiceProvider.GetService <ApiClient>();

            _Fixture = new Fixture();

            var config = new MapperConfiguration(cfg =>
            {
                cfg.AddProfile <MappingProfile>();
            });

            Mapper = config.CreateMapper();
        }