v9: Move local xml package files to database instead (#11654)

* Move package to database

* Added migration and implemented new repository

* Updated migrations to use proper xml convert

* Fixed save function and renamed createDate to update date

* Updated dependencyInjection

* Updated UmbracoPlan.cs

* Apply suggestions from code review

Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>

* Added File check

* Tried using same context as create table

* Fix DTO

* Fix GetById and local package saving

* Fix images when migrating

* Implement deletion of all local files

* Only delete local repo file, not file snapshots

* Remove static package path and use the one we save

* Update package repo to export package and remove check for ids when exporting

* Minor fixes

* Fix so that you can download package after creating

* Update savePackage method to export package afterwards

Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
This commit is contained in:
Nikolaj Geisle
2021-12-21 14:02:49 +01:00
committed by GitHub
parent 4abace7e51
commit 76cf5037e5
11 changed files with 953 additions and 12 deletions

View File

@@ -0,0 +1,62 @@
using System.Collections.Generic;
using System.Linq;
using NUnit.Framework;
using Umbraco.Cms.Core.Packaging;
using Umbraco.Cms.Tests.Common.Testing;
using Umbraco.Cms.Tests.Integration.Testing;
namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Packaging
{
[TestFixture]
[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest)]
public class CreatedPackageSchemaTests : UmbracoIntegrationTest
{
private ICreatedPackagesRepository CreatedPackageSchemaRepository =>
GetRequiredService<ICreatedPackagesRepository>();
[Test]
public void PackagesRepository_Can_Save_PackageDefinition()
{
var packageDefinition = new PackageDefinition()
{
Name = "NewPack", DocumentTypes = new List<string>() { "Root" }
};
var result = CreatedPackageSchemaRepository.SavePackage(packageDefinition);
Assert.IsTrue(result);
}
[Test]
public void PackageRepository_GetAll_Returns_All_PackageDefinitions()
{
var packageDefinitionList = new List<PackageDefinition>()
{
new () { Name = "PackOne" },
new () { Name = "PackTwo" },
new () { Name = "PackThree" }
};
foreach (PackageDefinition packageDefinition in packageDefinitionList)
{
CreatedPackageSchemaRepository.SavePackage(packageDefinition);
}
var loadedPackageDefinitions = CreatedPackageSchemaRepository.GetAll().ToList();
CollectionAssert.IsNotEmpty(loadedPackageDefinitions);
CollectionAssert.AllItemsAreUnique(loadedPackageDefinitions);
Assert.AreEqual(loadedPackageDefinitions.Count, 3);
}
[Test]
public void PackageRepository_Can_Update_Package()
{
var packageDefinition = new PackageDefinition() { Name = "TestPackage" };
CreatedPackageSchemaRepository.SavePackage(packageDefinition);
packageDefinition.Name = "UpdatedName";
CreatedPackageSchemaRepository.SavePackage(packageDefinition);
var result = CreatedPackageSchemaRepository.GetAll().ToList();
Assert.AreEqual(result.Count, 1);
Assert.AreEqual(result.FirstOrDefault()?.Name, "UpdatedName");
}
}
}