Example #1
0
        public void CanRead_DetailCollection(IEnumerable values)
        {
            XmlableItem      item = CreateOneItem <XmlableItem>(1, "item", null);
            DetailCollection dc   = item.GetDetailCollection("Details", true);

            foreach (object detail in values)
            {
                dc.Add(detail);
            }

            ContentItem readItem = Mangle(item);

            DetailCollection readCollection = readItem.GetDetailCollection("Details", false);

            Assert.IsNotNull(readCollection);
            foreach (object detail in values)
            {
                if (detail is string)
                {
                    EnumerableAssert.Contains(readCollection, HttpUtility.HtmlEncode((string)detail));
                }
                else
                {
                    EnumerableAssert.Contains(readCollection, detail);
                }
            }
        }
Example #2
0
        public void CanReReadProperties()
        {
            XmlableItem parent = CreateOneItem <XmlableItem>(1, "parent", null);
            XmlableItem item   = CreateOneItem <XmlableItem>(2, "two", parent);

            item.Title     = "xml item";
            item.ZoneName  = "danger";
            item.Created   = new DateTime(2000, 1, 1);
            item.Updated   = new DateTime(2001, 1, 1);
            item.Published = new DateTime(2002, 1, 1);
            item.Expires   = new DateTime(2003, 1, 1);
            item.SortOrder = 2;
            item.Visible   = false;
            item.SavedBy   = "cristian";

            ContentItem readItem = Mangle(item);

            Assert.IsNull(readItem.Parent);
            Assert.AreEqual("xml item", readItem.Title);
            Assert.AreEqual("danger", readItem.ZoneName);
            Assert.AreEqual(new DateTime(2000, 1, 1), readItem.Created);
            Assert.AreEqual(new DateTime(2001, 1, 1), readItem.Updated);
            Assert.AreEqual(new DateTime(2002, 1, 1), readItem.Published);
            Assert.AreEqual(new DateTime(2003, 1, 1), readItem.Expires);
            Assert.AreEqual(2, readItem.SortOrder);
            Assert.IsFalse(readItem.Visible);
            Assert.AreEqual("cristian", readItem.SavedBy);
        }
Example #3
0
        public void WriteItem_WithMultipleAttributes()
        {
            XmlableItem parent = CreateOneItem <XmlableItem>(1, "parent", null);
            XmlableItem item   = CreateOneItem <XmlableItem>(2, "two", parent);

            item.Title     = "xml item";
            item.ZoneName  = "danger";
            item.Created   = new DateTime(2000, 1, 1);
            item.Updated   = new DateTime(2000, 1, 1);
            item.Published = new DateTime(2000, 1, 1);
            item.Expires   = new DateTime(2000, 1, 1);
            item.SortOrder = 2;
            item.Visible   = false;
            item.SavedBy   = "cristian";

            XPathNavigator xpn = WriteToStreamAndNavigate(item);

            string theMillenium = new DateTime(2000, 1, 1).ToUniversalTime().ToString(System.Globalization.CultureInfo.InvariantCulture);

            Assert.AreEqual(1, xpn.Select("//item[@id='2']").Count);
            Assert.AreEqual(1, xpn.Select("//item[@parent='1']").Count);
            Assert.AreEqual(1, xpn.Select("//item[@name='two']").Count);
            Assert.AreEqual(1, xpn.Select("//item[@title='xml item']").Count);
            Assert.AreEqual(1, xpn.Select("//item[@zoneName='danger']").Count);
            Assert.AreEqual(1, xpn.Select("//item[@created='" + theMillenium + "']").Count);
            Assert.AreEqual(1, xpn.Select("//item[@updated='" + theMillenium + "']").Count);
            Assert.AreEqual(1, xpn.Select("//item[@published='" + theMillenium + "']").Count);
            Assert.AreEqual(1, xpn.Select("//item[@expires='" + theMillenium + "']").Count);
            Assert.AreEqual(1, xpn.Select("//item[@sortOrder='2']").Count);
            Assert.AreEqual(1, xpn.Select("//item[@visible='False']").Count);
            Assert.AreEqual(1, xpn.Select("//item[@savedBy='cristian']").Count);
            Assert.AreEqual(1, xpn.Select("//item[@typeName='" + string.Format("{0},{1}", typeof(XmlableItem).AssemblyQualifiedName.Split(',')) + "']").Count);
            Assert.AreEqual(1, xpn.Select("//item[@discriminator='" + typeof(XmlableItem).Name + "']").Count);
        }
