public async Task GetEmailFullInfoReturnsInfo() { 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.NotReviewed, Body = "test text", OperatorId = "1", LastChange = date }; var user = new User { Id = "1", UserName = "******" }; userManager.Setup(g => g.FindByNameAsync("testUser")).Returns(Task.FromResult(user)); userManager.Setup(g => g.IsInRoleAsync(user, "Manager")).Returns(Task.FromResult(true)); encrypter.Setup(d => d.Decrypt("*****@*****.**")).Returns("*****@*****.**"); encrypter.Setup(d => d.Decrypt("test text")).Returns("test text"); 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.GetEmailFullInfo(1, "testUser"); Assert.AreEqual(1, executionResult.EmailId); Assert.AreEqual(date, executionResult.Emailreceived); Assert.AreEqual("*****@*****.**", executionResult.EmailSender); Assert.AreEqual("NotReviewed", executionResult.EmailStatus.ToString()); Assert.AreEqual("test text", executionResult.Body); Assert.AreEqual("1", executionResult.OperatorId); Assert.AreEqual(2, executionResult.PermitedOperations.Count); Assert.AreEqual(true, executionResult.AllowedToWork); Assert.AreEqual(date.Ticks.ToString(), executionResult.CurrentDataStamp); } }