ASC.Files.Tests: adding a base tests class
This commit is contained in:
parent
be789b68cd
commit
9eef572076
165
products/ASC.Files/Tests/BaseTests.cs
Normal file
165
products/ASC.Files/Tests/BaseTests.cs
Normal file
@ -0,0 +1,165 @@
|
||||
using ASC.Api.Core;
|
||||
using ASC.Api.Documents;
|
||||
using ASC.Common.Security.Authentication;
|
||||
using ASC.Core;
|
||||
using ASC.Core.Common.Configuration;
|
||||
using ASC.Core.Tenants;
|
||||
using ASC.Core.Users;
|
||||
using ASC.Files.Helpers;
|
||||
using ASC.MessagingSystem;
|
||||
using ASC.Web.Core;
|
||||
using ASC.Web.Core.Files;
|
||||
using ASC.Web.Files.Classes;
|
||||
using ASC.Web.Files.Configuration;
|
||||
using ASC.Web.Files.Helpers;
|
||||
using ASC.Web.Files.Services.DocumentService;
|
||||
using ASC.Web.Files.Services.WCFService;
|
||||
using ASC.Web.Files.Utils;
|
||||
using ASC.Web.Studio.Utility;
|
||||
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.AspNetCore.TestHost;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
|
||||
namespace ASC.Files.Tests
|
||||
{
|
||||
public class BaseTests
|
||||
{
|
||||
private const string userId = "cb52f8a6-d564-11ea-a9b8-0a0027000010";
|
||||
private const int tenantId = 1;
|
||||
|
||||
protected FilesController FilesController { get; set; }
|
||||
protected TestServer TestServer { get; set; }
|
||||
protected GlobalFolderHelper GlobalFolderHelper { get; set; }
|
||||
protected Tenant CurrentTenant { get; set; }
|
||||
protected UserInfo User { get; set; }
|
||||
protected IAccount Account { get; set; }
|
||||
protected SecurityContext SecurityContext { get; set; }
|
||||
|
||||
public virtual void SetUp()
|
||||
{
|
||||
TestServer = new TestServer(new WebHostBuilder()
|
||||
.UseStartup<Startup>()
|
||||
.ConfigureAppConfiguration((hostingContext, config) =>
|
||||
{
|
||||
Configure(hostingContext, config);
|
||||
}));
|
||||
|
||||
var apiContext = TestServer.Services.GetService<ApiContext>();
|
||||
var filesControllerHelperString = TestServer.Services.GetService<FilesControllerHelper<string>>();
|
||||
var filesControllerHelperInt = TestServer.Services.GetService<FilesControllerHelper<int>>();
|
||||
var fileStorageService = TestServer.Services.GetService<FileStorageService<string>>();
|
||||
var fileStorageServiceInt = TestServer.Services.GetService<FileStorageService<int>>();
|
||||
var globalFolderHelper = TestServer.Services.GetService<GlobalFolderHelper>();
|
||||
var filesSettingsHelper = TestServer.Services.GetService<FilesSettingsHelper>();
|
||||
var filesLinkUtility = TestServer.Services.GetService<FilesLinkUtility>();
|
||||
var securityContext = TestServer.Services.GetService<SecurityContext>();
|
||||
var folderWrapperHelper = TestServer.Services.GetService<FolderWrapperHelper>();
|
||||
var fileOperationWraperHelper = TestServer.Services.GetService<FileOperationWraperHelper>();
|
||||
var entryManager = TestServer.Services.GetService<EntryManager>();
|
||||
var userManager = TestServer.Services.GetService<UserManager>();
|
||||
var webItemSecurity = TestServer.Services.GetService<WebItemSecurity>();
|
||||
var coreBaseSettings = TestServer.Services.GetService<CoreBaseSettings>();
|
||||
var thirdpartyConfiguration = TestServer.Services.GetService<ThirdpartyConfiguration>();
|
||||
var messageService = TestServer.Services.GetService<MessageService>();
|
||||
var commonLinkUtility = TestServer.Services.GetService<CommonLinkUtility>();
|
||||
var documentServiceConnector = TestServer.Services.GetService<DocumentServiceConnector>();
|
||||
var folderContentWrapperHelper = TestServer.Services.GetService<FolderContentWrapperHelper>();
|
||||
var wordpressToken = TestServer.Services.GetService<WordpressToken>();
|
||||
var wordpressHelper = TestServer.Services.GetService<WordpressHelper>();
|
||||
var consumerFactory = TestServer.Services.GetService<ConsumerFactory>();
|
||||
var easyBibHelper = TestServer.Services.GetService<EasyBibHelper>();
|
||||
var productEntryPoint = TestServer.Services.GetService<ProductEntryPoint>();
|
||||
|
||||
FilesController = new FilesController(
|
||||
apiContext,
|
||||
filesControllerHelperString,
|
||||
filesControllerHelperInt,
|
||||
fileStorageService,
|
||||
fileStorageServiceInt,
|
||||
globalFolderHelper,
|
||||
filesSettingsHelper,
|
||||
filesLinkUtility,
|
||||
securityContext,
|
||||
folderWrapperHelper,
|
||||
fileOperationWraperHelper,
|
||||
entryManager,
|
||||
userManager,
|
||||
webItemSecurity,
|
||||
coreBaseSettings,
|
||||
thirdpartyConfiguration,
|
||||
messageService,
|
||||
commonLinkUtility,
|
||||
documentServiceConnector,
|
||||
folderContentWrapperHelper,
|
||||
wordpressToken,
|
||||
wordpressHelper,
|
||||
consumerFactory,
|
||||
easyBibHelper,
|
||||
productEntryPoint);
|
||||
|
||||
GlobalFolderHelper = TestServer.Services.GetService<GlobalFolderHelper>();
|
||||
SecurityContext = TestServer.Services.GetService<SecurityContext>();
|
||||
CurrentTenant = SetAndGetCurrentTenant();
|
||||
User = GetUser();
|
||||
Account = GetAccount();
|
||||
|
||||
SecurityContext.AuthenticateMe(Account);
|
||||
}
|
||||
|
||||
private void Configure(WebHostBuilderContext hostingContext, IConfigurationBuilder config)
|
||||
{
|
||||
var path = "..\\..\\..\\config";
|
||||
|
||||
if (!Path.IsPathRooted(path))
|
||||
{
|
||||
path = Path.GetFullPath(Path.Combine(hostingContext.HostingEnvironment.ContentRootPath, path));
|
||||
}
|
||||
|
||||
config.SetBasePath(path);
|
||||
config
|
||||
.AddInMemoryCollection(new Dictionary<string, string>
|
||||
{
|
||||
{"pathToConf", path}
|
||||
})
|
||||
.AddJsonFile("appsettings.json")
|
||||
.AddJsonFile($"appsettings.{hostingContext.HostingEnvironment.EnvironmentName}.json", true)
|
||||
.AddJsonFile("storage.json")
|
||||
.AddJsonFile("kafka.json")
|
||||
.AddJsonFile($"kafka.{hostingContext.HostingEnvironment.EnvironmentName}.json", true)
|
||||
.AddEnvironmentVariables();
|
||||
}
|
||||
|
||||
private Tenant SetAndGetCurrentTenant()
|
||||
{
|
||||
var tenantManager = TestServer.Services.GetService<TenantManager>();
|
||||
var tenant = tenantManager.GetTenant(tenantId);
|
||||
tenantManager.SetCurrentTenant(tenant);
|
||||
|
||||
return tenantManager.CurrentTenant;
|
||||
}
|
||||
|
||||
private UserInfo GetUser()
|
||||
{
|
||||
var userManager = TestServer.Services.GetService<UserManager>();
|
||||
var user = userManager.GetUsers(new Guid(userId));
|
||||
|
||||
return user;
|
||||
}
|
||||
|
||||
private IAccount GetAccount()
|
||||
{
|
||||
return new Account(User.ID, "maks", true);
|
||||
}
|
||||
|
||||
public virtual void TearDown()
|
||||
{
|
||||
TestServer.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
@ -1,73 +1,47 @@
|
||||
using ASC.Api.Documents;
|
||||
using ASC.Common.Security.Authentication;
|
||||
using ASC.Core;
|
||||
using ASC.Core.Common.EF;
|
||||
using ASC.Core.Tenants;
|
||||
using ASC.Files;
|
||||
using ASC.Files.Tests;
|
||||
using ASC.Web.Files.Classes;
|
||||
using ASC.Web.Files.Services.WCFService.FileOperations;
|
||||
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.AspNetCore.TestHost;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
using NUnit.Framework;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
|
||||
namespace ASC.Tests.ASC.Files.Tests
|
||||
{
|
||||
[TestFixture]
|
||||
public class FilesControllerTests
|
||||
public class FilesControllerTests : BaseTests
|
||||
{
|
||||
private FilesController FilesController { get; set; }
|
||||
private TestServer TestServer { get; set; }
|
||||
private GlobalFolderHelper GlobalFolderHelper { get; set; }
|
||||
private Tenant CurrentTenant { get; set; }
|
||||
private User User { get; set; }
|
||||
private IAccount Account { get; set; }
|
||||
private SecurityContext SecurityContext { get; set; }
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
public override void SetUp()
|
||||
{
|
||||
TestServer = new TestServer(new WebHostBuilder()
|
||||
.UseStartup<Startup>()
|
||||
.ConfigureAppConfiguration((hostingContext, config) =>
|
||||
{
|
||||
Configure(hostingContext, config);
|
||||
}));
|
||||
|
||||
FilesController = TestServer.Services.GetService<FilesController>();
|
||||
GlobalFolderHelper = TestServer.Services.GetService<GlobalFolderHelper>();
|
||||
SecurityContext = TestServer.Services.GetService<SecurityContext>();
|
||||
User = GetUser();
|
||||
Account = GetAccount();
|
||||
CurrentTenant = SetAndGetCurrentTenant();
|
||||
|
||||
SecurityContext.AuthenticateMe(Account);
|
||||
base.SetUp();
|
||||
}
|
||||
|
||||
[TestCase("test")]
|
||||
public void CreateFileReturnsFileWrapperTest(string fileTitle)
|
||||
[TestCase("folderOne")]
|
||||
[TestCase("folderTwo")]
|
||||
[Category("section 'My Documents'")]
|
||||
public void CreateFolderReturnsFolderWrapperTest(string folderTitle)
|
||||
{
|
||||
var folder = FilesController.CreateFolder(GlobalFolderHelper.FolderMy, "folder");
|
||||
Assert.IsNotNull(folder);
|
||||
var folderWrapper = FilesController.CreateFolder(GlobalFolderHelper.FolderMy, folderTitle);
|
||||
|
||||
var fileWrapper = FilesController.CreateFile(GlobalFolderHelper.FolderMy, fileTitle);
|
||||
|
||||
Assert.IsNotNull(fileWrapper);
|
||||
Assert.AreEqual(fileTitle, fileWrapper.Title);
|
||||
Assert.IsNotNull(folderWrapper);
|
||||
Assert.AreEqual(folderTitle, folderWrapper.Title);
|
||||
}
|
||||
|
||||
[TestCase(1, false, true)]
|
||||
[Ignore("")]
|
||||
public void DeleteFileTest(int field, bool deleteAfter, bool immediately)
|
||||
[TestCase(14, "fold")]
|
||||
[Category("section 'My Documents'")]
|
||||
public void RenameFolderReturnsFolderWrapperTest(int folderId, string folderTitle)
|
||||
{
|
||||
FilesController.DeleteFile(field, deleteAfter, immediately);
|
||||
var folderWrapper = FilesController.RenameFolder(folderId, folderTitle);
|
||||
|
||||
Assert.IsNotNull(folderWrapper);
|
||||
Assert.AreEqual(folderTitle, folderWrapper.Title);
|
||||
}
|
||||
|
||||
[TestCase(14, false, true)]
|
||||
[Category("section 'My Documents'")]
|
||||
public void DeleteFolderTest(int folderId, bool deleteAfter, bool immediately)
|
||||
{
|
||||
FilesController.DeleteFolder(folderId, deleteAfter, immediately);
|
||||
|
||||
var statuses = FilesController.GetOperationStatuses();
|
||||
|
||||
@ -84,62 +58,10 @@ namespace ASC.Tests.ASC.Files.Tests
|
||||
Assert.IsNotNull(status);
|
||||
}
|
||||
|
||||
private void Configure(WebHostBuilderContext hostingContext, IConfigurationBuilder config)
|
||||
{
|
||||
var builder = new ConfigurationBuilder()
|
||||
.AddJsonFile("appsettings.json")
|
||||
.Build();
|
||||
|
||||
var path = builder["pathToConf"];
|
||||
|
||||
if (!Path.IsPathRooted(path))
|
||||
{
|
||||
path = Path.GetFullPath(Path.Combine(hostingContext.HostingEnvironment.ContentRootPath, path));
|
||||
}
|
||||
|
||||
config.SetBasePath(path);
|
||||
config
|
||||
.AddInMemoryCollection(new Dictionary<string, string>
|
||||
{
|
||||
{"pathToConf", path}
|
||||
})
|
||||
.AddJsonFile("appsettings.json")
|
||||
.AddJsonFile($"appsettings.{hostingContext.HostingEnvironment.EnvironmentName}.json", true)
|
||||
.AddJsonFile("storage.json")
|
||||
.AddJsonFile("kafka.json")
|
||||
.AddJsonFile($"kafka.{hostingContext.HostingEnvironment.EnvironmentName}.json", true)
|
||||
.AddEnvironmentVariables();
|
||||
}
|
||||
|
||||
private Tenant SetAndGetCurrentTenant()
|
||||
{
|
||||
var tenant = GetTenant();
|
||||
|
||||
var tenantManager = TestServer.Services.GetService<TenantManager>();
|
||||
tenantManager.SetCurrentTenant(tenant);
|
||||
|
||||
return tenantManager.CurrentTenant;
|
||||
}
|
||||
|
||||
private Tenant GetTenant()
|
||||
{
|
||||
return new Tenant();
|
||||
}
|
||||
|
||||
private User GetUser()
|
||||
{
|
||||
return new User { Id = Guid.NewGuid() };
|
||||
}
|
||||
|
||||
private IAccount GetAccount()
|
||||
{
|
||||
return new Account(User.Id, "maks", true);
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
public void TearDown()
|
||||
public override void TearDown()
|
||||
{
|
||||
TestServer.Dispose();
|
||||
base.TearDown();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user