Example #4
0
        public void CanExport_SimpleItem_WithFileAttachment()
        {
            XmlableItem destination = new XmlableItem();
            XmlableItem item        = CreateOneItem <XmlableItem>(1, "item", null);

            item.TextFile = "/Serialization/TestFile.txt";

            string xml  = ExportToString(item, CreateExporter(), ExportOptions.Default);
            string path = AppDomain.CurrentDomain.BaseDirectory + @"\Serialization\TestFile.txt";

            File.Delete(path);

            IImportRecord record   = ImportFromString(xml, CreateImporter());
            XmlableItem   readItem = (XmlableItem)record.RootItem;

            Assert.AreEqual(item.ID, readItem.ID);
            Assert.That(!File.Exists(path));

            CreateImporter().Import(record, destination, ImportOption.All);
            Assert.AreEqual(0, readItem.ID);
            Assert.AreEqual(item.Title, readItem.Title);
            Assert.AreEqual(item.Name, readItem.Name);
            Assert.AreEqual("/Serialization/TestFile.txt", readItem.TextFile);

            Assert.That(File.Exists(path));
            Assert.AreEqual("Just a little file.", File.ReadAllText(path));
        }
Example #5
0
        public void CanRead_WithCollectionOfLinks()
        {
            XmlableItem item = CreateOneItem <XmlableItem>(1, "item", null);

            CreateOneItem <XmlableItem>(2, "child1", item);
            CreateOneItem <XmlableItem>(3, "child2", item);
            CreateOneItem <XmlableItem>(4, "child3", item);
            CreateOneItem <XmlableItem>(5, "child4", item);
            CreateOneItem <XmlableItem>(6, "child5", item);

            foreach (ContentItem child in item.Children)
            {
                DetailCollection dc = child.GetDetailCollection("Siblings", true);
                foreach (ContentItem sibling in item.Children)
                {
                    if (sibling != child)
                    {
                        dc.Add(sibling);
                    }
                }
            }

            ContentItem readItem = Mangle(item);

            foreach (ContentItem child in readItem.Children)
            {
                Assert.IsNotNull(child.GetDetailCollection("Siblings", false));
                Assert.AreEqual(4, child.GetDetailCollection("Siblings", false).Count);
            }
        }
Example #6
0
        public void ExportedImportedItem_MaintainsSameType()
        {
            XmlableItem item = CreateOneItem <XmlableItem>(1, "item", null);

            ContentItem readItem = ExportAndImport(item, ExportOptions.Default);

            Assert.That(readItem, Is.TypeOf(typeof(XmlableItem)));
        }
        public void WriteSingleItem()
        {
            XmlableItem item = CreateOneItem <XmlableItem>(1, "one", null);

            Console.WriteLine(WriteToStreamAndReturn(item));
            //Assert.AreEqual(1, xpn.Select("//item[@id='1']").Count);
            //Assert.AreEqual(1, xpn.Select("//item[@name='one']").Count);
        }
Example #8
0
        public void WriteSingleItem()
        {
            XmlableItem item = CreateOneItem <XmlableItem>(1, "one", null);

            XPathNavigator xpn = WriteToStreamAndNavigate(item);

            Assert.AreEqual(1, xpn.Select("//item[@id='1']").Count);
            Assert.AreEqual(1, xpn.Select("//item[@name='one']").Count);
        }
Example #9
0
        public void CanRead_ItemWithUnicodeStringDetail(string text)
        {
            XmlableItem item = CreateOneItem <XmlableItem>(1, "item", null);

            item["MysticText"] = text;

            ContentItem readItem = Mangle(item);

            Assert.AreEqual(text, readItem["MysticText"]);
        }
Example #10
0
        public void CanRead_ItemWithStringDetail()
        {
            XmlableItem item = CreateOneItem <XmlableItem>(1, "item", null);

            item["Greeting"] = "Hello World!";

            ContentItem readItem = Mangle(item);

            Assert.AreEqual("Hello World!", readItem["Greeting"]);
        }
