1
0
mirror of https://github.com/ONLYOFFICE/Mail.git synced 2025-04-18 16:44:01 +03:00

rework Tests.

This commit is contained in:
Enin Artem 2021-12-10 17:12:14 +04:00
parent c57a25a655
commit 7a63b08666
19 changed files with 482 additions and 1156 deletions

View File

@ -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;
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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")

View File

@ -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

View File

@ -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);
}

View File

@ -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)]

View File

@ -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)]

View File

@ -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)]

View File

@ -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)]

View File

@ -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)]

View File

@ -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);

View File

@ -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);

View File

@ -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()

View File

@ -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);

View File

@ -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;

View File

@ -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;
}
}
}