From ca1fe5ff2a6e021eed10e397cb19ccbecdaa2488 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Tue, 23 Jul 2013 16:13:20 +0200 Subject: [PATCH] Unit test for: U4-2514 Checkboxlist prevalues in packages broken --- .../CheckboxList-Content-Package.xml | 76 +++++++++++++++++++ .../Importing/ImportResources.Designer.cs | 30 +++++++- .../Services/Importing/ImportResources.resx | 3 + .../Services/Importing/PackageImportTests.cs | 41 +++++++++- src/Umbraco.Tests/Umbraco.Tests.csproj | 3 + 5 files changed, 151 insertions(+), 2 deletions(-) create mode 100644 src/Umbraco.Tests/Services/Importing/CheckboxList-Content-Package.xml diff --git a/src/Umbraco.Tests/Services/Importing/CheckboxList-Content-Package.xml b/src/Umbraco.Tests/Services/Importing/CheckboxList-Content-Package.xml new file mode 100644 index 0000000000..a0f4448393 --- /dev/null +++ b/src/Umbraco.Tests/Services/Importing/CheckboxList-Content-Package.xml @@ -0,0 +1,76 @@ + + + + + + CheckboxListTest + 1 + MIT license + 1 + + 3 + 0 + 0 + + + + 1 + 1 + + + + + + + + + + + + + + NewType + NewType + .sprTreeFolder + folder.png + + + True + + + + NewType + + + + + testList + testList + b4471851-82b6-4c75-afa4-39fa9c6a75e9 + 8dacee1a-1bbd-46c0-b07f-8ffd49fcca7c + + + False + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Umbraco.Tests/Services/Importing/ImportResources.Designer.cs b/src/Umbraco.Tests/Services/Importing/ImportResources.Designer.cs index f4874b86f2..9b0017ff5e 100644 --- a/src/Umbraco.Tests/Services/Importing/ImportResources.Designer.cs +++ b/src/Umbraco.Tests/Services/Importing/ImportResources.Designer.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.18033 +// Runtime Version:4.0.30319.18213 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -60,6 +60,34 @@ namespace Umbraco.Tests.Services.Importing { } } + /// + /// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?> + ///<umbPackage> + /// <files /> + /// <info> + /// <package> + /// <name>CheckboxListTest</name> + /// <version>1</version> + /// <license url="http://www.opensource.org/licenses/mit-license.php">MIT license</license> + /// <url>1</url> + /// <requirements> + /// <major>3</major> + /// <minor>0</minor> + /// <patch>0</patch> + /// </requirements> + /// </package> + /// <author> + /// <name>1</name> + /// <website>1</website> + /// </author> + /// <r [rest of string was truncated]";. + /// + internal static string CheckboxList_Content_Package { + get { + return ResourceManager.GetString("CheckboxList_Content_Package", resourceCulture); + } + } + /// /// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?> ///<umbPackage> diff --git a/src/Umbraco.Tests/Services/Importing/ImportResources.resx b/src/Umbraco.Tests/Services/Importing/ImportResources.resx index b717a9600d..26f4589221 100644 --- a/src/Umbraco.Tests/Services/Importing/ImportResources.resx +++ b/src/Umbraco.Tests/Services/Importing/ImportResources.resx @@ -139,4 +139,7 @@ templateonly-updated-package.xml;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + + checkboxlist-content-package.xml;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + \ No newline at end of file diff --git a/src/Umbraco.Tests/Services/Importing/PackageImportTests.cs b/src/Umbraco.Tests/Services/Importing/PackageImportTests.cs index 1fbfa01067..fa11f2aa78 100644 --- a/src/Umbraco.Tests/Services/Importing/PackageImportTests.cs +++ b/src/Umbraco.Tests/Services/Importing/PackageImportTests.cs @@ -1,6 +1,9 @@ -using System.Linq; +using System.Collections.Generic; +using System.Linq; using System.Xml.Linq; using NUnit.Framework; +using Umbraco.Core.Models.Rdbms; +using umbraco.editorControls.MultiNodeTreePicker; namespace Umbraco.Tests.Services.Importing { @@ -213,6 +216,42 @@ namespace Umbraco.Tests.Services.Importing Assert.That(contents.Count(), Is.EqualTo(numberOfDocs)); } + [Test] + public void PackagingService_Can_Import_CheckboxList_Content_Package_Xml() + { + // Arrange + string strXml = ImportResources.CheckboxList_Content_Package; + var xml = XElement.Parse(strXml); + var dataTypeElement = xml.Descendants("DataTypes").First(); + var docTypesElement = xml.Descendants("DocumentTypes").First(); + var element = xml.Descendants("DocumentSet").First(); + var packagingService = ServiceContext.PackagingService; + + // Act + var dataTypeDefinitions = packagingService.ImportDataTypeDefinitions(dataTypeElement); + var contentTypes = packagingService.ImportContentTypes(docTypesElement); + var contents = packagingService.ImportContent(element); + var numberOfDocs = (from doc in element.Descendants() + where (string) doc.Attribute("isDoc") == "" + select doc).Count(); + + var database = ApplicationContext.DatabaseContext.Database; + var dtos = database.Fetch("WHERE datatypeNodeId = @Id", new { dataTypeDefinitions.First().Id }); + int preValueId; + int.TryParse(contents.First().GetValue("testList"), out preValueId); + var preValueKey = dtos.SingleOrDefault(x => x.Id == preValueId); + + // Assert + Assert.That(dataTypeDefinitions, Is.Not.Null); + Assert.That(dataTypeDefinitions.Any(), Is.True); + Assert.That(contents, Is.Not.Null); + Assert.That(contentTypes.Any(), Is.True); + Assert.That(contents.Any(), Is.True); + Assert.That(contents.Count(), Is.EqualTo(numberOfDocs)); + Assert.That(preValueKey, Is.Not.Null); + Assert.That(preValueKey.Value, Is.EqualTo("test3")); + } + [Test] public void PackagingService_Can_Import_Templates_Package_Xml_With_Invalid_Master() { diff --git a/src/Umbraco.Tests/Umbraco.Tests.csproj b/src/Umbraco.Tests/Umbraco.Tests.csproj index 37b33cf460..d9b9b857b1 100644 --- a/src/Umbraco.Tests/Umbraco.Tests.csproj +++ b/src/Umbraco.Tests/Umbraco.Tests.csproj @@ -506,6 +506,9 @@ + + Designer +