public async Task TestUpdate() { var mockUserSet = IMUow.Repository <User>().GetListAsync(UserDtos.InMemoryList()); mockContext.Setup(m => m.Set <User>()).Returns(mockUserSet.Object); var mockUow = new Mock <EntityUnitofWork <Guid> >(mockContext.Object); _emailService = new EmailService(); _userService = new UserService(mockUow.Object, _emailService); var result = await _userService.Update(UserDtos.UpdateDto(), UserDtos.InMemoryList().First().Id, true, true); if (result.Message != Messages.Ok) { Assert.Inconclusive(result.Message); } Assert.AreEqual( UserDtos.UpdateDto().Name, mockUserSet.Object.FirstOrDefault(x => x.Id == Guid.Parse(result.Data.ToString())).Name); Assert.AreEqual( UserDtos.UpdateDto().Phone, mockUserSet.Object.FirstOrDefault(x => x.Id == Guid.Parse(result.Data.ToString())).Phone); mockUow.Verify(m => m.SaveChangesAsync(), Times.Once); }
public async Task TestAutoCodeGenerate() { //Context has been overriding and an in-memory autocode data has been added. var mockAutoCodeSet = IMUow.Repository <AutoCode>().GetListAsync(AutoCodeDtos.InMemoryList()); mockContext.Setup(m => m.Set <AutoCode>()).Returns(mockAutoCodeSet.Object); //Context has been overriding and add mocked AutoCodeLog DbSet. var mockAutoCodeLogSet = new Mock <DbSet <AutoCodeLog> >(); mockContext.Setup(m => m.Set <AutoCodeLog>()).Returns(mockAutoCodeLogSet.Object); //Unit of work has been mocked. Mock context sent to constructor. Services works with mocked unit of work. var mockUow = new Mock <EntityUnitofWork <Guid> >(mockContext.Object); _autoCodeLogService = new AutoCodeLogService(mockUow.Object); _autoCodeService = new AutoCodeService(mockUow.Object, _autoCodeLogService); var result = await _autoCodeService.AutoCodeGenerate( AutoCodeDtos.ScreenCodeForAutomaticCodeGenerationTest, UserDtos.InMemoryList().First().ID); //Is the expected code the same as the generated code? Assert.AreEqual("CF-143-UT", result); //Has the last code number increased? Assert.AreEqual( 143, mockAutoCodeSet.Object. FirstOrDefault(x => x.ScreenCode == AutoCodeDtos.ScreenCodeForAutomaticCodeGenerationTest).LastCodeNumber); mockAutoCodeLogSet.Verify(m => m.Add(It.IsAny <AutoCodeLog>()), Times.Once); mockUow.Verify(m => m.SaveChangesAsync(), Times.Once); }
public async Task TestDuplicateUser() { //Context has been overriding and an in-memory user has been added. var mockUserSet = IMUow.Repository <User>().GetListAsNoTrackingAsync(UserDtos.InMemoryList()); mockContext.Setup(m => m.Set <User>()).Returns(mockUserSet.Object); //Unit of work has been mocked. Mock context sent to constructor. Services works with mocked unit of work. var mockUow = new Mock <EntityUnitofWork <Guid> >(mockContext.Object); _emailService = new EmailService(); _userService = new UserService(mockUow.Object, _emailService); var result = await _userService.Register(UserDtos.DuplicateUserDto(), UserDtos.InMemoryList().First().Id); Assert.AreEqual(result.Message, Messages.GNE0003); }
public async Task TestRegister() { //Context has been overriding and an in-memory user has been added. var mockUserSet = IMUow.Repository <User>().GetListAsNoTrackingAsync(UserDtos.InMemoryList()); mockContext.Setup(m => m.Set <User>()).Returns(mockUserSet.Object); //Unit of work has been mocked. Mock context sent to constructor. Services works with mocked unit of work. var mockUow = new Mock <EntityUnitofWork <Guid> >(mockContext.Object); _emailService = new EmailService(); _userService = new UserService(mockUow.Object, _emailService); var result = await _userService.Register(UserDtos.RegisterDto(), UserDtos.InMemoryList().First().Id); if (result.Message != Messages.Ok) { Assert.Inconclusive(result.Message); } mockUserSet.Verify(m => m.Add(It.IsAny <User>()), Times.Once); mockUow.Verify(m => m.SaveChangesAsync(), Times.Once); }