mirror of
https://github.com/ONLYOFFICE/Mail.git
synced 2025-04-18 16:44:01 +03:00
rework Tests.
This commit is contained in:
parent
c57a25a655
commit
7a63b08666
@ -24,10 +24,6 @@
|
||||
*/
|
||||
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
using ASC.Common;
|
||||
using ASC.Core;
|
||||
using ASC.Core.Common.EF;
|
||||
@ -35,6 +31,10 @@ using ASC.Mail.Core.Dao.Interfaces;
|
||||
using ASC.Mail.Core.Entities;
|
||||
using ASC.Mail.Models;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace ASC.Mail.Core.Dao
|
||||
{
|
||||
[Scope]
|
||||
@ -76,13 +76,13 @@ namespace ASC.Mail.Core.Dao
|
||||
MailboxOAuthToken = mb.Token,
|
||||
MailboxIsServerMailbox = mb.IsServerMailbox,
|
||||
MailboxEmailInFolder = mb.EmailInFolder,
|
||||
ServerAddressId = sa.Id,
|
||||
ServerAddressIsAlias = sa.IsAlias != null ? sa.IsAlias : false,
|
||||
ServerAddressId = sa.Id != null ? sa.Id : 0,
|
||||
ServerDomainId = sd.Id != null ? sd.Id : 0,
|
||||
ServerMailGroupId = sg.Id != null ? sg.Id : 0,
|
||||
ServerDomainTenant = sd.Tenant != null ? sd.Tenant : 0,
|
||||
ServerAddressName = sa.Name,
|
||||
ServerAddressIsAlias = sa.IsAlias,
|
||||
ServerDomainId = sd.Id,
|
||||
ServerDomainName = sd.Name,
|
||||
ServerDomainTenant = sd.Tenant,
|
||||
ServerMailGroupId = sg.Id,
|
||||
ServerMailGroupAddress = sg.Address,
|
||||
MailboxSignature = sig != null
|
||||
? new MailSignatureData((int)mb.Id, mb.Tenant, sig.Html, sig.IsActive)
|
||||
@ -92,8 +92,7 @@ namespace ASC.Mail.Core.Dao
|
||||
reply.TurnOnToDate, reply.FromDate, reply.ToDate, reply.Subject, reply.Html)
|
||||
: new MailAutoreplyData((int)mb.Id, mb.Tenant, false, false,
|
||||
false, DateTime.MinValue, DateTime.MinValue, string.Empty, string.Empty)
|
||||
})
|
||||
.ToList();
|
||||
}).ToList();
|
||||
|
||||
return accounts;
|
||||
}
|
||||
|
@ -45,6 +45,11 @@ namespace ASC.Mail.Core.Dao.Entities
|
||||
.UseCollation("utf8_general_ci");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<MailMailboxDomain>().HasData(new MailMailboxDomain
|
||||
{
|
||||
Id = 924, IdProvider = 69, Name = "gmail.com"
|
||||
});
|
||||
|
||||
return modelBuilder;
|
||||
}
|
||||
}
|
||||
|
@ -58,6 +58,14 @@ namespace ASC.Mail.Core.Dao.Entities
|
||||
.UseCollation("utf8_general_ci");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<MailMailboxProvider>().HasData(new MailMailboxProvider
|
||||
{
|
||||
Id = 69,
|
||||
Name = "googlemail.com",
|
||||
DisplayName = "Google Mail",
|
||||
DisplayShortName = "GMail"
|
||||
});
|
||||
|
||||
return modelBuilder;
|
||||
}
|
||||
}
|
||||
|
@ -88,6 +88,21 @@ namespace ASC.Mail.Core.Dao.Entities
|
||||
.HasColumnType("tinyint(4)");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<MailMailboxServer>().HasData(new MailMailboxServer [] {
|
||||
new MailMailboxServer
|
||||
{
|
||||
Id = 663, IdProvider = 69, Type = "imap", Hostname = "imap.googlemail.com", Port = 993, SocketType = "SSL", Username = "%EMAILADDRESS%", IsUserData = false
|
||||
} ,
|
||||
new MailMailboxServer
|
||||
{
|
||||
Id = 664, IdProvider = 69, Type = "pop3", Hostname = "pop.googlemail.com", Port = 995, SocketType = "SSL", Username = "recent:%EMAILADDRESS%", IsUserData = false
|
||||
} ,
|
||||
new MailMailboxServer
|
||||
{
|
||||
Id = 665, IdProvider = 69, Type = "smtp", Hostname = "smpt.googlemail.com", Port = 465, SocketType = "SSL", Username = "%EMAILADDRESS%", IsUserData = false
|
||||
}
|
||||
});
|
||||
|
||||
return modelBuilder;
|
||||
}
|
||||
}
|
||||
|
@ -59,7 +59,8 @@ namespace ASC.Mail.Core.Dao.Entities
|
||||
|
||||
entity.Property(e => e.IsAlias)
|
||||
.HasColumnName("is_alias")
|
||||
.HasColumnType("int(10)");
|
||||
.HasColumnType("int(10)")
|
||||
.HasDefaultValueSql("'0'");
|
||||
|
||||
entity.Property(e => e.DateCreated)
|
||||
.HasColumnName("date_created")
|
||||
|
@ -6,7 +6,11 @@ using ASC.Core.Common.EF;
|
||||
using ASC.Core.Common.EF.Context;
|
||||
using ASC.Core.Tenants;
|
||||
using ASC.Core.Users;
|
||||
using ASC.Mail.Aggregator.Tests.Common.Utils;
|
||||
using ASC.Mail.Core.Engine;
|
||||
using ASC.Mail.Core.Search;
|
||||
using ASC.Mail.Models;
|
||||
using ASC.Mail.Utils;
|
||||
|
||||
using Autofac.Extensions.DependencyInjection;
|
||||
|
||||
@ -19,6 +23,7 @@ using NUnit.Framework;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
|
||||
namespace ASC.Mail.Tests
|
||||
@ -116,12 +121,22 @@ namespace ASC.Mail.Tests
|
||||
|
||||
public class BaseMailTests
|
||||
{
|
||||
protected UserInfo TestUser { get; set; }
|
||||
protected IServiceProvider ServiceProvider { get; set; }
|
||||
protected IHost TestHost { get; set; }
|
||||
protected IServiceScope serviceScope { get; set; }
|
||||
protected Tenant CurrentTenant { get; set; }
|
||||
protected SecurityContext SecurityContext { get; set; }
|
||||
protected UserManager UserManager { get; set; }
|
||||
|
||||
protected MailBoxData TestMailbox { get; set; }
|
||||
protected UserInfo TestUser { get; set; }
|
||||
|
||||
protected const int CURRENT_TENANT = 1;
|
||||
public const string PASSWORD = "123456";
|
||||
public const string DOMAIN = "gmail.com";
|
||||
|
||||
protected static readonly string TestFolderPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
|
||||
@"..\..\..\Data\");
|
||||
|
||||
public const string TestConnection = "Server=localhost;Database=onlyoffice_test;User ID=root;Password=root;Pooling=true;Character Set=utf8;AutoEnlist=false;SSL Mode=none;AllowPublicKeyRetrieval=True";
|
||||
|
||||
@ -181,16 +196,33 @@ namespace ASC.Mail.Tests
|
||||
serviceScope = TestHost.Services.CreateScope();
|
||||
|
||||
var tenantManager = serviceScope.ServiceProvider.GetService<TenantManager>();
|
||||
var tenant = tenantManager.GetTenant(1);
|
||||
var tenant = tenantManager.GetTenant(CURRENT_TENANT);
|
||||
|
||||
var mailBoxSettingEngine = serviceScope.ServiceProvider.GetService<MailBoxSettingEngine>();
|
||||
var mailboxEngine = serviceScope.ServiceProvider.GetService<MailboxEngine>();
|
||||
|
||||
tenantManager.SetCurrentTenant(tenant);
|
||||
CurrentTenant = tenant;
|
||||
|
||||
UserManager = serviceScope.ServiceProvider.GetService<UserManager>();
|
||||
|
||||
SecurityContext = serviceScope.ServiceProvider.GetService<SecurityContext>();
|
||||
SecurityContext.AuthenticateMe(CurrentTenant.OwnerId);
|
||||
|
||||
TestHost.Start();
|
||||
|
||||
TestUser = UserManager.GetUsers(Guid.Parse("66faa6e4-f133-11ea-b126-00ffeec8b4ef"));
|
||||
TestUser.Email = TestHelper.GetTestEmailAddress(DOMAIN);
|
||||
|
||||
var mailboxSettings = mailBoxSettingEngine.GetMailBoxSettings(DOMAIN);
|
||||
var testMailboxes = mailboxSettings.ToMailboxList(TestUser.Email, PASSWORD, CURRENT_TENANT, TestUser.ID.ToString());
|
||||
|
||||
TestMailbox = testMailboxes.FirstOrDefault();
|
||||
|
||||
if (TestMailbox == null || !mailboxEngine.SaveMailBox(TestMailbox))
|
||||
{
|
||||
throw new Exception(string.Format("Can't create mailbox with email: {0}", TestUser.Email));
|
||||
}
|
||||
|
||||
ServiceProvider = TestHost.Services;
|
||||
}
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -25,9 +25,6 @@
|
||||
|
||||
|
||||
using ASC.Core;
|
||||
using ASC.ElasticSearch;
|
||||
using ASC.Mail.Aggregator.Tests.Common.Utils;
|
||||
using ASC.Mail.Core.Dao.Entities;
|
||||
using ASC.Mail.Core.Engine;
|
||||
using ASC.Mail.Enums;
|
||||
using ASC.Mail.Exceptions;
|
||||
@ -38,7 +35,6 @@ using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
using NUnit.Framework;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
@ -49,102 +45,34 @@ namespace ASC.Mail.Tests
|
||||
[TestFixture]
|
||||
internal class DraftEngineTests : BaseMailTests
|
||||
{
|
||||
private const int CURRENT_TENANT = 1;
|
||||
public const string PASSWORD = "123456";
|
||||
public const string DOMAIN = "gmail.com";
|
||||
|
||||
private MailBoxData TestMailbox { get; set; }
|
||||
|
||||
private static readonly string TestFolderPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
|
||||
@"..\..\..\Data\");
|
||||
private const string EML1_FILE_NAME = @"bad_encoding.eml";
|
||||
private static readonly string Eml1Path = TestFolderPath + EML1_FILE_NAME;
|
||||
|
||||
private FolderEngine FolderEngine { get; set; }
|
||||
private TestEngine TestEngine { get; set; }
|
||||
private MessageEngine MessageEngine { get; set; }
|
||||
private TenantManager TenantManager { get; set; }
|
||||
private CoreSettings CoreSettings { get; set; }
|
||||
private DraftEngine DraftEngine { get; set; }
|
||||
|
||||
[OneTimeSetUp]
|
||||
public override void Prepare()
|
||||
{
|
||||
base.Prepare();
|
||||
}
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
var mailBoxSettingEngine = scope.ServiceProvider.GetService<MailBoxSettingEngine>();
|
||||
var mailboxEngine = scope.ServiceProvider.GetService<MailboxEngine>();
|
||||
var apiHelper = scope.ServiceProvider.GetService<ApiHelper>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(ASC.Core.Configuration.Constants.CoreSystem);
|
||||
|
||||
TestUser = TestHelper.CreateNewRandomEmployee(userManager, securityContext, tenantManager, apiHelper);
|
||||
|
||||
//вынести
|
||||
var mailboxSettings = mailBoxSettingEngine.GetMailBoxSettings(DOMAIN);
|
||||
|
||||
var testMailboxes = mailboxSettings.ToMailboxList(TestUser.Email, PASSWORD, CURRENT_TENANT, TestUser.ID.ToString());
|
||||
|
||||
TestMailbox = testMailboxes.FirstOrDefault();
|
||||
|
||||
if (TestMailbox == null || !mailboxEngine.SaveMailBox(TestMailbox))
|
||||
{
|
||||
throw new Exception(string.Format("Can't create mailbox with email: {0}", TestUser.Email));
|
||||
}
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
public void CleanUp()
|
||||
{
|
||||
if (TestUser == null || TestUser.ID == Guid.Empty)
|
||||
return;
|
||||
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(ASC.Core.Configuration.Constants.CoreSystem);
|
||||
|
||||
// Remove TestUser profile
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
userManager.DeleteUser(TestUser.ID);
|
||||
|
||||
// Clear TestUser mail index
|
||||
var factoryIndexer = scope.ServiceProvider.GetService<FactoryIndexer<MailMail>>();
|
||||
var factoryIndexerHelper = scope.ServiceProvider.GetService<FactoryIndexer<MailMail>>();
|
||||
|
||||
var t = scope.ServiceProvider.GetService<MailMail>();
|
||||
if (factoryIndexer.Support(t))
|
||||
factoryIndexer.DeleteAsync(s => s.Where(m => m.UserId, TestUser.ID.ToString())).Wait();
|
||||
|
||||
// Clear TestUser mail data
|
||||
var mailGarbageEngine = scope.ServiceProvider.GetService<MailGarbageEngine>();
|
||||
mailGarbageEngine.ClearUserMail(TestUser.ID, tenantManager.GetCurrentTenant());
|
||||
FolderEngine = serviceScope.ServiceProvider.GetService<FolderEngine>();
|
||||
TestEngine = serviceScope.ServiceProvider.GetService<TestEngine>();
|
||||
MessageEngine = serviceScope.ServiceProvider.GetService<MessageEngine>();
|
||||
TenantManager = serviceScope.ServiceProvider.GetService<TenantManager>();
|
||||
CoreSettings = serviceScope.ServiceProvider.GetService<CoreSettings>();
|
||||
DraftEngine = serviceScope.ServiceProvider.GetService<DraftEngine>();
|
||||
}
|
||||
|
||||
[Test]
|
||||
[Order(1)]
|
||||
public void CreateDraftTest()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var folderEngine = scope.ServiceProvider.GetService<FolderEngine>();
|
||||
var coreSettings = scope.ServiceProvider.GetService<CoreSettings>();
|
||||
var draftEngine = scope.ServiceProvider.GetService<DraftEngine>();
|
||||
var messageEngine = scope.ServiceProvider.GetService<MessageEngine>();
|
||||
|
||||
var folders = folderEngine.GetFolders();
|
||||
var folders = FolderEngine.GetFolders();
|
||||
|
||||
Assert.IsNotEmpty(folders);
|
||||
|
||||
@ -152,13 +80,13 @@ namespace ASC.Mail.Tests
|
||||
folders.Any(f => f.total == 0 && f.unread == 0 && f.totalMessages == 0 && f.unreadMessages == 0));
|
||||
|
||||
var draftItem = new MailDraftData(0, TestMailbox, "test@gmail.com", new List<string>(), new List<string>(), new List<string>(), "subject",
|
||||
MailUtil.CreateMessageId(tenantManager, coreSettings), null, false, null, "Test body", MailUtil.CreateStreamId(), new List<MailAttachmentData>());
|
||||
MailUtil.CreateMessageId(TenantManager, CoreSettings), null, false, null, "Test body", MailUtil.CreateStreamId(), new List<MailAttachmentData>());
|
||||
|
||||
var data = draftEngine.Save(draftItem);
|
||||
var data = DraftEngine.Save(draftItem);
|
||||
|
||||
Assert.Greater(data.Id, 0);
|
||||
|
||||
folders = folderEngine.GetFolders();
|
||||
folders = FolderEngine.GetFolders();
|
||||
|
||||
var draft = folders.FirstOrDefault(f => f.id == FolderType.Draft);
|
||||
|
||||
@ -168,7 +96,7 @@ namespace ASC.Mail.Tests
|
||||
Assert.AreEqual(0, draft.total);
|
||||
Assert.AreEqual(0, draft.unread);
|
||||
|
||||
var savedDraftData = messageEngine.GetMessage(data.Id, new MailMessageData.Options());
|
||||
var savedDraftData = MessageEngine.GetMessage(data.Id, new MailMessageData.Options());
|
||||
|
||||
Assert.AreEqual("subject", savedDraftData.Subject);
|
||||
Assert.AreEqual("test@gmail.com", savedDraftData.From);
|
||||
@ -178,21 +106,7 @@ namespace ASC.Mail.Tests
|
||||
[Order(2)]
|
||||
public void CreateForwardDraftTest()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var folderEngine = scope.ServiceProvider.GetService<FolderEngine>();
|
||||
var coreSettings = scope.ServiceProvider.GetService<CoreSettings>();
|
||||
var draftEngine = scope.ServiceProvider.GetService<DraftEngine>();
|
||||
var testEngine = scope.ServiceProvider.GetService<TestEngine>();
|
||||
var messageEngine = scope.ServiceProvider.GetService<MessageEngine>();
|
||||
|
||||
var folders = folderEngine.GetFolders();
|
||||
var folders = FolderEngine.GetFolders();
|
||||
|
||||
Assert.IsNotEmpty(folders);
|
||||
|
||||
@ -212,7 +126,7 @@ namespace ASC.Mail.Tests
|
||||
Body = "Test body"
|
||||
};
|
||||
|
||||
var id1 = testEngine.CreateSampleMessage(model);
|
||||
var id1 = TestEngine.CreateSampleMessage(model);
|
||||
|
||||
Assert.Greater(id1, 0);
|
||||
|
||||
@ -227,25 +141,25 @@ namespace ASC.Mail.Tests
|
||||
Stream = fs
|
||||
};
|
||||
|
||||
attachData = testEngine.AppendAttachmentsToSampleMessage(id1, attachmentModel);
|
||||
attachData = TestEngine.AppendAttachmentsToSampleMessage(id1, attachmentModel);
|
||||
}
|
||||
|
||||
Assert.IsNotNull(attachData);
|
||||
Assert.Greater(attachData.fileId, 0);
|
||||
|
||||
var message = messageEngine.GetMessage(id1, new MailMessageData.Options());
|
||||
var message = MessageEngine.GetMessage(id1, new MailMessageData.Options());
|
||||
|
||||
Assert.AreEqual(1, message.Attachments.Count);
|
||||
|
||||
var draftItem = new MailDraftData(0, TestMailbox, "test@gmail.com", new List<string>(), new List<string>(), new List<string>(),
|
||||
"subject", MailUtil.CreateMessageId(tenantManager, coreSettings), null, false, null, "Test body",
|
||||
"subject", MailUtil.CreateMessageId(TenantManager, CoreSettings), null, false, null, "Test body",
|
||||
MailUtil.CreateStreamId(), message.Attachments);
|
||||
|
||||
var data = draftEngine.Save(draftItem);
|
||||
var data = DraftEngine.Save(draftItem);
|
||||
|
||||
Assert.Greater(data.Id, 0);
|
||||
|
||||
folders = folderEngine.GetFolders();
|
||||
folders = FolderEngine.GetFolders();
|
||||
|
||||
var inbox = folders.FirstOrDefault(f => f.id == FolderType.Inbox);
|
||||
|
||||
@ -263,13 +177,13 @@ namespace ASC.Mail.Tests
|
||||
Assert.AreEqual(0, draft.total);
|
||||
Assert.AreEqual(0, draft.unread);
|
||||
|
||||
var savedDraftData = messageEngine.GetMessage(data.Id, new MailMessageData.Options());
|
||||
var savedDraftData = MessageEngine.GetMessage(data.Id, new MailMessageData.Options());
|
||||
|
||||
Assert.AreEqual("subject", savedDraftData.Subject);
|
||||
Assert.AreEqual("test@gmail.com", savedDraftData.From);
|
||||
Assert.AreEqual(1, savedDraftData.Attachments.Count);
|
||||
|
||||
message = messageEngine.GetMessage(id1, new MailMessageData.Options());
|
||||
message = MessageEngine.GetMessage(id1, new MailMessageData.Options());
|
||||
|
||||
Assert.AreEqual(1, message.Attachments.Count);
|
||||
}
|
||||
@ -278,21 +192,7 @@ namespace ASC.Mail.Tests
|
||||
[Order(3)]
|
||||
public void CreateDraftWithClonedAttachmentTest()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var folderEngine = scope.ServiceProvider.GetService<FolderEngine>();
|
||||
var coreSettings = scope.ServiceProvider.GetService<CoreSettings>();
|
||||
var draftEngine = scope.ServiceProvider.GetService<DraftEngine>();
|
||||
var testEngine = scope.ServiceProvider.GetService<TestEngine>();
|
||||
var messageEngine = scope.ServiceProvider.GetService<MessageEngine>();
|
||||
|
||||
var folders = folderEngine.GetFolders();
|
||||
var folders = FolderEngine.GetFolders();
|
||||
|
||||
Assert.IsNotEmpty(folders);
|
||||
|
||||
@ -312,7 +212,7 @@ namespace ASC.Mail.Tests
|
||||
Body = "Test body"
|
||||
};
|
||||
|
||||
var id1 = testEngine.CreateSampleMessage(model);
|
||||
var id1 = TestEngine.CreateSampleMessage(model);
|
||||
|
||||
Assert.Greater(id1, 0);
|
||||
|
||||
@ -327,13 +227,13 @@ namespace ASC.Mail.Tests
|
||||
Stream = fs
|
||||
};
|
||||
|
||||
attachData = testEngine.AppendAttachmentsToSampleMessage(id1, attachmentModel);
|
||||
attachData = TestEngine.AppendAttachmentsToSampleMessage(id1, attachmentModel);
|
||||
}
|
||||
|
||||
Assert.IsNotNull(attachData);
|
||||
Assert.Greater(attachData.fileId, 0);
|
||||
|
||||
var message = messageEngine.GetMessage(id1, new MailMessageData.Options());
|
||||
var message = MessageEngine.GetMessage(id1, new MailMessageData.Options());
|
||||
|
||||
Assert.AreEqual(1, message.Attachments.Count);
|
||||
|
||||
@ -351,23 +251,23 @@ namespace ASC.Mail.Tests
|
||||
Assert.Greater(clonedAttachments.Count, 1);
|
||||
|
||||
var draftItem = new MailDraftData(0, TestMailbox, "test@gmail.com", new List<string>(), new List<string>(),
|
||||
new List<string>(), "subject", MailUtil.CreateMessageId(tenantManager, coreSettings), null, false, null, "Test body",
|
||||
new List<string>(), "subject", MailUtil.CreateMessageId(TenantManager, CoreSettings), null, false, null, "Test body",
|
||||
MailUtil.CreateStreamId(), clonedAttachments);
|
||||
|
||||
Assert.AreEqual(1, draftItem.Attachments.Count);
|
||||
|
||||
var data = draftEngine.Save(draftItem);
|
||||
var data = DraftEngine.Save(draftItem);
|
||||
|
||||
Assert.Greater(data.Id, 0);
|
||||
Assert.AreEqual(1, data.Attachments.Count);
|
||||
|
||||
var savedDraftData = messageEngine.GetMessage(data.Id, new MailMessageData.Options());
|
||||
var savedDraftData = MessageEngine.GetMessage(data.Id, new MailMessageData.Options());
|
||||
|
||||
Assert.AreEqual("subject", savedDraftData.Subject);
|
||||
Assert.AreEqual("test@gmail.com", savedDraftData.From);
|
||||
Assert.AreEqual(1, savedDraftData.Attachments.Count);
|
||||
|
||||
message = messageEngine.GetMessage(id1, new MailMessageData.Options());
|
||||
message = MessageEngine.GetMessage(id1, new MailMessageData.Options());
|
||||
|
||||
Assert.AreEqual(1, message.Attachments.Count);
|
||||
}
|
||||
@ -376,16 +276,6 @@ namespace ASC.Mail.Tests
|
||||
[Order(4)]
|
||||
public void CreateDraftWithAttachmentsTotalExceededTest()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var coreSettings = scope.ServiceProvider.GetService<CoreSettings>();
|
||||
|
||||
var attachments = new List<MailAttachmentData>();
|
||||
|
||||
var index = 0;
|
||||
@ -415,7 +305,7 @@ namespace ASC.Mail.Tests
|
||||
|
||||
Assert.Throws<DraftException>(
|
||||
() => new MailDraftData(0, TestMailbox, "test@gmail.com", new List<string>(), new List<string>(),
|
||||
new List<string>(), "subject", MailUtil.CreateMessageId(tenantManager, coreSettings), null, false, null, "Test body",
|
||||
new List<string>(), "subject", MailUtil.CreateMessageId(TenantManager, CoreSettings), null, false, null, "Test body",
|
||||
MailUtil.CreateStreamId(), attachments), "Total size of all files exceeds limit!");
|
||||
}
|
||||
|
||||
@ -423,21 +313,7 @@ namespace ASC.Mail.Tests
|
||||
[Order(5)]
|
||||
public void CreateDraftWithAttachAndOpenIt()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var folderEngine = scope.ServiceProvider.GetService<FolderEngine>();
|
||||
var coreSettings = scope.ServiceProvider.GetService<CoreSettings>();
|
||||
var draftEngine = scope.ServiceProvider.GetService<DraftEngine>();
|
||||
var testEngine = scope.ServiceProvider.GetService<TestEngine>();
|
||||
var messageEngine = scope.ServiceProvider.GetService<MessageEngine>();
|
||||
|
||||
var folders = folderEngine.GetFolders();
|
||||
var folders = FolderEngine.GetFolders();
|
||||
|
||||
Assert.IsNotEmpty(folders);
|
||||
|
||||
@ -454,7 +330,7 @@ namespace ASC.Mail.Tests
|
||||
Body = "Test body"
|
||||
};
|
||||
|
||||
var id1 = testEngine.CreateSampleMessage(model);
|
||||
var id1 = TestEngine.CreateSampleMessage(model);
|
||||
|
||||
Assert.Greater(id1, 0);
|
||||
|
||||
@ -469,30 +345,30 @@ namespace ASC.Mail.Tests
|
||||
Stream = fs
|
||||
};
|
||||
|
||||
attachData = testEngine.AppendAttachmentsToSampleMessage(id1, attachmentModel);
|
||||
attachData = TestEngine.AppendAttachmentsToSampleMessage(id1, attachmentModel);
|
||||
}
|
||||
|
||||
Assert.IsNotNull(attachData);
|
||||
Assert.Greater(attachData.fileId, 0);
|
||||
|
||||
var message = messageEngine.GetMessage(id1, new MailMessageData.Options());
|
||||
var message = MessageEngine.GetMessage(id1, new MailMessageData.Options());
|
||||
|
||||
Assert.AreEqual(1, message.Attachments.Count);
|
||||
|
||||
var draftItem = new MailDraftData(0, TestMailbox, "test@gmail.com",
|
||||
new List<string>(), new List<string>(), new List<string>(), "subject",
|
||||
MailUtil.CreateMessageId(tenantManager, coreSettings), null, false, null, "Test body",
|
||||
MailUtil.CreateMessageId(TenantManager, CoreSettings), null, false, null, "Test body",
|
||||
MailUtil.CreateStreamId(), message.Attachments);
|
||||
|
||||
var data = draftEngine.Save(draftItem);
|
||||
var data = DraftEngine.Save(draftItem);
|
||||
|
||||
Assert.AreEqual(1, data.Attachments.Count);
|
||||
|
||||
data = draftEngine.Save(draftItem);
|
||||
data = DraftEngine.Save(draftItem);
|
||||
|
||||
Assert.AreEqual(1, data.Attachments.Count);
|
||||
|
||||
data = draftEngine.Save(draftItem);
|
||||
data = DraftEngine.Save(draftItem);
|
||||
|
||||
Assert.AreEqual(1, data.Attachments.Count);
|
||||
}
|
||||
|
@ -25,12 +25,12 @@
|
||||
|
||||
|
||||
using ASC.Core;
|
||||
using ASC.Core.Users;
|
||||
using ASC.ElasticSearch;
|
||||
using ASC.Mail.Aggregator.Tests.Common.Utils;
|
||||
using ASC.Mail.Core.Dao.Entities;
|
||||
using ASC.Mail.Core.Engine;
|
||||
using ASC.Mail.Enums;
|
||||
using ASC.Mail.Utils;
|
||||
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
@ -50,6 +50,8 @@ namespace ASC.Mail.Tests
|
||||
private const int CONTACT_ID_2 = 778;
|
||||
private const int CONTACT_ID_3 = 779;
|
||||
|
||||
public UserInfo TestUser { get; set; }
|
||||
|
||||
[OneTimeSetUp]
|
||||
public override void Prepare()
|
||||
{
|
||||
@ -57,21 +59,16 @@ namespace ASC.Mail.Tests
|
||||
|
||||
//using var scope = ServiceProvider.CreateScope();
|
||||
|
||||
var userManager = serviceScope.ServiceProvider.GetService<UserManager>();
|
||||
var tenantManager = serviceScope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = serviceScope.ServiceProvider.GetService<SecurityContext>();
|
||||
var apiHelper = serviceScope.ServiceProvider.GetService<ApiHelper>();
|
||||
|
||||
var tenant = tenantManager.GetTenant(CURRENT_TENANT);
|
||||
tenantManager.SetCurrentTenant(tenant);
|
||||
|
||||
var e = tenantManager.GetCurrentTenant(false);
|
||||
|
||||
securityContext.AuthenticateMe(ASC.Core.Configuration.Constants.CoreSystem);
|
||||
|
||||
var testEngine = serviceScope.ServiceProvider.GetService<TestEngine>();
|
||||
|
||||
TestUser = TestHelper.CreateNewRandomEmployee(userManager, securityContext, tenantManager, apiHelper);
|
||||
TestUser = UserManager.GetUsers(Guid.Parse("66faa6e4-f133-11ea-b126-00ffeec8b4ef"));
|
||||
}
|
||||
|
||||
//[SetUp]
|
||||
@ -88,10 +85,10 @@ namespace ASC.Mail.Tests
|
||||
|
||||
// var testEngine = scope.ServiceProvider.GetService<TestEngine>();
|
||||
|
||||
// TestUser = TestHelper.CreateNewRandomEmployee(userManager, securityContext, tenantManager, apiHelper);
|
||||
// TestUser = UserManager.GetUsers(Guid.Parse("66faa6e4-f133-11ea-b126-00ffeec8b4ef"));
|
||||
//}
|
||||
|
||||
[TearDown]
|
||||
/*[TearDown]
|
||||
public void CleanUp()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
@ -109,7 +106,7 @@ namespace ASC.Mail.Tests
|
||||
// Remove TestUser profile
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
userManager.DeleteUser(TestUser.ID);
|
||||
}
|
||||
}*/
|
||||
|
||||
[Test]
|
||||
[Order(1)]
|
||||
|
@ -25,9 +25,8 @@
|
||||
|
||||
|
||||
using ASC.Core;
|
||||
using ASC.ElasticSearch;
|
||||
using ASC.Core.Users;
|
||||
using ASC.Mail.Aggregator.Tests.Common.Utils;
|
||||
using ASC.Mail.Core.Dao.Entities;
|
||||
using ASC.Mail.Core.Engine;
|
||||
using ASC.Mail.Enums.Filter;
|
||||
using ASC.Mail.Models;
|
||||
@ -51,6 +50,7 @@ namespace ASC.Mail.Tests
|
||||
public const string DOMAIN = "gmail.com";
|
||||
|
||||
public MailBoxData TestMailbox { get; set; }
|
||||
public UserInfo TestUser { get; set; }
|
||||
public int MailId { get; set; }
|
||||
|
||||
[OneTimeSetUp]
|
||||
@ -76,10 +76,11 @@ namespace ASC.Mail.Tests
|
||||
|
||||
var testEngine = scope.ServiceProvider.GetService<TestEngine>();
|
||||
|
||||
TestUser = TestHelper.CreateNewRandomEmployee(userManager, securityContext, tenantManager, apiHelper);
|
||||
TestUser = UserManager.GetUsers(Guid.Parse("66faa6e4-f133-11ea-b126-00ffeec8b4ef"));
|
||||
TestUser.Email = TestHelper.GetTestEmailAddress(DOMAIN);
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
/*[TearDown]
|
||||
public void CleanUp()
|
||||
{
|
||||
if (TestUser == null || TestUser.ID == Guid.Empty)
|
||||
@ -101,14 +102,14 @@ namespace ASC.Mail.Tests
|
||||
var factoryIndexer = scope.ServiceProvider.GetService<FactoryIndexer<MailMail>>();
|
||||
var factoryIndexerHelper = scope.ServiceProvider.GetService<FactoryIndexerHelper>();
|
||||
|
||||
/*var t = scope.ServiceProvider.GetService<MailWrapper>();
|
||||
var t = scope.ServiceProvider.GetService<MailWrapper>();
|
||||
if (factoryIndexerHelper.Support(t))
|
||||
factoryIndexer.DeleteAsync(s => s.Where(m => m.UserId, TestUser.ID)).Wait();*/
|
||||
factoryIndexer.DeleteAsync(s => s.Where(m => m.UserId, TestUser.ID)).Wait();
|
||||
|
||||
// Clear TestUser mail data
|
||||
var mailGarbageEngine = scope.ServiceProvider.GetService<MailGarbageEngine>();
|
||||
mailGarbageEngine.ClearUserMail(TestUser.ID, tenantManager.GetCurrentTenant());
|
||||
}
|
||||
}*/
|
||||
|
||||
[Test]
|
||||
[Order(1)]
|
||||
|
@ -25,6 +25,7 @@
|
||||
|
||||
|
||||
using ASC.Core;
|
||||
using ASC.Core.Users;
|
||||
using ASC.ElasticSearch;
|
||||
using ASC.Mail.Aggregator.Tests.Common.Utils;
|
||||
using ASC.Mail.Core.Dao.Entities;
|
||||
@ -53,6 +54,7 @@ namespace ASC.Mail.Tests
|
||||
public const string EMAIL_NAME = "Test User";
|
||||
|
||||
public MailBoxData TestMailbox { get; set; }
|
||||
public UserInfo TestUser { get; set; }
|
||||
public int MailId { get; set; }
|
||||
|
||||
private const int PAGE = 0;
|
||||
@ -80,7 +82,8 @@ namespace ASC.Mail.Tests
|
||||
|
||||
var testEngine = scope.ServiceProvider.GetService<TestEngine>();
|
||||
|
||||
TestUser = TestHelper.CreateNewRandomEmployee(userManager, securityContext, tenantManager, apiHelper);
|
||||
TestUser = UserManager.GetUsers(Guid.Parse("66faa6e4-f133-11ea-b126-00ffeec8b4ef"));
|
||||
TestUser.Email = TestHelper.GetTestEmailAddress(DOMAIN);
|
||||
|
||||
//вынести
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
@ -100,36 +103,36 @@ namespace ASC.Mail.Tests
|
||||
}
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
public void CleanUp()
|
||||
{
|
||||
if (TestUser == null || TestUser.ID == Guid.Empty)
|
||||
return;
|
||||
/*[TearDown]
|
||||
public void CleanUp()
|
||||
{
|
||||
if (TestUser == null || TestUser.ID == Guid.Empty)
|
||||
return;
|
||||
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(ASC.Core.Configuration.Constants.CoreSystem);
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(ASC.Core.Configuration.Constants.CoreSystem);
|
||||
|
||||
// Remove TestUser profile
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
userManager.DeleteUser(TestUser.ID);
|
||||
// Remove TestUser profile
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
userManager.DeleteUser(TestUser.ID);
|
||||
|
||||
// Clear TestUser mail index
|
||||
var factoryIndexer = scope.ServiceProvider.GetService<FactoryIndexer<MailMail>>();
|
||||
// Clear TestUser mail index
|
||||
var factoryIndexer = scope.ServiceProvider.GetService<FactoryIndexer<MailMail>>();
|
||||
|
||||
var t = scope.ServiceProvider.GetService<MailMail>();
|
||||
if (factoryIndexer.Support(t))
|
||||
factoryIndexer.Delete(s => s.Where(m => m.UserId, TestUser.ID.ToString()));
|
||||
var t = scope.ServiceProvider.GetService<MailMail>();
|
||||
if (factoryIndexer.Support(t))
|
||||
factoryIndexer.Delete(s => s.Where(m => m.UserId, TestUser.ID.ToString()));
|
||||
|
||||
|
||||
// Clear TestUser mail data
|
||||
var mailGarbageEngine = scope.ServiceProvider.GetService<MailGarbageEngine>();
|
||||
mailGarbageEngine.ClearUserMail(TestUser.ID, tenantManager.GetCurrentTenant());
|
||||
}
|
||||
// Clear TestUser mail data
|
||||
var mailGarbageEngine = scope.ServiceProvider.GetService<MailGarbageEngine>();
|
||||
mailGarbageEngine.ClearUserMail(TestUser.ID, tenantManager.GetCurrentTenant());
|
||||
}*/
|
||||
|
||||
[Test]
|
||||
[Order(1)]
|
||||
|
@ -25,6 +25,7 @@
|
||||
|
||||
|
||||
using ASC.Core;
|
||||
using ASC.Core.Users;
|
||||
using ASC.ElasticSearch;
|
||||
using ASC.Mail.Aggregator.Tests.Common.Utils;
|
||||
using ASC.Mail.Core.Dao.Entities;
|
||||
@ -50,6 +51,8 @@ namespace ASC.Mail.Tests
|
||||
public const string DOMAIN = "gmail.com";
|
||||
public const string EMAIL_NAME = "Test User";
|
||||
|
||||
public UserInfo TestUser { get; set; }
|
||||
|
||||
|
||||
[OneTimeSetUp]
|
||||
public override void Prepare()
|
||||
@ -73,10 +76,11 @@ namespace ASC.Mail.Tests
|
||||
|
||||
var testEngine = scope.ServiceProvider.GetService<TestEngine>();
|
||||
|
||||
TestUser = TestHelper.CreateNewRandomEmployee(userManager, securityContext, tenantManager, apiHelper);
|
||||
TestUser = UserManager.GetUsers(Guid.Parse("66faa6e4-f133-11ea-b126-00ffeec8b4ef"));
|
||||
TestUser.Email = TestHelper.GetTestEmailAddress(DOMAIN);
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
/*[TearDown]
|
||||
public void CleanUp()
|
||||
{
|
||||
if (TestUser == null || TestUser.ID == Guid.Empty)
|
||||
@ -93,7 +97,7 @@ namespace ASC.Mail.Tests
|
||||
// Remove TestUser profile
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
userManager.DeleteUser(TestUser.ID);
|
||||
}
|
||||
}*/
|
||||
|
||||
[Test]
|
||||
[Order(1)]
|
||||
|
@ -25,7 +25,7 @@
|
||||
|
||||
|
||||
using ASC.Core;
|
||||
using ASC.ElasticSearch;
|
||||
using ASC.Core.Users;
|
||||
using ASC.Mail.Aggregator.Tests.Common.Utils;
|
||||
using ASC.Mail.Core.Dao.Entities;
|
||||
using ASC.Mail.Core.Engine;
|
||||
@ -52,6 +52,7 @@ namespace ASC.Mail.Tests
|
||||
public const string DOMAIN = "gmail.com";
|
||||
|
||||
public MailBoxData TestMailbox { get; set; }
|
||||
public UserInfo TestUser { get; set; }
|
||||
public int MailId { get; set; }
|
||||
|
||||
private const int PAGE = 0;
|
||||
@ -79,7 +80,8 @@ namespace ASC.Mail.Tests
|
||||
|
||||
var testEngine = scope.ServiceProvider.GetService<TestEngine>();
|
||||
|
||||
TestUser = TestHelper.CreateNewRandomEmployee(userManager, securityContext, tenantManager, apiHelper);
|
||||
TestUser = UserManager.GetUsers(Guid.Parse("66faa6e4-f133-11ea-b126-00ffeec8b4ef"));
|
||||
TestUser.Email = TestHelper.GetTestEmailAddress(DOMAIN);
|
||||
|
||||
//вынести
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
@ -96,7 +98,7 @@ namespace ASC.Mail.Tests
|
||||
}
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
/*[TearDown]
|
||||
public void CleanUp()
|
||||
{
|
||||
if (TestUser == null || TestUser.ID == Guid.Empty)
|
||||
@ -121,7 +123,7 @@ namespace ASC.Mail.Tests
|
||||
// Clear TestUser mail data
|
||||
var mailGarbageEngine = scope.ServiceProvider.GetService<MailGarbageEngine>();
|
||||
mailGarbageEngine.ClearUserMail(TestUser.ID, tenantManager.GetCurrentTenant());
|
||||
}
|
||||
}*/
|
||||
|
||||
[Test]
|
||||
[Order(1)]
|
||||
|
@ -24,21 +24,15 @@
|
||||
*/
|
||||
|
||||
|
||||
using ASC.Core;
|
||||
using ASC.ElasticSearch;
|
||||
using ASC.Mail.Aggregator.Tests.Common.Utils;
|
||||
using ASC.Mail.Core.Dao.Entities;
|
||||
using ASC.Mail.Core.Engine;
|
||||
using ASC.Mail.Enums;
|
||||
using ASC.Mail.Extensions;
|
||||
using ASC.Mail.Models;
|
||||
using ASC.Mail.Utils;
|
||||
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
using NUnit.Framework;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
@ -49,55 +43,23 @@ namespace ASC.Mail.Tests
|
||||
[TestFixture]
|
||||
internal class MessageEngineTests : BaseMailTests
|
||||
{
|
||||
private const int CURRENT_TENANT = 1;
|
||||
public const string PASSWORD = "123456";
|
||||
public const string DOMAIN = "gmail.com";
|
||||
|
||||
private static readonly string TestFolderPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
|
||||
@"..\..\..\Data\");
|
||||
private const string EML1_FILE_NAME = @"bad_encoding.eml";
|
||||
private static readonly string Eml1Path = TestFolderPath + EML1_FILE_NAME;
|
||||
|
||||
public MailBoxData TestMailbox { get; set; }
|
||||
public int MailId { get; set; }
|
||||
|
||||
private FolderEngine FolderEngine { get; set; }
|
||||
private TestEngine TestEngine { get; set; }
|
||||
private MessageEngine MessageEngine { get; set; }
|
||||
|
||||
[OneTimeSetUp]
|
||||
public override void Prepare()
|
||||
{
|
||||
base.Prepare();
|
||||
}
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
var mailBoxSettingEngine = scope.ServiceProvider.GetService<MailBoxSettingEngine>();
|
||||
var mailboxEngine = scope.ServiceProvider.GetService<MailboxEngine>();
|
||||
var apiHelper = scope.ServiceProvider.GetService<ApiHelper>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(ASC.Core.Configuration.Constants.CoreSystem);
|
||||
|
||||
var testEngine = scope.ServiceProvider.GetService<TestEngine>();
|
||||
|
||||
TestUser = TestHelper.CreateNewRandomEmployee(userManager, securityContext, tenantManager, apiHelper);
|
||||
|
||||
//вынести
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var mailboxSettings = mailBoxSettingEngine.GetMailBoxSettings(DOMAIN);
|
||||
|
||||
var testMailboxes = mailboxSettings.ToMailboxList(TestUser.Email, PASSWORD, CURRENT_TENANT, TestUser.ID.ToString());
|
||||
|
||||
TestMailbox = testMailboxes.FirstOrDefault();
|
||||
|
||||
if (TestMailbox == null || !mailboxEngine.SaveMailBox(TestMailbox))
|
||||
{
|
||||
throw new Exception(string.Format("Can't create mailbox with email: {0}", TestUser.Email));
|
||||
}
|
||||
FolderEngine = serviceScope.ServiceProvider.GetService<FolderEngine>();
|
||||
TestEngine = serviceScope.ServiceProvider.GetService<TestEngine>();
|
||||
MessageEngine = serviceScope.ServiceProvider.GetService<MessageEngine>();
|
||||
|
||||
using var fs = new FileStream(Eml1Path, FileMode.Open, FileAccess.Read);
|
||||
|
||||
@ -110,55 +72,15 @@ namespace ASC.Mail.Tests
|
||||
EmlStream = fs
|
||||
};
|
||||
|
||||
MailId = testEngine.LoadSampleMessage(model);
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
public void CleanUp()
|
||||
{
|
||||
if (TestUser == null || TestUser.ID == Guid.Empty)
|
||||
return;
|
||||
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(ASC.Core.Configuration.Constants.CoreSystem);
|
||||
|
||||
// Remove TestUser profile
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
userManager.DeleteUser(TestUser.ID);
|
||||
|
||||
// Clear TestUser mail index
|
||||
var factoryIndexer = scope.ServiceProvider.GetService<FactoryIndexer<MailMail>>();
|
||||
|
||||
var t = scope.ServiceProvider.GetService<MailMail>();
|
||||
if (factoryIndexer.Support(t))
|
||||
factoryIndexer.DeleteAsync(s => s.Where(m => m.UserId, TestUser.ID.ToString())).Wait();
|
||||
|
||||
// Clear TestUser mail data
|
||||
var mailGarbageEngine = scope.ServiceProvider.GetService<MailGarbageEngine>();
|
||||
mailGarbageEngine.ClearUserMail(TestUser.ID, tenantManager.GetCurrentTenant());
|
||||
MailId = TestEngine.LoadSampleMessage(model);
|
||||
}
|
||||
|
||||
[Test]
|
||||
[Order(1)]
|
||||
public void GetMessageStreamTest()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var messageEngine = scope.ServiceProvider.GetService<MessageEngine>();
|
||||
|
||||
string htmlBody;
|
||||
using (var stream = messageEngine.GetMessageStream(MailId))
|
||||
using (var stream = MessageEngine.GetMessageStream(MailId))
|
||||
{
|
||||
htmlBody = Encoding.UTF8.GetString(stream.ReadToEnd());
|
||||
}
|
||||
@ -174,18 +96,7 @@ namespace ASC.Mail.Tests
|
||||
{
|
||||
// Bug 34937
|
||||
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var messageEngine = scope.ServiceProvider.GetService<MessageEngine>();
|
||||
var folderEngine = scope.ServiceProvider.GetService<FolderEngine>();
|
||||
|
||||
var folders = folderEngine.GetFolders();
|
||||
var folders = FolderEngine.GetFolders();
|
||||
|
||||
var inbox = folders.FirstOrDefault(f => f.id == FolderType.Inbox);
|
||||
|
||||
@ -195,9 +106,9 @@ namespace ASC.Mail.Tests
|
||||
Assert.AreEqual(1, inbox.total);
|
||||
Assert.AreEqual(1, inbox.unread);
|
||||
|
||||
messageEngine.SetRemoved(new List<int> { MailId });
|
||||
MessageEngine.SetRemoved(new List<int> { MailId });
|
||||
|
||||
folders = folderEngine.GetFolders();
|
||||
folders = FolderEngine.GetFolders();
|
||||
|
||||
inbox = folders.FirstOrDefault(f => f.id == FolderType.Inbox);
|
||||
|
||||
|
@ -24,20 +24,14 @@
|
||||
*/
|
||||
|
||||
|
||||
using ASC.Core;
|
||||
using ASC.ElasticSearch;
|
||||
using ASC.Mail.Aggregator.Tests.Common.Utils;
|
||||
using ASC.Mail.Core.Dao.Entities;
|
||||
using ASC.Mail.Core.Engine;
|
||||
using ASC.Mail.Enums;
|
||||
using ASC.Mail.Models;
|
||||
using ASC.Mail.Utils;
|
||||
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
using NUnit.Framework;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
@ -47,55 +41,24 @@ namespace ASC.Mail.Tests
|
||||
[TestFixture]
|
||||
internal class TagEngineTests : BaseMailTests
|
||||
{
|
||||
private const int CURRENT_TENANT = 1;
|
||||
public const string PASSWORD = "123456";
|
||||
public const string DOMAIN = "gmail.com";
|
||||
|
||||
private static readonly string TestFolderPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
|
||||
@"..\..\..\Data\");
|
||||
private const string EML1_FILE_NAME = @"bad_encoding.eml";
|
||||
private static readonly string Eml1Path = TestFolderPath + EML1_FILE_NAME;
|
||||
|
||||
public MailBoxData TestMailbox { get; set; }
|
||||
public int MailId { get; set; }
|
||||
|
||||
private TestEngine TestEngine { get; set; }
|
||||
private MessageEngine MessageEngine { get; set; }
|
||||
private TagEngine TagEngine { get; set; }
|
||||
|
||||
|
||||
[OneTimeSetUp]
|
||||
public override void Prepare()
|
||||
{
|
||||
base.Prepare();
|
||||
}
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
var mailBoxSettingEngine = scope.ServiceProvider.GetService<MailBoxSettingEngine>();
|
||||
var mailboxEngine = scope.ServiceProvider.GetService<MailboxEngine>();
|
||||
var apiHelper = scope.ServiceProvider.GetService<ApiHelper>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(ASC.Core.Configuration.Constants.CoreSystem);
|
||||
|
||||
var testEngine = scope.ServiceProvider.GetService<TestEngine>();
|
||||
|
||||
TestUser = TestHelper.CreateNewRandomEmployee(userManager, securityContext, tenantManager, apiHelper);
|
||||
|
||||
//вынести
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var mailboxSettings = mailBoxSettingEngine.GetMailBoxSettings(DOMAIN);
|
||||
|
||||
var testMailboxes = mailboxSettings.ToMailboxList(TestUser.Email, PASSWORD, CURRENT_TENANT, TestUser.ID.ToString());
|
||||
|
||||
TestMailbox = testMailboxes.FirstOrDefault();
|
||||
|
||||
if (TestMailbox == null || !mailboxEngine.SaveMailBox(TestMailbox))
|
||||
{
|
||||
throw new Exception(string.Format("Can't create mailbox with email: {0}", TestUser.Email));
|
||||
}
|
||||
TestEngine = serviceScope.ServiceProvider.GetService<TestEngine>();
|
||||
MessageEngine = serviceScope.ServiceProvider.GetService<MessageEngine>();
|
||||
TagEngine = serviceScope.ServiceProvider.GetService<TagEngine>();
|
||||
|
||||
using var fs = new FileStream(Eml1Path, FileMode.Open, FileAccess.Read);
|
||||
|
||||
@ -108,74 +71,44 @@ namespace ASC.Mail.Tests
|
||||
EmlStream = fs
|
||||
};
|
||||
|
||||
MailId = testEngine.LoadSampleMessage(model);
|
||||
MailId = TestEngine.LoadSampleMessage(model);
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
public void CleanUp()
|
||||
public void DeleteTagsForNextTest()
|
||||
{
|
||||
if (TestUser == null || TestUser.ID == Guid.Empty)
|
||||
return;
|
||||
var tags = TagEngine.GetTags();
|
||||
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(ASC.Core.Configuration.Constants.CoreSystem);
|
||||
|
||||
// Remove TestUser profile
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
userManager.DeleteUser(TestUser.ID);
|
||||
|
||||
// Clear TestUser mail index
|
||||
var factoryIndexer = scope.ServiceProvider.GetService<FactoryIndexer<MailMail>>();
|
||||
|
||||
var t = scope.ServiceProvider.GetService<MailMail>();
|
||||
if (factoryIndexer.Support(t))
|
||||
factoryIndexer.DeleteAsync(s => s.Where(m => m.UserId, TestUser.ID.ToString())).Wait();
|
||||
|
||||
// Clear TestUser mail data
|
||||
var mailGarbageEngine = scope.ServiceProvider.GetService<MailGarbageEngine>();
|
||||
mailGarbageEngine.ClearUserMail(TestUser.ID, tenantManager.GetCurrentTenant());
|
||||
foreach (var tag in tags)
|
||||
{
|
||||
TagEngine.DeleteTag(tag.Id);
|
||||
}
|
||||
}
|
||||
|
||||
private List<Core.Entities.Tag> CreateTagsOnMessage()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var messageEngine = scope.ServiceProvider.GetService<MessageEngine>();
|
||||
var tagEngine = scope.ServiceProvider.GetService<TagEngine>();
|
||||
|
||||
var tag1 = tagEngine.CreateTag("Tag1", "11", new List<string>());
|
||||
var tag1 = TagEngine.CreateTag("Tag1", "11", new List<string>());
|
||||
|
||||
Assert.IsNotNull(tag1);
|
||||
Assert.Greater(tag1.Id, 0);
|
||||
|
||||
tagEngine.SetMessagesTag(new List<int> { MailId }, tag1.Id);
|
||||
TagEngine.SetMessagesTag(new List<int> { MailId }, tag1.Id);
|
||||
|
||||
var tag2 = tagEngine.CreateTag("Tag2", "10", new List<string>());
|
||||
var tag2 = TagEngine.CreateTag("Tag2", "10", new List<string>());
|
||||
|
||||
Assert.IsNotNull(tag1);
|
||||
Assert.Greater(tag1.Id, 0);
|
||||
|
||||
tagEngine.SetMessagesTag(new List<int> { MailId }, tag2.Id);
|
||||
TagEngine.SetMessagesTag(new List<int> { MailId }, tag2.Id);
|
||||
|
||||
var tags = tagEngine.GetTags();
|
||||
var tags = TagEngine.GetTags();
|
||||
|
||||
Assert.IsNotEmpty(tags);
|
||||
Assert.AreEqual(2, tags.Count);
|
||||
Assert.Contains(tag1.Id, tags.Select(m => m.Id).ToArray());
|
||||
Assert.Contains(tag2.Id, tags.Select(m => m.Id).ToArray());
|
||||
|
||||
var message = messageEngine.GetMessage(MailId, new MailMessageData.Options());
|
||||
var message = MessageEngine.GetMessage(MailId, new MailMessageData.Options());
|
||||
|
||||
Assert.IsNotEmpty(message.TagIds);
|
||||
Assert.AreEqual(2, message.TagIds.Count);
|
||||
@ -187,39 +120,28 @@ namespace ASC.Mail.Tests
|
||||
|
||||
private List<Core.Entities.Tag> CreateTagsOnConversation()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var messageEngine = scope.ServiceProvider.GetService<MessageEngine>();
|
||||
var tagEngine = scope.ServiceProvider.GetService<TagEngine>();
|
||||
|
||||
var tag1 = tagEngine.CreateTag("Tag1", "11", new List<string>());
|
||||
var tag1 = TagEngine.CreateTag("Tag1", "11", new List<string>());
|
||||
|
||||
Assert.IsNotNull(tag1);
|
||||
Assert.Greater(tag1.Id, 0);
|
||||
|
||||
tagEngine.SetConversationsTag(new List<int> { MailId }, tag1.Id);
|
||||
TagEngine.SetConversationsTag(new List<int> { MailId }, tag1.Id);
|
||||
|
||||
var tag2 = tagEngine.CreateTag("Tag2", "10", new List<string>());
|
||||
var tag2 = TagEngine.CreateTag("Tag2", "10", new List<string>());
|
||||
|
||||
Assert.IsNotNull(tag1);
|
||||
Assert.Greater(tag1.Id, 0);
|
||||
|
||||
tagEngine.SetConversationsTag(new List<int> { MailId }, tag2.Id);
|
||||
TagEngine.SetConversationsTag(new List<int> { MailId }, tag2.Id);
|
||||
|
||||
var tags = tagEngine.GetTags();
|
||||
var tags = TagEngine.GetTags();
|
||||
|
||||
Assert.IsNotEmpty(tags);
|
||||
Assert.AreEqual(2, tags.Count);
|
||||
Assert.Contains(tag1.Id, tags.Select(m => m.Id).ToArray());
|
||||
Assert.Contains(tag2.Id, tags.Select(m => m.Id).ToArray());
|
||||
|
||||
var message = messageEngine.GetMessage(MailId, new MailMessageData.Options());
|
||||
var message = MessageEngine.GetMessage(MailId, new MailMessageData.Options());
|
||||
|
||||
Assert.IsNotEmpty(message.TagIds);
|
||||
Assert.AreEqual(2, message.TagIds.Count);
|
||||
@ -247,25 +169,14 @@ namespace ASC.Mail.Tests
|
||||
[Order(3)]
|
||||
public void UnsetMessageFirstTagTest()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var messageEngine = scope.ServiceProvider.GetService<MessageEngine>();
|
||||
var tagEngine = scope.ServiceProvider.GetService<TagEngine>();
|
||||
|
||||
var tags = CreateTagsOnMessage();
|
||||
|
||||
var tag1 = tags[0];
|
||||
var tag2 = tags[1];
|
||||
|
||||
tagEngine.UnsetMessagesTag(new List<int> { MailId }, tag1.Id);
|
||||
TagEngine.UnsetMessagesTag(new List<int> { MailId }, tag1.Id);
|
||||
|
||||
var message = messageEngine.GetMessage(MailId, new MailMessageData.Options());
|
||||
var message = MessageEngine.GetMessage(MailId, new MailMessageData.Options());
|
||||
|
||||
Assert.IsNotEmpty(message.TagIds);
|
||||
Assert.AreEqual(1, message.TagIds.Count);
|
||||
@ -277,25 +188,14 @@ namespace ASC.Mail.Tests
|
||||
[Order(4)]
|
||||
public void UnsetConversationFirstTagTest()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var messageEngine = scope.ServiceProvider.GetService<MessageEngine>();
|
||||
var tagEngine = scope.ServiceProvider.GetService<TagEngine>();
|
||||
|
||||
var tags = CreateTagsOnConversation();
|
||||
|
||||
var tag1 = tags[0];
|
||||
var tag2 = tags[1];
|
||||
|
||||
tagEngine.UnsetConversationsTag(new List<int> { MailId }, tag1.Id);
|
||||
TagEngine.UnsetConversationsTag(new List<int> { MailId }, tag1.Id);
|
||||
|
||||
var message = messageEngine.GetMessage(MailId, new MailMessageData.Options());
|
||||
var message = MessageEngine.GetMessage(MailId, new MailMessageData.Options());
|
||||
|
||||
Assert.IsNotEmpty(message.TagIds);
|
||||
Assert.AreEqual(1, message.TagIds.Count);
|
||||
@ -307,25 +207,14 @@ namespace ASC.Mail.Tests
|
||||
[Order(5)]
|
||||
public void UnsetMessageSecondTagTest()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var messageEngine = scope.ServiceProvider.GetService<MessageEngine>();
|
||||
var tagEngine = scope.ServiceProvider.GetService<TagEngine>();
|
||||
|
||||
var tags = CreateTagsOnMessage();
|
||||
|
||||
var tag1 = tags[0];
|
||||
var tag2 = tags[1];
|
||||
|
||||
tagEngine.UnsetMessagesTag(new List<int> { MailId }, tag2.Id);
|
||||
TagEngine.UnsetMessagesTag(new List<int> { MailId }, tag2.Id);
|
||||
|
||||
var message = messageEngine.GetMessage(MailId, new MailMessageData.Options());
|
||||
var message = MessageEngine.GetMessage(MailId, new MailMessageData.Options());
|
||||
|
||||
Assert.IsNotEmpty(message.TagIds);
|
||||
Assert.AreEqual(1, message.TagIds.Count);
|
||||
@ -337,25 +226,14 @@ namespace ASC.Mail.Tests
|
||||
[Order(6)]
|
||||
public void UnsetConversationSecondTagTest()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var messageEngine = scope.ServiceProvider.GetService<MessageEngine>();
|
||||
var tagEngine = scope.ServiceProvider.GetService<TagEngine>();
|
||||
|
||||
var tags = CreateTagsOnConversation();
|
||||
|
||||
var tag1 = tags[0];
|
||||
var tag2 = tags[1];
|
||||
|
||||
tagEngine.UnsetConversationsTag(new List<int> { MailId }, tag2.Id);
|
||||
TagEngine.UnsetConversationsTag(new List<int> { MailId }, tag2.Id);
|
||||
|
||||
var message = messageEngine.GetMessage(MailId, new MailMessageData.Options());
|
||||
var message = MessageEngine.GetMessage(MailId, new MailMessageData.Options());
|
||||
|
||||
Assert.IsNotEmpty(message.TagIds);
|
||||
Assert.AreEqual(1, message.TagIds.Count);
|
||||
|
@ -25,9 +25,8 @@
|
||||
|
||||
|
||||
using ASC.Core;
|
||||
using ASC.ElasticSearch;
|
||||
using ASC.Core.Users;
|
||||
using ASC.Mail.Aggregator.Tests.Common.Utils;
|
||||
using ASC.Mail.Core.Dao.Entities;
|
||||
using ASC.Mail.Core.Engine;
|
||||
using ASC.Mail.Enums;
|
||||
using ASC.Mail.Models;
|
||||
@ -52,6 +51,7 @@ namespace ASC.Mail.Tests
|
||||
public const string DOMAIN = "gmail.com";
|
||||
|
||||
private MailBoxData TestMailbox { get; set; }
|
||||
public UserInfo TestUser { get; set; }
|
||||
|
||||
private static readonly string TestFolderPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
|
||||
@"..\..\..\Data\");
|
||||
@ -79,7 +79,8 @@ namespace ASC.Mail.Tests
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(ASC.Core.Configuration.Constants.CoreSystem);
|
||||
|
||||
TestUser = TestHelper.CreateNewRandomEmployee(userManager, securityContext, tenantManager, apiHelper);
|
||||
TestUser = UserManager.GetUsers(Guid.Parse("66faa6e4-f133-11ea-b126-00ffeec8b4ef"));
|
||||
TestUser.Email = TestHelper.GetTestEmailAddress(DOMAIN);
|
||||
|
||||
//вынести
|
||||
var mailboxSettings = mailBoxSettingEngine.GetMailBoxSettings(DOMAIN);
|
||||
@ -94,7 +95,7 @@ namespace ASC.Mail.Tests
|
||||
}
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
/*[TearDown]
|
||||
public void CleanUp()
|
||||
{
|
||||
if (TestUser == null || TestUser.ID == Guid.Empty)
|
||||
@ -122,7 +123,7 @@ namespace ASC.Mail.Tests
|
||||
// Clear TestUser mail data
|
||||
var mailGarbageEngine = scope.ServiceProvider.GetService<MailGarbageEngine>();
|
||||
mailGarbageEngine.ClearUserMail(TestUser.ID, tenantManager.GetCurrentTenant());
|
||||
}
|
||||
}*/
|
||||
|
||||
[Test]
|
||||
public void CreateTemplate()
|
||||
|
@ -24,15 +24,10 @@
|
||||
*/
|
||||
|
||||
|
||||
using ASC.Core;
|
||||
using ASC.ElasticSearch;
|
||||
using ASC.Mail.Aggregator.Tests.Common.Utils;
|
||||
using ASC.Mail.Core.Dao.Entities;
|
||||
using ASC.Mail.Core.Engine;
|
||||
using ASC.Mail.Enums;
|
||||
using ASC.Mail.Exceptions;
|
||||
using ASC.Mail.Models;
|
||||
using ASC.Mail.Utils;
|
||||
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
@ -41,110 +36,47 @@ using NUnit.Framework;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
|
||||
namespace ASC.Mail.Tests
|
||||
{
|
||||
[TestFixture]
|
||||
internal class UserFoldersTests : BaseMailTests
|
||||
{
|
||||
private const int CURRENT_TENANT = 1;
|
||||
public const string PASSWORD = "123456";
|
||||
public const string DOMAIN = "gmail.com";
|
||||
|
||||
private static readonly string TestFolderPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
|
||||
@"..\..\..\Data\");
|
||||
private const string EML1_FILE_NAME = @"bad_encoding.eml";
|
||||
private const string EML2_FILE_NAME = @"embed_image.eml";
|
||||
private const string EML3_FILE_NAME = @"exo__with_javascript.eml";
|
||||
private const string EML4_FILE_NAME = @"icloud_ics.eml";
|
||||
private const string EML5_FILE_NAME = @"medium_sample.eml";
|
||||
private const string EML6_FILE_NAME = @"message_mailru.eml";
|
||||
|
||||
private static readonly string Eml1Path = TestFolderPath + EML1_FILE_NAME;
|
||||
private static readonly string Eml2Path = TestFolderPath + EML2_FILE_NAME;
|
||||
private static readonly string Eml3Path = TestFolderPath + EML3_FILE_NAME;
|
||||
private static readonly string Eml4Path = TestFolderPath + EML4_FILE_NAME;
|
||||
private static readonly string Eml5Path = TestFolderPath + EML5_FILE_NAME;
|
||||
private static readonly string Eml6Path = TestFolderPath + EML6_FILE_NAME;
|
||||
|
||||
public MailBoxData TestMailbox { get; set; }
|
||||
public int MailId { get; set; }
|
||||
|
||||
private MessageEngine MessageEngine { get; set; }
|
||||
private UserFolderEngine UserFolderEngine { get; set; }
|
||||
private TestEngine TestEngine { get; set; }
|
||||
|
||||
[OneTimeSetUp]
|
||||
public override void Prepare()
|
||||
{
|
||||
base.Prepare();
|
||||
}
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
var mailBoxSettingEngine = scope.ServiceProvider.GetService<MailBoxSettingEngine>();
|
||||
var mailboxEngine = scope.ServiceProvider.GetService<MailboxEngine>();
|
||||
var apiHelper = scope.ServiceProvider.GetService<ApiHelper>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(ASC.Core.Configuration.Constants.CoreSystem);
|
||||
|
||||
var testEngine = scope.ServiceProvider.GetService<TestEngine>();
|
||||
|
||||
TestUser = TestHelper.CreateNewRandomEmployee(userManager, securityContext, tenantManager, apiHelper);
|
||||
|
||||
//вынести из б
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var mailboxSettings = mailBoxSettingEngine.GetMailBoxSettings(DOMAIN);
|
||||
|
||||
var testMailboxes = mailboxSettings.ToMailboxList(TestUser.Email, PASSWORD, CURRENT_TENANT, TestUser.ID.ToString());
|
||||
|
||||
TestMailbox = testMailboxes.FirstOrDefault();
|
||||
|
||||
if (TestMailbox == null || !mailboxEngine.SaveMailBox(TestMailbox))
|
||||
{
|
||||
throw new Exception(string.Format("Can't create mailbox with email: {0}", TestUser.Email));
|
||||
}
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
public void CleanUp()
|
||||
{
|
||||
if (TestUser == null || TestUser.ID == Guid.Empty)
|
||||
return;
|
||||
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(ASC.Core.Configuration.Constants.CoreSystem);
|
||||
|
||||
// Remove TestUser profile
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
userManager.DeleteUser(TestUser.ID);
|
||||
|
||||
// Clear TestUser mail index
|
||||
var factoryIndexer = scope.ServiceProvider.GetService<FactoryIndexer<MailMail>>();
|
||||
|
||||
var t = scope.ServiceProvider.GetService<MailMail>();
|
||||
if (factoryIndexer.Support(t))
|
||||
factoryIndexer.DeleteAsync(s => s.Where(m => m.UserId, TestUser.ID.ToString())).Wait();
|
||||
|
||||
// Clear TestUser mail data
|
||||
var mailGarbageEngine = scope.ServiceProvider.GetService<MailGarbageEngine>();
|
||||
mailGarbageEngine.ClearUserMail(TestUser.ID, tenantManager.GetCurrentTenant());
|
||||
MessageEngine = serviceScope.ServiceProvider.GetService<MessageEngine>();
|
||||
UserFolderEngine = serviceScope.ServiceProvider.GetService<UserFolderEngine>();
|
||||
TestEngine = serviceScope.ServiceProvider.GetService<TestEngine>();
|
||||
}
|
||||
|
||||
[Test]
|
||||
[Order(1)]
|
||||
public void CreateFolderTest()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var userFolderEngine = scope.ServiceProvider.GetService<UserFolderEngine>();
|
||||
|
||||
var folder = userFolderEngine.Create("Test folder");
|
||||
var folder = UserFolderEngine.Create("CreateFolderTest");
|
||||
|
||||
Assert.Greater(folder.Id, 0);
|
||||
}
|
||||
@ -153,24 +85,15 @@ namespace ASC.Mail.Tests
|
||||
[Order(2)]
|
||||
public void CreateFolderWithAlreadyExistingNameTest()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
const string name = "CreateFolderWithAlreadyExistingNameTest";
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var userFolderEngine = scope.ServiceProvider.GetService<UserFolderEngine>();
|
||||
|
||||
const string name = "Test folder";
|
||||
|
||||
var folder = userFolderEngine.Create(name);
|
||||
var folder = UserFolderEngine.Create(name);
|
||||
|
||||
Assert.Greater(folder.Id, 0);
|
||||
|
||||
Assert.Throws<AlreadyExistsFolderException>(() =>
|
||||
{
|
||||
userFolderEngine.Create(name);
|
||||
UserFolderEngine.Create(name);
|
||||
});
|
||||
}
|
||||
|
||||
@ -178,18 +101,9 @@ namespace ASC.Mail.Tests
|
||||
[Order(3)]
|
||||
public void CreateFolderWithoutParentTest()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var userFolderEngine = scope.ServiceProvider.GetService<UserFolderEngine>();
|
||||
|
||||
Assert.Throws<ArgumentException>(() =>
|
||||
{
|
||||
userFolderEngine.Create("Test folder", 777);
|
||||
UserFolderEngine.Create("CreateFolderWithoutParentTest", 777);
|
||||
});
|
||||
}
|
||||
|
||||
@ -197,18 +111,9 @@ namespace ASC.Mail.Tests
|
||||
[Order(4)]
|
||||
public void CreateFolderWithoutNameTest()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var userFolderEngine = scope.ServiceProvider.GetService<UserFolderEngine>();
|
||||
|
||||
Assert.Throws<EmptyFolderException>(() =>
|
||||
{
|
||||
userFolderEngine.Create("");
|
||||
UserFolderEngine.Create("");
|
||||
});
|
||||
}
|
||||
|
||||
@ -216,24 +121,15 @@ namespace ASC.Mail.Tests
|
||||
[Order(5)]
|
||||
public void CreateSubFolderTest()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var userFolderEngine = scope.ServiceProvider.GetService<UserFolderEngine>();
|
||||
|
||||
var folder = userFolderEngine.Create("Test folder");
|
||||
var folder = UserFolderEngine.Create("CreateSubFolderTest");
|
||||
|
||||
Assert.Greater(folder.Id, 0);
|
||||
|
||||
var subFolder = userFolderEngine.Create("Test sub folder", folder.Id);
|
||||
var subFolder = UserFolderEngine.Create("CreateSubFolderTestSUB", folder.Id);
|
||||
|
||||
Assert.Greater(subFolder.Id, 0);
|
||||
|
||||
var rootFolder = userFolderEngine.Get(folder.Id);
|
||||
var rootFolder = UserFolderEngine.Get(folder.Id);
|
||||
|
||||
Assert.IsNotNull(rootFolder);
|
||||
|
||||
@ -280,26 +176,17 @@ namespace ASC.Mail.Tests
|
||||
[Order(6)]
|
||||
public void ChangeNameTest()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
const string name = "ChangeNameTest";
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var userFolderEngine = scope.ServiceProvider.GetService<UserFolderEngine>();
|
||||
|
||||
const string name = "Folder Name";
|
||||
|
||||
var folder = userFolderEngine.Create(name);
|
||||
var folder = UserFolderEngine.Create(name);
|
||||
|
||||
Assert.Greater(folder.Id, 0);
|
||||
|
||||
Assert.AreEqual(name, folder.Name);
|
||||
|
||||
const string new_name = "New Folder Name";
|
||||
const string new_name = "New ChangeNameTest";
|
||||
|
||||
var resultFolder = userFolderEngine.Update(folder.Id, new_name);
|
||||
var resultFolder = UserFolderEngine.Update(folder.Id, new_name);
|
||||
|
||||
Assert.IsNotNull(resultFolder);
|
||||
|
||||
@ -316,26 +203,17 @@ namespace ASC.Mail.Tests
|
||||
[Order(7)]
|
||||
public void ChangeNameToExistingTest()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
const string name1 = "ChangeNameToExistingTest";
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var userFolderEngine = scope.ServiceProvider.GetService<UserFolderEngine>();
|
||||
|
||||
const string name1 = "Folder Name 1";
|
||||
|
||||
var folder1 = userFolderEngine.Create(name1);
|
||||
var folder1 = UserFolderEngine.Create(name1);
|
||||
|
||||
Assert.Greater(folder1.Id, 0);
|
||||
|
||||
Assert.AreEqual(name1, folder1.Name);
|
||||
|
||||
const string name2 = "New Folder Name";
|
||||
const string name2 = "New Folder Name ChangeNameToExistingTest";
|
||||
|
||||
var folder2 = userFolderEngine.Create(name2);
|
||||
var folder2 = UserFolderEngine.Create(name2);
|
||||
|
||||
Assert.Greater(folder2.Id, 0);
|
||||
|
||||
@ -343,7 +221,7 @@ namespace ASC.Mail.Tests
|
||||
|
||||
Assert.Throws<AlreadyExistsFolderException>(() =>
|
||||
{
|
||||
userFolderEngine.Update(folder2.Id, name1);
|
||||
UserFolderEngine.Update(folder2.Id, name1);
|
||||
});
|
||||
}
|
||||
|
||||
@ -351,26 +229,17 @@ namespace ASC.Mail.Tests
|
||||
[Order(8)]
|
||||
public void MoveToBaseFolderTest()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var userFolderEngine = scope.ServiceProvider.GetService<UserFolderEngine>();
|
||||
|
||||
var baseFolder = userFolderEngine.Create("Folder 1");
|
||||
var baseFolder = UserFolderEngine.Create("MoveToBaseFolderTest 1");
|
||||
|
||||
Assert.Greater(baseFolder.Id, 0);
|
||||
|
||||
var folder = userFolderEngine.Create("Folder 1.1");
|
||||
var folder = UserFolderEngine.Create("MoveToBaseFolderTest 1.1");
|
||||
|
||||
Assert.Greater(folder.Id, 0);
|
||||
|
||||
userFolderEngine.Update(folder.Id, folder.Name, baseFolder.Id);
|
||||
UserFolderEngine.Update(folder.Id, folder.Name, baseFolder.Id);
|
||||
|
||||
var resultBaseFolder = userFolderEngine.Get(baseFolder.Id);
|
||||
var resultBaseFolder = UserFolderEngine.Get(baseFolder.Id);
|
||||
|
||||
Assert.IsNotNull(resultBaseFolder);
|
||||
|
||||
@ -378,7 +247,7 @@ namespace ASC.Mail.Tests
|
||||
|
||||
Assert.AreEqual(1, resultBaseFolder.FolderCount);
|
||||
|
||||
var resultFolder = userFolderEngine.Get(folder.Id);
|
||||
var resultFolder = UserFolderEngine.Get(folder.Id);
|
||||
|
||||
Assert.Greater(resultFolder.Id, 0);
|
||||
|
||||
@ -389,38 +258,29 @@ namespace ASC.Mail.Tests
|
||||
[Order(9)]
|
||||
public void MoveFromBaseFolderTest()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var userFolderEngine = scope.ServiceProvider.GetService<UserFolderEngine>();
|
||||
|
||||
var baseFolder = userFolderEngine.Create("Folder 1");
|
||||
var baseFolder = UserFolderEngine.Create("MoveFromBaseFolderTest 1");
|
||||
|
||||
Assert.Greater(baseFolder.Id, 0);
|
||||
|
||||
var folder = userFolderEngine.Create("Folder 1.1", baseFolder.Id);
|
||||
var folder = UserFolderEngine.Create("MoveFromBaseFolderTest 1.1", baseFolder.Id);
|
||||
|
||||
Assert.Greater(folder.Id, 0);
|
||||
|
||||
Assert.AreEqual(baseFolder.Id, folder.ParentId);
|
||||
|
||||
baseFolder = userFolderEngine.Get(baseFolder.Id);
|
||||
baseFolder = UserFolderEngine.Get(baseFolder.Id);
|
||||
|
||||
Assert.AreEqual(1, baseFolder.FolderCount);
|
||||
|
||||
userFolderEngine.Update(folder.Id, folder.Name, 0);
|
||||
UserFolderEngine.Update(folder.Id, folder.Name, 0);
|
||||
|
||||
var resultBaseFolder = userFolderEngine.Get(baseFolder.Id);
|
||||
var resultBaseFolder = UserFolderEngine.Get(baseFolder.Id);
|
||||
|
||||
Assert.IsNotNull(resultBaseFolder);
|
||||
|
||||
Assert.AreEqual(0, resultBaseFolder.FolderCount);
|
||||
|
||||
var resultFolder = userFolderEngine.Get(folder.Id);
|
||||
var resultFolder = UserFolderEngine.Get(folder.Id);
|
||||
|
||||
Assert.Greater(resultFolder.Id, 0);
|
||||
}
|
||||
@ -429,20 +289,11 @@ namespace ASC.Mail.Tests
|
||||
[Order(10)]
|
||||
public void WrongMoveFolderTest()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var userFolderEngine = scope.ServiceProvider.GetService<UserFolderEngine>();
|
||||
|
||||
var baseFolder = userFolderEngine.Create("Folder 1");
|
||||
var baseFolder = UserFolderEngine.Create("WrongMoveFolderTest 1");
|
||||
|
||||
Assert.Greater(baseFolder.Id, 0);
|
||||
|
||||
var folder = userFolderEngine.Create("Folder 1.1", baseFolder.Id);
|
||||
var folder = UserFolderEngine.Create("WrongMoveFolderTest 1.1", baseFolder.Id);
|
||||
|
||||
Assert.Greater(folder.Id, 0);
|
||||
|
||||
@ -450,7 +301,7 @@ namespace ASC.Mail.Tests
|
||||
|
||||
Assert.Throws<MoveFolderException>(() =>
|
||||
{
|
||||
userFolderEngine.Update(baseFolder.Id, baseFolder.Name, folder.Id);
|
||||
UserFolderEngine.Update(baseFolder.Id, baseFolder.Name, folder.Id);
|
||||
});
|
||||
}
|
||||
|
||||
@ -458,20 +309,11 @@ namespace ASC.Mail.Tests
|
||||
[Order(11)]
|
||||
public void WrongChangeParentToCurrentTest()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var userFolderEngine = scope.ServiceProvider.GetService<UserFolderEngine>();
|
||||
|
||||
var baseFolder = userFolderEngine.Create("Folder 1");
|
||||
var baseFolder = UserFolderEngine.Create("WrongChangeParentToCurrentTest 1");
|
||||
|
||||
Assert.Greater(baseFolder.Id, 0);
|
||||
|
||||
var folder = userFolderEngine.Create("Folder 1.1", baseFolder.Id);
|
||||
var folder = UserFolderEngine.Create("WrongChangeParentToCurrentTest 1.1", baseFolder.Id);
|
||||
|
||||
Assert.Greater(folder.Id, 0);
|
||||
|
||||
@ -479,7 +321,7 @@ namespace ASC.Mail.Tests
|
||||
|
||||
Assert.Throws<ArgumentException>(() =>
|
||||
{
|
||||
userFolderEngine.Update(folder.Id, folder.Name, folder.Id);
|
||||
UserFolderEngine.Update(folder.Id, folder.Name, folder.Id);
|
||||
});
|
||||
}
|
||||
|
||||
@ -487,40 +329,31 @@ namespace ASC.Mail.Tests
|
||||
[Order(12)]
|
||||
public void WrongChangeParentToChildTest()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var userFolderEngine = scope.ServiceProvider.GetService<UserFolderEngine>();
|
||||
|
||||
var root = userFolderEngine.Create("Root");
|
||||
var root = UserFolderEngine.Create("WrongChangeParentToChildTest");
|
||||
|
||||
Assert.Greater(root.Id, 0);
|
||||
|
||||
var f1 = userFolderEngine.Create("1", root.Id);
|
||||
var f1 = UserFolderEngine.Create("WrongChangeParentToChildTest 1", root.Id);
|
||||
|
||||
Assert.Greater(f1.Id, 0);
|
||||
|
||||
Assert.AreEqual(root.Id, f1.ParentId);
|
||||
|
||||
root = userFolderEngine.Get(root.Id);
|
||||
root = UserFolderEngine.Get(root.Id);
|
||||
|
||||
Assert.AreEqual(1, root.FolderCount);
|
||||
|
||||
var f11 = userFolderEngine.Create("1.1", f1.Id);
|
||||
var f11 = UserFolderEngine.Create("WrongChangeParentToChildTest 1.1", f1.Id);
|
||||
|
||||
Assert.Greater(f11.Id, 0);
|
||||
|
||||
Assert.AreEqual(f1.Id, f11.ParentId);
|
||||
|
||||
f1 = userFolderEngine.Get(f1.Id);
|
||||
f1 = UserFolderEngine.Get(f1.Id);
|
||||
|
||||
Assert.AreEqual(1, f1.FolderCount);
|
||||
|
||||
var f111 = userFolderEngine.Create("1.1.1", f11.Id);
|
||||
var f111 = UserFolderEngine.Create("WrongChangeParentToChildTest 1.1.1", f11.Id);
|
||||
|
||||
Assert.Greater(f111.Id, 0);
|
||||
|
||||
@ -528,7 +361,7 @@ namespace ASC.Mail.Tests
|
||||
|
||||
Assert.Throws<MoveFolderException>(() =>
|
||||
{
|
||||
userFolderEngine.Update(f11.Id, f11.Name, f111.Id);
|
||||
UserFolderEngine.Update(f11.Id, f11.Name, f111.Id);
|
||||
});
|
||||
}
|
||||
|
||||
@ -606,21 +439,11 @@ namespace ASC.Mail.Tests
|
||||
[Order(13)]
|
||||
public void LoadMessagesToUserFolderTest()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var userFolderEngine = scope.ServiceProvider.GetService<UserFolderEngine>();
|
||||
var testEngine = scope.ServiceProvider.GetService<TestEngine>();
|
||||
|
||||
var baseFolder = userFolderEngine.Create("Folder 1");
|
||||
var baseFolder = UserFolderEngine.Create("LoadMessagesToUserFolderTest 1");
|
||||
|
||||
Assert.Greater(baseFolder.Id, 0);
|
||||
|
||||
var resultBaseFolder = userFolderEngine.Get(baseFolder.Id);
|
||||
var resultBaseFolder = UserFolderEngine.Get(baseFolder.Id);
|
||||
|
||||
Assert.IsNotNull(resultBaseFolder);
|
||||
Assert.AreEqual(0, resultBaseFolder.ParentId);
|
||||
@ -643,12 +466,12 @@ namespace ASC.Mail.Tests
|
||||
EmlStream = fs
|
||||
};
|
||||
|
||||
mailId1 = testEngine.LoadSampleMessage(model);
|
||||
mailId1 = TestEngine.LoadSampleMessage(model);
|
||||
}
|
||||
|
||||
Assert.Greater(mailId1, 0);
|
||||
|
||||
resultBaseFolder = userFolderEngine.Get(baseFolder.Id);
|
||||
resultBaseFolder = UserFolderEngine.Get(baseFolder.Id);
|
||||
|
||||
Assert.IsNotNull(resultBaseFolder);
|
||||
Assert.AreEqual(0, resultBaseFolder.ParentId);
|
||||
@ -671,12 +494,12 @@ namespace ASC.Mail.Tests
|
||||
EmlStream = fs
|
||||
};
|
||||
|
||||
mailId2 = testEngine.LoadSampleMessage(model);
|
||||
mailId2 = TestEngine.LoadSampleMessage(model);
|
||||
}
|
||||
|
||||
Assert.Greater(mailId2, 0);
|
||||
|
||||
resultBaseFolder = userFolderEngine.Get(baseFolder.Id);
|
||||
resultBaseFolder = UserFolderEngine.Get(baseFolder.Id);
|
||||
|
||||
Assert.IsNotNull(resultBaseFolder);
|
||||
Assert.AreEqual(0, resultBaseFolder.ParentId);
|
||||
@ -691,22 +514,11 @@ namespace ASC.Mail.Tests
|
||||
[Order(14)]
|
||||
public void MoveMessagesFromDefaulFolderToUserFolderTest()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var userFolderEngine = scope.ServiceProvider.GetService<UserFolderEngine>();
|
||||
var testEngine = scope.ServiceProvider.GetService<TestEngine>();
|
||||
var messageEngine = scope.ServiceProvider.GetService<MessageEngine>();
|
||||
|
||||
var baseFolder = userFolderEngine.Create("Folder 1");
|
||||
var baseFolder = UserFolderEngine.Create("MoveMessagesFromDefaulFolderToUserFolderTest 1");
|
||||
|
||||
Assert.Greater(baseFolder.Id, 0);
|
||||
|
||||
var resultBaseFolder = userFolderEngine.Get(baseFolder.Id);
|
||||
var resultBaseFolder = UserFolderEngine.Get(baseFolder.Id);
|
||||
|
||||
Assert.IsNotNull(resultBaseFolder);
|
||||
Assert.AreEqual(0, resultBaseFolder.ParentId);
|
||||
@ -730,7 +542,7 @@ namespace ASC.Mail.Tests
|
||||
EmlStream = fs
|
||||
};
|
||||
|
||||
mailId1 = testEngine.LoadSampleMessage(model);
|
||||
mailId1 = TestEngine.LoadSampleMessage(model);
|
||||
}
|
||||
|
||||
using (var fs = new FileStream(Eml2Path, FileMode.Open, FileAccess.Read))
|
||||
@ -744,16 +556,16 @@ namespace ASC.Mail.Tests
|
||||
EmlStream = fs
|
||||
};
|
||||
|
||||
mailId2 = testEngine.LoadSampleMessage(model);
|
||||
mailId2 = TestEngine.LoadSampleMessage(model);
|
||||
}
|
||||
|
||||
Assert.Greater(mailId1, 0);
|
||||
Assert.Greater(mailId2, 0);
|
||||
|
||||
messageEngine.SetFolder(new List<int> { mailId1, mailId2 }, FolderType.UserFolder,
|
||||
MessageEngine.SetFolder(new List<int> { mailId1, mailId2 }, FolderType.UserFolder,
|
||||
baseFolder.Id);
|
||||
|
||||
resultBaseFolder = userFolderEngine.Get(baseFolder.Id);
|
||||
resultBaseFolder = UserFolderEngine.Get(baseFolder.Id);
|
||||
|
||||
Assert.IsNotNull(resultBaseFolder);
|
||||
Assert.AreEqual(0, resultBaseFolder.ParentId);
|
||||
@ -768,22 +580,11 @@ namespace ASC.Mail.Tests
|
||||
[Order(15)]
|
||||
public void MoveMessagesFromUserFolderToDefaulFolderTest()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var userFolderEngine = scope.ServiceProvider.GetService<UserFolderEngine>();
|
||||
var testEngine = scope.ServiceProvider.GetService<TestEngine>();
|
||||
var messageEngine = scope.ServiceProvider.GetService<MessageEngine>();
|
||||
|
||||
var baseFolder = userFolderEngine.Create("Folder 1");
|
||||
var baseFolder = UserFolderEngine.Create("MoveMessagesFromToDefaul 1");
|
||||
|
||||
Assert.Greater(baseFolder.Id, 0);
|
||||
|
||||
var resultBaseFolder = userFolderEngine.Get(baseFolder.Id);
|
||||
var resultBaseFolder = UserFolderEngine.Get(baseFolder.Id);
|
||||
|
||||
Assert.IsNotNull(resultBaseFolder);
|
||||
Assert.AreEqual(0, resultBaseFolder.ParentId);
|
||||
@ -796,7 +597,7 @@ namespace ASC.Mail.Tests
|
||||
int mailId1;
|
||||
int mailId2;
|
||||
|
||||
using (var fs = new FileStream(Eml1Path, FileMode.Open, FileAccess.Read))
|
||||
using (var fs = new FileStream(Eml5Path, FileMode.Open, FileAccess.Read))
|
||||
{
|
||||
var model = new TestMessageModel
|
||||
{
|
||||
@ -807,10 +608,10 @@ namespace ASC.Mail.Tests
|
||||
EmlStream = fs
|
||||
};
|
||||
|
||||
mailId1 = testEngine.LoadSampleMessage(model);
|
||||
mailId1 = TestEngine.LoadSampleMessage(model);
|
||||
}
|
||||
|
||||
using (var fs = new FileStream(Eml2Path, FileMode.Open, FileAccess.Read))
|
||||
using (var fs = new FileStream(Eml6Path, FileMode.Open, FileAccess.Read))
|
||||
{
|
||||
var model = new TestMessageModel
|
||||
{
|
||||
@ -821,13 +622,13 @@ namespace ASC.Mail.Tests
|
||||
EmlStream = fs
|
||||
};
|
||||
|
||||
mailId2 = testEngine.LoadSampleMessage(model);
|
||||
mailId2 = TestEngine.LoadSampleMessage(model);
|
||||
}
|
||||
|
||||
Assert.Greater(mailId1, 0);
|
||||
Assert.Greater(mailId2, 0);
|
||||
|
||||
resultBaseFolder = userFolderEngine.Get(baseFolder.Id);
|
||||
resultBaseFolder = UserFolderEngine.Get(baseFolder.Id);
|
||||
|
||||
Assert.IsNotNull(resultBaseFolder);
|
||||
Assert.AreEqual(0, resultBaseFolder.ParentId);
|
||||
@ -837,9 +638,9 @@ namespace ASC.Mail.Tests
|
||||
Assert.AreEqual(1, resultBaseFolder.UnreadChainCount);
|
||||
Assert.AreEqual(2, resultBaseFolder.TotalChainCount);
|
||||
|
||||
messageEngine.SetFolder(new List<int> { mailId1, mailId2 }, FolderType.Inbox);
|
||||
MessageEngine.SetFolder(new List<int> { mailId1, mailId2 }, FolderType.Inbox);
|
||||
|
||||
resultBaseFolder = userFolderEngine.Get(baseFolder.Id);
|
||||
resultBaseFolder = UserFolderEngine.Get(baseFolder.Id);
|
||||
|
||||
Assert.IsNotNull(resultBaseFolder);
|
||||
Assert.AreEqual(0, resultBaseFolder.ParentId);
|
||||
@ -854,22 +655,11 @@ namespace ASC.Mail.Tests
|
||||
[Order(16)]
|
||||
public void MoveMessagesFromUserFolderToAnotherUserFolderTest()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
|
||||
tenantManager.SetCurrentTenant(CURRENT_TENANT);
|
||||
securityContext.AuthenticateMe(TestUser.ID);
|
||||
|
||||
var userFolderEngine = scope.ServiceProvider.GetService<UserFolderEngine>();
|
||||
var testEngine = scope.ServiceProvider.GetService<TestEngine>();
|
||||
var messageEngine = scope.ServiceProvider.GetService<MessageEngine>();
|
||||
|
||||
var folder1 = userFolderEngine.Create("Folder 1");
|
||||
var folder1 = UserFolderEngine.Create("MoveMessagesFromToAnother 1");
|
||||
|
||||
Assert.Greater(folder1.Id, 0);
|
||||
|
||||
var resultFolder1 = userFolderEngine.Get(folder1.Id);
|
||||
var resultFolder1 = UserFolderEngine.Get(folder1.Id);
|
||||
|
||||
Assert.IsNotNull(resultFolder1);
|
||||
Assert.AreEqual(0, resultFolder1.ParentId);
|
||||
@ -879,11 +669,11 @@ namespace ASC.Mail.Tests
|
||||
Assert.AreEqual(0, resultFolder1.UnreadChainCount);
|
||||
Assert.AreEqual(0, resultFolder1.TotalChainCount);
|
||||
|
||||
var folder2 = userFolderEngine.Create("Folder 2");
|
||||
var folder2 = UserFolderEngine.Create("MoveMessagesFromToAnother 2");
|
||||
|
||||
Assert.Greater(folder2.Id, 0);
|
||||
|
||||
var resultFolder2 = userFolderEngine.Get(folder2.Id);
|
||||
var resultFolder2 = UserFolderEngine.Get(folder2.Id);
|
||||
|
||||
Assert.IsNotNull(resultFolder2);
|
||||
Assert.AreEqual(0, resultFolder2.ParentId);
|
||||
@ -896,7 +686,7 @@ namespace ASC.Mail.Tests
|
||||
int mailId1;
|
||||
int mailId2;
|
||||
|
||||
using (var fs = new FileStream(Eml1Path, FileMode.Open, FileAccess.Read))
|
||||
using (var fs = new FileStream(Eml3Path, FileMode.Open, FileAccess.Read))
|
||||
{
|
||||
var model = new TestMessageModel
|
||||
{
|
||||
@ -907,10 +697,10 @@ namespace ASC.Mail.Tests
|
||||
EmlStream = fs
|
||||
};
|
||||
|
||||
mailId1 = testEngine.LoadSampleMessage(model);
|
||||
mailId1 = TestEngine.LoadSampleMessage(model);
|
||||
}
|
||||
|
||||
using (var fs = new FileStream(Eml2Path, FileMode.Open, FileAccess.Read))
|
||||
using (var fs = new FileStream(Eml4Path, FileMode.Open, FileAccess.Read))
|
||||
{
|
||||
var model = new TestMessageModel
|
||||
{
|
||||
@ -921,13 +711,13 @@ namespace ASC.Mail.Tests
|
||||
EmlStream = fs
|
||||
};
|
||||
|
||||
mailId2 = testEngine.LoadSampleMessage(model);
|
||||
mailId2 = TestEngine.LoadSampleMessage(model);
|
||||
}
|
||||
|
||||
Assert.Greater(mailId1, 0);
|
||||
Assert.Greater(mailId2, 0);
|
||||
|
||||
resultFolder1 = userFolderEngine.Get(folder1.Id);
|
||||
resultFolder1 = UserFolderEngine.Get(folder1.Id);
|
||||
|
||||
Assert.IsNotNull(resultFolder1);
|
||||
Assert.AreEqual(0, resultFolder1.ParentId);
|
||||
@ -937,9 +727,9 @@ namespace ASC.Mail.Tests
|
||||
Assert.AreEqual(1, resultFolder1.UnreadChainCount);
|
||||
Assert.AreEqual(2, resultFolder1.TotalChainCount);
|
||||
|
||||
messageEngine.SetFolder(new List<int> { mailId1, mailId2 }, FolderType.UserFolder, folder2.Id);
|
||||
MessageEngine.SetFolder(new List<int> { mailId1, mailId2 }, FolderType.UserFolder, folder2.Id);
|
||||
|
||||
resultFolder1 = userFolderEngine.Get(folder1.Id);
|
||||
resultFolder1 = UserFolderEngine.Get(folder1.Id);
|
||||
|
||||
Assert.IsNotNull(resultFolder1);
|
||||
Assert.AreEqual(0, resultFolder1.ParentId);
|
||||
@ -949,7 +739,7 @@ namespace ASC.Mail.Tests
|
||||
Assert.AreEqual(0, resultFolder1.UnreadChainCount);
|
||||
Assert.AreEqual(0, resultFolder1.TotalChainCount);
|
||||
|
||||
resultFolder2 = userFolderEngine.Get(folder2.Id);
|
||||
resultFolder2 = UserFolderEngine.Get(folder2.Id);
|
||||
|
||||
Assert.IsNotNull(resultFolder2);
|
||||
Assert.AreEqual(0, resultFolder2.ParentId);
|
||||
|
@ -91,6 +91,15 @@ namespace ASC.Mail.Aggregator.Tests.Common.Utils
|
||||
return userManager.SaveUserInfo(user);
|
||||
}
|
||||
|
||||
public static string GetTestEmailAddress(string domain)
|
||||
{
|
||||
var startDate = DateTime.Now;
|
||||
|
||||
return string.Format("1test_{0}_{1}_{2}_{3}@{4}",
|
||||
startDate.Day, startDate.Month, startDate.Year,
|
||||
startDate.Ticks, domain);
|
||||
}
|
||||
|
||||
public static bool IgnoreIfFullTextSearch<T>(bool enabled, IServiceProvider serviceProvider) where T : class, ISearchItem
|
||||
{
|
||||
return false;
|
||||
|
@ -6,6 +6,7 @@ using ASC.Core;
|
||||
using ASC.CRM.Core;
|
||||
using ASC.Mail.Configuration;
|
||||
using ASC.Mail.Core.Engine;
|
||||
using ASC.Mail.Core.Engine.Operations;
|
||||
using ASC.Mail.Utils;
|
||||
using ASC.Web.Files.Api;
|
||||
using ASC.Web.Files.Utils;
|
||||
@ -36,6 +37,12 @@ namespace ASC.Mail.Tests
|
||||
private MailGarbageEngine MailGarbageEngine { get; }
|
||||
private MessageEngine MessageEngine { get; }
|
||||
private FilterEngine FilterEngine { get; }
|
||||
private TestEngine TestEngine { get; }
|
||||
private TemplateEngine TemplateEngine { get; }
|
||||
private DraftEngine DraftEngine { get; }
|
||||
private TagEngine TagEngine { get; }
|
||||
private OperationEngine OperationEngine { get; }
|
||||
private MailRemoveUserFolderOperation MailRemoveUserFolderOperation { get; }
|
||||
|
||||
public MailTestsScope(
|
||||
ApiDateTimeHelper apiDateTimeHelper,
|
||||
@ -58,7 +65,13 @@ namespace ASC.Mail.Tests
|
||||
MailSettings mailSettings,
|
||||
MailGarbageEngine mailGarbageEngine,
|
||||
MessageEngine messageEngine,
|
||||
FilterEngine filterEngine
|
||||
FilterEngine filterEngine,
|
||||
TestEngine testEngine,
|
||||
TemplateEngine templateEngine,
|
||||
DraftEngine draftEngine,
|
||||
TagEngine tagEngine,
|
||||
OperationEngine operationEngine,
|
||||
MailRemoveUserFolderOperation mailRemoveUserFolderOperation
|
||||
)
|
||||
{
|
||||
ApiDateTimeHelper = apiDateTimeHelper;
|
||||
@ -81,6 +94,12 @@ namespace ASC.Mail.Tests
|
||||
MailGarbageEngine = mailGarbageEngine;
|
||||
MessageEngine = messageEngine;
|
||||
FilterEngine = filterEngine;
|
||||
TestEngine = testEngine;
|
||||
TemplateEngine = templateEngine;
|
||||
DraftEngine = draftEngine;
|
||||
TagEngine = tagEngine;
|
||||
OperationEngine = operationEngine;
|
||||
MailRemoveUserFolderOperation = mailRemoveUserFolderOperation;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user