* Update gitignore * Move csproj * Update project references * Update solutions * Update build scripts * Tests used to share editorconfig with projects in src * Fix broken tests. * Stop copying around .editorconfig merged root one with linting * csharp_style_expression_bodied -> suggestion * Move StyleCop rulesets to matching directories and update shared build properties * Remove legacy build files, update NuGet.cofig and solution files * Restore myget source * Clean up .gitignore * Update .gitignore * Move new test classes to tests after merge * Gitignore + nuget config * Move new test Co-authored-by: Ronald Barendse <ronald@barend.se>
127 lines
4.7 KiB
C#
127 lines
4.7 KiB
C#
// Copyright (c) Umbraco.
|
|
// See LICENSE for more details.
|
|
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics;
|
|
using System.Linq;
|
|
using System.Xml.Linq;
|
|
using NUnit.Framework;
|
|
using Umbraco.Cms.Core.Models;
|
|
using Umbraco.Cms.Core.Services;
|
|
using Umbraco.Cms.Tests.Common.Builders;
|
|
using Umbraco.Cms.Tests.Common.Builders.Extensions;
|
|
using Umbraco.Cms.Tests.Common.Testing;
|
|
using Umbraco.Cms.Tests.Integration.Testing;
|
|
using Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Services.Importing;
|
|
|
|
namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Services
|
|
{
|
|
[TestFixture]
|
|
[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest)]
|
|
public class EntityXmlSerializerTests : UmbracoIntegrationTest
|
|
{
|
|
private IEntityXmlSerializer Serializer => GetRequiredService<IEntityXmlSerializer>();
|
|
|
|
[Test]
|
|
public void Can_Export_Macro()
|
|
{
|
|
// Arrange
|
|
IMacroService macroService = GetRequiredService<IMacroService>();
|
|
Macro macro = new MacroBuilder()
|
|
.WithAlias("test1")
|
|
.WithName("Test")
|
|
.Build();
|
|
macroService.Save(macro);
|
|
|
|
// Act
|
|
XElement element = Serializer.Serialize(macro);
|
|
|
|
// Assert
|
|
Assert.That(element, Is.Not.Null);
|
|
Assert.That(element.Element("name").Value, Is.EqualTo("Test"));
|
|
Assert.That(element.Element("alias").Value, Is.EqualTo("test1"));
|
|
Debug.Print(element.ToString());
|
|
}
|
|
|
|
[Test]
|
|
public void Can_Export_DictionaryItems()
|
|
{
|
|
// Arrange
|
|
CreateDictionaryData();
|
|
ILocalizationService localizationService = GetRequiredService<ILocalizationService>();
|
|
IDictionaryItem dictionaryItem = localizationService.GetDictionaryItemByKey("Parent");
|
|
|
|
var newPackageXml = XElement.Parse(ImportResources.Dictionary_Package);
|
|
XElement dictionaryItemsElement = newPackageXml.Elements("DictionaryItems").First();
|
|
|
|
// Act
|
|
XElement xml = Serializer.Serialize(new[] { dictionaryItem });
|
|
|
|
// Assert
|
|
Assert.That(xml.ToString(), Is.EqualTo(dictionaryItemsElement.ToString()));
|
|
}
|
|
|
|
[Test]
|
|
public void Can_Export_Languages()
|
|
{
|
|
// Arrange
|
|
ILocalizationService localizationService = GetRequiredService<ILocalizationService>();
|
|
|
|
ILanguage languageNbNo = new LanguageBuilder()
|
|
.WithCultureInfo("nb-NO")
|
|
.WithCultureName("Norwegian")
|
|
.Build();
|
|
localizationService.Save(languageNbNo);
|
|
|
|
ILanguage languageEnGb = new LanguageBuilder()
|
|
.WithCultureInfo("en-GB")
|
|
.Build();
|
|
localizationService.Save(languageEnGb);
|
|
|
|
var newPackageXml = XElement.Parse(ImportResources.Dictionary_Package);
|
|
XElement languageItemsElement = newPackageXml.Elements("Languages").First();
|
|
|
|
// Act
|
|
XElement xml = Serializer.Serialize(new[] { languageNbNo, languageEnGb });
|
|
|
|
// Assert
|
|
Assert.That(xml.ToString(), Is.EqualTo(languageItemsElement.ToString()));
|
|
}
|
|
|
|
private void CreateDictionaryData()
|
|
{
|
|
ILocalizationService localizationService = GetRequiredService<ILocalizationService>();
|
|
|
|
ILanguage languageNbNo = new LanguageBuilder()
|
|
.WithCultureInfo("nb-NO")
|
|
.WithCultureName("Norwegian")
|
|
.Build();
|
|
localizationService.Save(languageNbNo);
|
|
|
|
ILanguage languageEnGb = new LanguageBuilder()
|
|
.WithCultureInfo("en-GB")
|
|
.Build();
|
|
localizationService.Save(languageEnGb);
|
|
|
|
var parentItem = new DictionaryItem("Parent") {Key = Guid.Parse("28f2e02a-8c66-4fcd-85e3-8524d551c0d3")};
|
|
var parentTranslations = new List<IDictionaryTranslation>
|
|
{
|
|
new DictionaryTranslation(languageNbNo, "ForelderVerdi"),
|
|
new DictionaryTranslation(languageEnGb, "ParentValue")
|
|
};
|
|
parentItem.Translations = parentTranslations;
|
|
localizationService.Save(parentItem);
|
|
|
|
var childItem = new DictionaryItem(parentItem.Key, "Child"){Key = Guid.Parse("e7dba0a9-d517-4ba4-8e18-2764d392c611")};
|
|
var childTranslations = new List<IDictionaryTranslation>
|
|
{
|
|
new DictionaryTranslation(languageNbNo, "BarnVerdi"),
|
|
new DictionaryTranslation(languageEnGb, "ChildValue")
|
|
};
|
|
childItem.Translations = childTranslations;
|
|
localizationService.Save(childItem);
|
|
}
|
|
}
|
|
}
|