コード例 #1
0
        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);
            }
        }