167 lines
6.6 KiB
C#
167 lines
6.6 KiB
C#
using ASC.Api.Core;
|
|
using ASC.Api.Documents;
|
|
using ASC.Core;
|
|
using ASC.Core.Common.Configuration;
|
|
using ASC.Files;
|
|
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.Services.WCFService.FileOperations;
|
|
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 NUnit.Framework;
|
|
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
|
|
namespace ASC.Tests.ASC.Files.Tests
|
|
{
|
|
[TestFixture]
|
|
public class FilesControllerTests
|
|
{
|
|
private FilesController FilesController { get; set; }
|
|
private TestServer TestServer { get; set; }
|
|
|
|
[SetUp]
|
|
public 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);
|
|
}
|
|
|
|
[TestCase(1, "test")]
|
|
public void CreateFileReturnsFileWrapperTest(int id, string fileTitle)
|
|
{
|
|
FilesController.CreateFolder(id.ToString(), "testFolder");
|
|
FilesController.CreateFolder(id, "testFolder");
|
|
|
|
var fileWrapperString = FilesController.CreateFile(id.ToString(), fileTitle);
|
|
var fileWrapperInt = FilesController.CreateFile(id, fileTitle);
|
|
|
|
Assert.IsNotNull(fileWrapperInt);
|
|
Assert.AreEqual(fileTitle, fileWrapperInt.Title);
|
|
}
|
|
|
|
[TestCase(1, false, true)]
|
|
[Ignore("")]
|
|
public void DeleteFileTest(int field, bool deleteAfter, bool immediately)
|
|
{
|
|
FilesController.DeleteFile(field, deleteAfter, immediately);
|
|
|
|
var statuses = FilesController.GetOperationStatuses();
|
|
|
|
FileOperationWraper status = null;
|
|
|
|
foreach (var item in statuses)
|
|
{
|
|
if (item.OperationType == FileOperationType.Delete)
|
|
{
|
|
status = item;
|
|
}
|
|
}
|
|
|
|
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();
|
|
}
|
|
|
|
[TearDown]
|
|
public void TearDown()
|
|
{
|
|
TestServer.Dispose();
|
|
}
|
|
}
|
|
}
|