Example #11
0
        public void CanRead_ItemWithBooleanDetail()
        {
            XmlableItem item = CreateOneItem <XmlableItem>(1, "item", null);

            item["Nasty"] = true;

            ContentItem readItem = Mangle(item);

            Assert.IsTrue((bool)readItem["Nasty"]);
        }
Example #12
0
        public void ExportedImportedItem_CanContain_XDocumentProperties_CastingToString()
        {
            XmlableItem item = CreateOneItem <XmlableItem>(1, "item", null);

            item.Xml = XDocument.Parse("<root>hello</root>");

            XmlableItem readItem = ExportAndImport(item, ExportOptions.Default);

            Assert.That(readItem.Xml.ToString(), Is.EqualTo("<root>hello</root>"));
        }
Example #13
0
        public void ExportedImportedItem_KeepsBasicAttributes()
        {
            XmlableItem item = CreateOneItem <XmlableItem>(1, "item", null);

            ContentItem readItem = ExportAndImport(item, ExportOptions.Default);

            Assert.AreEqual(item.ID, readItem.ID);
            Assert.AreEqual(item.Title, readItem.Title);
            Assert.AreEqual(item.Name, readItem.Name);
        }
Example #14
0
        public void CanDeserializeAttachment()
        {
            XmlableItem item = CreateOneItem <XmlableItem>(1, "item", null);

            item.ImageUrl = "/my/special/image.jpg";

            ContentItem readItem = Mangle(item);

            Assert.IsTrue((bool)readItem["wasRead"]);
        }
Example #15
0
        public void ExportedImportedItem_KeepsState()
        {
            XmlableItem item = CreateOneItem <XmlableItem>(1, "item", null);

            item.State = ContentState.Deleted;

            ContentItem readItem = ExportAndImport(item, ExportOptions.Default);

            Assert.AreEqual(item.State, readItem.State);
        }
Example #16
0
        public void CanRead_ItemWithDoubleDetail()
        {
            XmlableItem item = CreateOneItem <XmlableItem>(1, "item", null);

            item["Temperature"] = 22.4;

            ContentItem readItem = Mangle(item);

            Assert.AreEqual(22.4, (double)readItem["Temperature"]);
        }
Example #17
0
        public void WriteItem_WithNoAuthorizedRoles()
        {
            XmlableItem item = CreateOneItem <XmlableItem>(1, "one", null);

            XPathNavigator xpn = WriteToStreamAndNavigate(item);

            XPathNodeIterator nodes = xpn.Select("//item/authorized/role");

            Assert.AreEqual(0, nodes.Count);
        }
Example #18
0
        public void CanRead_ItemWithIntegerDetail()
        {
            XmlableItem item = CreateOneItem <XmlableItem>(1, "item", null);

            item["Score"] = 4;

            ContentItem readItem = Mangle(item);

            Assert.AreEqual(4, (int)readItem["Score"]);
        }
Example #19
0
        public void ExportedImportedItem_ClearsNames_SameAsOldId()
        {
            XmlableItem item = CreateOneItem <XmlableItem>(1, "1", null);

            ContentItem readItem = ExportAndImport(item, ExportOptions.Default);

            readItem.ID = 0;

            Assert.That(readItem.Name, Is.Null);
        }
Example #20
0
        public void ExportedImportedItem_CanContain_ComplexProperties_CastingToString()
        {
            XmlableItem item = CreateOneItem <XmlableItem>(1, "item", null);

            item.Version = new Version(2, 0);

            XmlableItem readItem = ExportAndImport(item, ExportOptions.Default);

            Assert.That(readItem.Version, Is.EqualTo(new Version(2, 0)));
        }
Example #21
0
        public void ExportedImportedItem_KeepsTranslationKey()
        {
            XmlableItem item = CreateOneItem <XmlableItem>(1, "item", null);

            item.TranslationKey = 123;

            ContentItem readItem = ExportAndImport(item, ExportOptions.Default);

            Assert.AreEqual(item.TranslationKey, readItem.TranslationKey);
        }
Example #22
0
        public void CanRead_ItemWithAuthorizedRoles()
        {
            XmlableItem item = CreateOneItem <XmlableItem>(1, "item", null);

            item.AuthorizedRoles.Add(new AuthorizedRole(item, "Administrators"));

            ContentItem readItem = Mangle(item);

            Assert.AreEqual(1, readItem.AuthorizedRoles.Count);
            Assert.AreEqual("Administrators", readItem.AuthorizedRoles[0].Role);
        }
