public async Task ProcessEmailUpdateShouldReturnFalseWhenInvalidNameIsPassed() { var options = new DbContextOptionsBuilder <TBIContext>().UseInMemoryDatabase(Guid.NewGuid().ToString()).Options; var userStore = new Mock <IUserStore <User> >(); var userManager = new Mock <UserManager <User> >(userStore.Object, null, null, null, null, null, null, null, null); var encrypter = new Mock <IEncrypter>(); var validator = new Mock <IValidator>(); var emailService = new Mock <IEmailService>().Object; var date = DateTime.Now; var email = new Application { Id = 1, Received = date, Email = "*****@*****.**", ApplicationStatus = ApplicationStatus.Open, Body = "test text", OperatorId = "1", LastChange = date }; var updateParameters = new EmailUpdateModel { EmailId = 1, LoggedUserUsername = "******", Amount = 23, NewStatus = "Accepted", EGN = "1111111111", PhoneNumber = "0876281932", FullName = "Ivan Petrov3123" }; var user = new User { Id = "1", UserName = "******" }; userManager.Setup(g => g.FindByNameAsync("testUser")).Returns(Task.FromResult(user)); userManager.Setup(g => g.IsInRoleAsync(user, "Operator")).Returns(Task.FromResult(true)); validator.Setup(d => d.ValidateEGN("1111111111")).Returns(Task.FromResult(true)); validator.Setup(d => d.ValidatePhone("0876281932")).Returns(Task.FromResult(true)); validator.Setup(d => d.ValidateName("Ivan Petrov3123")).Returns(Task.FromResult(false)); using (var arrangeContex = new TBIContext(options)) { arrangeContex.Applications.Add(email); await arrangeContex.SaveChangesAsync(); } using (var assertContext = new TBIContext(options)) { var sut = new EmailProcessingService(assertContext, encrypter.Object, userManager.Object, validator.Object, emailService); var executionResult = await sut.ProcessEmailUpdate(updateParameters); Assert.AreEqual(false, executionResult); } }