public void Can_Import_Content_Package_Xml()
        {
            // Arrange
            string strXml          = ImportResources.StandardMvc_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    packageDocument = CompiledPackageDocument.Create(element);

            // Act
            var dataTypeDefinitions  = PackageDataInstallation.ImportDataTypes(dataTypeElement.Elements("DataType").ToList(), 0);
            var contentTypes         = PackageDataInstallation.ImportDocumentTypes(docTypesElement.Elements("DocumentType"), 0);
            var importedContentTypes = contentTypes.ToDictionary(x => x.Alias, x => x);
            var contents             = PackageDataInstallation.ImportContent(packageDocument, -1, importedContentTypes, 0);
            var numberOfDocs         = (from doc in element.Descendants()
                                        where (string)doc.Attribute("isDoc") == ""
                                        select doc).Count();

            // Assert
            Assert.That(contents, Is.Not.Null);
            Assert.That(dataTypeDefinitions.Any(), Is.True);
            Assert.That(contentTypes.Any(), Is.True);
            Assert.That(contents.Any(), Is.True);
            Assert.That(contents.Count(), Is.EqualTo(numberOfDocs));
        }
        private void AssertCheckBoxListTests(string strXml)
        {
            // Arrange
            var xml = XElement.Parse(strXml);
            var dataTypeElement = xml.Descendants("DataTypes").First();
            var docTypesElement = xml.Descendants("DocumentTypes").First();
            var element = xml.Descendants("DocumentSet").First();
            var packageDocument = CompiledPackageDocument.Create(element);

            // Act
            var dataTypeDefinitions = PackageDataInstallation.ImportDataTypes(dataTypeElement.Elements("DataType").ToList(), 0);
            var contentTypes = PackageDataInstallation.ImportDocumentTypes(docTypesElement.Elements("DocumentType"), 0);
            var importedContentTypes = contentTypes.ToDictionary(x => x.Alias, x => x);
            var contents = PackageDataInstallation.ImportContent(packageDocument, -1, importedContentTypes, 0);
            var numberOfDocs = (from doc in element.Descendants()
                                where (string)doc.Attribute("isDoc") == ""
                                select doc).Count();

            string configuration;
            using (var scope = ScopeProvider.CreateScope())
            {
                var dtos = scope.Database.Fetch<DataTypeDto>("WHERE nodeId = @Id", new { dataTypeDefinitions.First().Id });
                configuration = dtos.Single().Configuration;
            }

            // Assert
            Assert.That(dataTypeDefinitions, Is.Not.Null);
            Assert.That(dataTypeDefinitions.Any(), Is.True);
            Assert.AreEqual(Constants.PropertyEditors.Aliases.CheckBoxList, dataTypeDefinitions.First().EditorAlias);
            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.AreEqual("{\"items\":[{\"id\":59,\"value\":\"test\"},{\"id\":60,\"value\":\"test3\"},{\"id\":61,\"value\":\"test2\"}]}", configuration);
        }