예제 #1
0
        public void SetUpdateStatusForSocs(IEnumerable <SocCode> socCodes, SkillsFrameworkUpdateStatus updateStatus)
        {
            var socArray    = socCodes.Select(s => s.SOCCode).ToArray();
            var socMappings = onetDbContext.DFC_SocMappings.Where(s => socArray.Contains(s.SocCode)).ToList();

            socMappings.ForEach(m => m.UpdateStatus = updateStatus.ToString());

            foreach (var m in socMappings)
            {
                onetDbContext.Entry(m).State = System.Data.Entity.EntityState.Modified;
            }
            onetDbContext.SaveChanges();
        }
        public void SetUpdateStatusForSocsTest(SkillsFrameworkUpdateStatus status)
        {
            var setupSocData  = MixedCombination();
            var fakeDbContext = A.Fake <OnetSkillsFramework>();
            var actualMapper  = new MapperConfiguration(c => c.AddProfile <SkillsFrameworkMapper>()).CreateMapper();
            var fakeDbSet     = A.Fake <DbSet <DFC_SocMappings> >(c => c
                                                                  .Implements(typeof(IQueryable <DFC_SocMappings>))
                                                                  .Implements(typeof(IDbAsyncEnumerable <DFC_SocMappings>)))
                                .SetupData(setupSocData.ToList());

            A.CallTo(() => fakeDbContext.DFC_SocMappings).Returns(fakeDbSet);

            A.CallTo(() => fakeDbContext.SaveChanges()).Returns(1);

            var repo = new SocMappingRepository(fakeDbContext, actualMapper);

            repo.SetUpdateStatusForSocs(new List <SocCode> {
                new SocCode {
                    SOCCode = nameof(SocCode.SOCCode)
                }
            }, status);

            A.CallTo(() => fakeDbContext.SaveChanges()).MustHaveHappened(Repeated.Exactly.Once);
        }