Пример #1
0
        public async Task AddCandidate_ShouldAddOneCandidate()
        {
            var options = new DbContextOptionsBuilder <GeekHunterContext>()
                          .UseInMemoryDatabase("AddCandidate_ShouldAddOneCandidate")
                          .Options;

            var context = new GeekHunterContext(options);

            await Seed(context);

            CandidateRepository candidateRepository = new CandidateRepository(context);

            await candidateRepository.AddCandidate(new AddCandidateDto
            {
                FirstName = "TestFirstName",
                LastName  = "TestLastName",
                Skills    = new List <string> {
                    "SQL", "Entity Framework"
                }
            });

            var candidates = (await candidateRepository.GetCandidates()).ToList();

            Assert.Equal(4, candidates.Count);
            var addedCustomer = candidates[3];

            Assert.Equal("TestFirstName", addedCustomer.FirstName);
            Assert.Equal("TestLastName", addedCustomer.LastName);
            Assert.Equal(2, addedCustomer.Skills.Count);
        }
Пример #2
0
        private CandidateController CandidateController(GeekHunterContext context)
        {
            Seed(context);
            var candidateRepository = new CandidateRepository(context);
            var candidateService    = new CandidateService(candidateRepository);
            var controller          = new CandidateController(candidateService);

            return(controller);
        }
Пример #3
0
        protected void Seed(GeekHunterContext context)
        {
            DateTime now    = DateTime.Now;
            var      skills = new List <Skill>
            {
                new Skill
                {
                    Name = "SQL"
                },
                new Skill
                {
                    Name = "Entity Framework"
                },
                new Skill
                {
                    Name = "ReactJS"
                }
            };

            context.Skills.AddRange(skills);

            var candidates = new List <Candidate>
            {
                new Candidate
                {
                    FirstName = "Donald",
                    LastName  = "Trump",
                    Skills    = new List <Skill>
                    {
                        new Skill
                        {
                            Name = "SQL"
                        },
                        new Skill
                        {
                            Name = "ReactJS"
                        }
                    }
                },
                new Candidate
                {
                    FirstName = "Barak",
                    LastName  = "Obama",
                    Skills    = new List <Skill>()
                },
                new Candidate
                {
                    FirstName = "Bill",
                    LastName  = "Clinton",
                    Skills    = new List <Skill>()
                }
            };

            context.Candidates.AddRange(candidates);
            context.SaveChanges();
        }
Пример #4
0
        public ControllerTestsBase()
        {
            var options = new DbContextOptionsBuilder <GeekHunterContext>()
                          .UseInMemoryDatabase("ShouldReturnAllCustomers")
                          .Options;


            _context = new GeekHunterContext(options);
            _context.Database.EnsureCreated();
        }
Пример #5
0
        public async Task GetCandidates_ReturnsAllCandidates()
        {
            using (var context = new GeekHunterContext(CreateNewContextOptions <GeekHunterContext>()))
            {
                var controller = CandidateController(context);

                var result = await controller.GetCandidates();

                var objectResult = Assert.IsType <OkObjectResult>(result);
                Assert.IsAssignableFrom <IEnumerable <CandidateDto> >(objectResult.Value);
                Assert.Equal(3, ((IEnumerable <CandidateDto>)objectResult.Value).Count());
            }
        }
Пример #6
0
        public async Task GetCandidates_ShouldReturnAllCandidates()
        {
            var options = new DbContextOptionsBuilder <GeekHunterContext>()
                          .UseInMemoryDatabase("GetCandidates_ShouldReturnAllCandidates")
                          .Options;

            var context = new GeekHunterContext(options);

            await Seed(context);

            CandidateRepository candidateRepository = new CandidateRepository(context);

            var customers = (await candidateRepository.GetCandidates()).ToList();

            Assert.Equal(3, customers.Count);
            Assert.Equal(2, customers[0].Skills.Count);
        }
Пример #7
0
        public async Task AddCustomer_ShouldReturnOneMoreCustomer()
        {
            using (var context = new GeekHunterContext(CreateNewContextOptions <GeekHunterContext>()))
            {
                var controller = CandidateController(context);

                var result = await controller.AddCandidate(new AddCandidateDto
                {
                    FirstName = "TestAddedCandidateFirstName",
                    LastName  = "TestAddedCandidateLastName",
                    Skills    = new List <string> {
                        "Entity Framework", "ReactJS"
                    }
                });

                Assert.IsType <OkObjectResult>(result);
                Assert.Equal(200, ((OkObjectResult)result).StatusCode);

                var customers = await controller.GetCandidates();

                var objectResult = Assert.IsType <OkObjectResult>(customers);
                Assert.IsAssignableFrom <IEnumerable <CandidateDto> >(objectResult.Value);
                Assert.Equal(4, ((IEnumerable <CandidateDto>)objectResult.Value).Count());
                Assert.Equal(2, ((IEnumerable <CandidateDto>)objectResult.Value).ToList()[3].Skills.Count);

                var result2 = await controller.AddCandidate(new AddCandidateDto
                {
                    FirstName = "TestAddedCandidateFirstName2",
                    LastName  = "TestAddedCandidateLastName2",
                    Skills    = new List <string> {
                    }
                });

                Assert.IsType <OkObjectResult>(result2);
                Assert.Equal(200, ((OkObjectResult)result2).StatusCode);

                customers = await controller.GetCandidates();

                objectResult = Assert.IsType <OkObjectResult>(customers);
                Assert.IsAssignableFrom <IEnumerable <CandidateDto> >(objectResult.Value);
                Assert.Equal(5, ((IEnumerable <CandidateDto>)objectResult.Value).Count());
                Assert.Equal(0, ((IEnumerable <CandidateDto>)objectResult.Value).ToList()[4].Skills.Count);
            }
        }
Пример #8
0
 public HomeController(GeekHunterContext context) => db = context;
Пример #9
0
 public CandidatesController(GeekHunterContext context)
 {
     _data = new DataRepository(context);
 }
Пример #10
0
        private async Task <bool> Seed(GeekHunterContext context)
        {
            DateTime now    = DateTime.Now;
            var      skills = new List <Skill>
            {
                new Skill
                {
                    Name = "SQL"
                },
                new Skill
                {
                    Name = "Entity Framework"
                },
                new Skill
                {
                    Name = "ReactJS"
                }
            };

            context.Skills.AddRange(skills);

            var skillsForFirstCandidate = skills.Where(s => s.Name == "SQL" || s.Name == "ReactJS").ToList();
            var candidates = new List <Candidate>
            {
                new Candidate
                {
                    FirstName = "Donald",
                    LastName  = "Trump"
                                //,CandidateSkills = skillsForFirstCandidate
                    , Skills = skillsForFirstCandidate
                },
                new Candidate
                {
                    FirstName = "Barak",
                    LastName  = "Obama",
                    Skills    = new List <Skill>()
                },
                new Candidate
                {
                    FirstName = "Bill",
                    LastName  = "Clinton",
                    Skills    = new List <Skill>()
                }
            };

            List <CandidateSkill> candidateSkills = skillsForFirstCandidate.Select(s => new CandidateSkill
            {
                Candidate   = candidates[0],
                CandidateId = candidates[0].Id,
                Skill       = s,
                SkillId     = s.Id
            }).ToList();

            candidates[0].CandidateSkills = candidateSkills;

            context.Candidates.AddRange(candidates);

            await context.SaveChangesAsync();

            return(true);
        }
Пример #11
0
 public CandidateRepository(GeekHunterContext db)
 {
     _db = db;
 }
Пример #12
0
 public SkillController(GeekHunterContext context)
 {
     _data = new DataRepository(context);
 }