public async Task AddSkill_WithValidData_ToExistingResume_WorksCorrectly()
        {
            var context = new JobFinderDbContext(new DbContextOptionsBuilder <JobFinderDbContext>()
                                                 .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                                 .Options);

            var model = new Resume()
            {
                JobSeeker = new JobSeeker()
                {
                    FirstName = "JobSeekerName1",
                    LastName  = "JobSeekerName2",
                    User      = new User()
                    {
                        UserName = "******"
                    }
                }
            };

            await context.AddAsync(model);

            context.SaveChanges();

            var serviceModel = new SkillServiceModel()
            {
                Name = "SkillName1"
            };

            var skillService = new SkillService(new EfRepository <Resume>(context),
                                                new EfRepository <Skill>(context));

            var result = await skillService.AddSkill(model.Id, serviceModel);

            Assert.True(result);
        }
        public async Task AddSkill_ToNonExistingResume_ReturnsFalse()
        {
            var context = new JobFinderDbContext(new DbContextOptionsBuilder <JobFinderDbContext>()
                                                 .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                                 .Options);

            var model = new Resume()
            {
                JobSeeker = new JobSeeker()
                {
                    FirstName = "JobSeekerName1",
                    LastName  = "JobSeekerName2",
                    User      = new User()
                    {
                        UserName = "******"
                    }
                }
            };

            var serviceModel = new SkillServiceModel();

            var skillService = new SkillService(new EfRepository <Resume>(context),
                                                new EfRepository <Skill>(context));

            var result = await skillService.AddSkill(model.Id, serviceModel);

            Assert.False(result);
        }
        public async Task UpdateAsync_WithInvalidData_ReturnsTrue()
        {
            string expectedResult = "Skill1";

            var context = new JobFinderDbContext(new DbContextOptionsBuilder <JobFinderDbContext>()
                                                 .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                                 .Options);

            var model = new Skill()
            {
                Name   = expectedResult,
                Resume = new Resume()
            };

            await context.AddAsync(model);

            context.SaveChanges();

            var serviceModel = new SkillServiceModel()
            {
                Id = model.Id,
            };

            var skillService = new SkillService(new EfRepository <Resume>(context),
                                                new EfRepository <Skill>(context));

            var result = await skillService.UpdateAsync(serviceModel);

            Assert.False(result);

            var actualResult = (await context.Skills.SingleAsync(s => s.Id == model.Id)).Name;

            Assert.Equal(expectedResult, actualResult);
        }
Example #4
0
        public async Task <bool> AddSkill(int?resumeId, SkillServiceModel model)
        {
            if (!this.IsEntityStateValid(model))
            {
                return(false);
            }

            if (resumeId == null)
            {
                return(false);
            }

            var resume = await this.resumesRepository.All().SingleOrDefaultAsync(r => r.Id == resumeId);

            if (resume == null)
            {
                return(false);
            }

            var skill = Mapper.Map <Skill>(model);

            skill.ResumeId = resume.Id;

            await this.skillsRepository.AddAsync(skill);

            await this.skillsRepository.SaveChangesAsync();

            return(true);
        }
        public async Task UpdateAsync_WithNonExistentSkill_ReturnsFalse()
        {
            var context = new JobFinderDbContext(new DbContextOptionsBuilder <JobFinderDbContext>()
                                                 .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                                 .Options);

            var skillService = new SkillService(new EfRepository <Resume>(context),
                                                new EfRepository <Skill>(context));

            var serviceModel = new SkillServiceModel()
            {
                Name = "Skill1",
            };

            var result = await skillService.UpdateAsync(serviceModel);
        }
Example #6
0
        private List <SkillAlghorythmModel> MapSubSkills(SkillServiceModel skill)
        {
            if (skill.SubSkills == null)
            {
                return(null);
            }

            var result = new List <SkillAlghorythmModel>(skill.SubSkills.Count);

            foreach (var subSkill in skill.SubSkills)
            {
                result.Add(new SkillAlghorythmModel()
                {
                    Id        = subSkill.Id,
                    SkillType = subSkill.SkillType.Value,
                    SubSkills = MapSubSkills(subSkill)
                });
            }

            return(result);
        }
Example #7
0
        public async Task <bool> UpdateAsync(SkillServiceModel model)
        {
            if (!this.IsEntityStateValid(model))
            {
                return(false);
            }

            var skill = await this.skillsRepository.All().SingleOrDefaultAsync(s => s.Id == model.Id);

            if (skill == null)
            {
                return(false);
            }

            skill.Name        = model.Name;
            skill.Description = model.Description;

            this.skillsRepository.Update(skill);
            await this.skillsRepository.SaveChangesAsync();

            return(true);
        }