Example #23
0
        public void CanExport_SimpleItem_WithFakeAttachment_ExcludingAttachments()
        {
            XmlableItem item = CreateOneItem <XmlableItem>(1, "item", null);

            item.ImageUrl = "/hello.jpg";

            XmlableItem readItem = ExportAndImport(item, ExportOptions.ExcludeAttachments);

            Assert.AreEqual("/hello.jpg", readItem.ImageUrl);
            Assert.That(item["wasWritten"], Is.Null, "Attachment was written.");
            Assert.That(readItem["wasRead"], Is.Null, "Attachment was read.");
        }
        public void WriteItem_WithIntegerDetail()
        {
            XmlableItem item = CreateOneItem <XmlableItem>(1, "one", null);

            item["Age"] = 28;

            Console.WriteLine(WriteToStreamAndReturn(item));
            //XPathNodeIterator nodes = xpn.Select("//item/details/detail[@name='Age']");
            //nodes.MoveNext();
            //Assert.AreEqual(1, nodes.Count);
            //Assert.AreEqual(28.ToString(), nodes.Current.Value);
        }
Example #25
0
        public void WriteItem_WithAuthorizedRole()
        {
            XmlableItem item = CreateOneItem <XmlableItem>(1, "one", null);

            item.AuthorizedRoles.Add(new AuthorizedRole(item, "Administrator"));
            XPathNavigator xpn = WriteToStreamAndNavigate(item);

            XPathNodeIterator nodes = xpn.Select("//item/authorizations/role");

            Assert.AreEqual(1, nodes.Count);
            Assert.AreEqual("Administrator", nodes.Current.Value);
        }
Example #26
0
        public void CanExport_SimpleItem_WithAttachment()
        {
            XmlableItem item = CreateOneItem <XmlableItem>(1, "item", null);

            item.ImageUrl = "/hello.jpg";
            ContentItem readItem = ExportAndImport(item, ExportOptions.Default);

            Assert.AreEqual(item.ID, readItem.ID);
            Assert.AreEqual(item.Title, readItem.Title);
            Assert.AreEqual(item.Name, readItem.Name);
            Assert.AreEqual("/hello.jpg", item.ImageUrl);
        }
        public void WriteItem_WithBooleanDetail()
        {
            XmlableItem item = CreateOneItem <XmlableItem>(1, "one", null);

            item["Exists"] = true;

            Console.WriteLine(WriteToStreamAndReturn(item));
            //XPathNodeIterator nodes = xpn.Select("//item/details/detail[@name='Exists']");
            //nodes.MoveNext();
            //Assert.AreEqual(1, nodes.Count);
            //Assert.AreEqual("True", nodes.Current.Value);
        }
Example #28
0
        public void CanReReadBasicProperties()
        {
            XmlableItem    item = CreateOneItem <XmlableItem>(1, "the item", null);
            XPathNavigator sr   = SerializeAndReadOutput(item);

            ItemXmlReader reader   = CreateReader();
            ContentItem   readItem = reader.Read(sr).RootItem;

            Assert.AreNotSame(item, readItem);
            Assert.AreEqual(typeof(XmlableItem), readItem.GetContentType());
            Assert.AreEqual(1, readItem.ID);
            Assert.AreEqual("the item", readItem.Name);
        }
Example #29
0
        public void WriteItem_WithDoubleDetail()
        {
            XmlableItem item = CreateOneItem <XmlableItem>(1, "one", null);

            item["Weight"] = 73.4;

            XPathNavigator xpn = WriteToStreamAndNavigate(item);

            XPathNodeIterator nodes = xpn.Select("//item/details/detail[@name='Weight']");

            Assert.AreEqual(1, nodes.Count);
            Assert.AreEqual(73.4.ToString(), nodes.Current.Value);
        }
Example #30
0
        public void CanRead_ItemWithObjectDetail()
        {
            XmlableItem item = CreateOneItem <XmlableItem>(1, "item", null);

            item["Pair"] = new Pair("First", 2);

            ContentItem readItem = Mangle(item);

            Pair p = (Pair)readItem["Pair"];

            Assert.AreEqual("First", p.First);
            Assert.AreEqual(2, p.Second);
        }