Exemplo n.º 1
0
        public void ShouldFieldValuesBeSorted()
        {
            var  version = new CustomSerialization.Domain.Version();
            Guid guid1   = new Guid("f11cd74b-099b-48c6-aaed-44927164e9e7");

            version.FieldValues.Add(new FieldValue()
            {
                Id = guid1
            });
            Guid guid2 = new Guid("62e71efe-bcc8-48dc-9868-4dd2fdbfc2dc");

            version.FieldValues.Add(new FieldValue()
            {
                Id = guid2
            });
            Guid guid3 = new Guid("6aa71741-aaf7-4fef-97ad-6148e3a5c076");

            version.FieldValues.Add(new FieldValue()
            {
                Id = guid3
            });

            version.FieldValues.Select(c => c.Id).ShouldBeEquivalentTo(new[]
            {
                guid2, guid3, guid1
            }, options => options.WithStrictOrdering());
        }
        public void ShouldUpdateItemFile()
        {
            DbField sharedField = new DbField("sharedfield")
            {
                Shared = true,
                Value  = "sharedfieldvalue"
            };
            DbField fieldInEnglishV1 = new DbField("env1field")
            {
                { "en", 1, "env1fieldvalue" }
            };
            DbField fieldInEnglishV2 = new DbField("env2field")
            {
                { "en", 2, "env2fieldvalue" }
            };
            DbField fieldInDutchV1 = new DbField("nlv1field")
            {
                { "nl", 1, "nlv1fieldvalue" }
            };
            DbItem it = new DbItem("it")
            {
                sharedField,
                fieldInEnglishV1,
                fieldInEnglishV2,
                fieldInDutchV1
            };

            using (var db = new Db()
            {
                it
            })
            {
                ItemFile itemFile = new ItemFile();

                SerializationManager serializationManager = new SerializationManager();
                serializationManager.UpdateItemFile(itemFile, db.GetItem(it.ID));

                itemFile.Id.ShouldBeEquivalentTo(it.ID.ToGuid());
                itemFile.Name.ShouldBeEquivalentTo("it");
                itemFile.TemplateId.ShouldBeEquivalentTo(it.TemplateID.ToGuid());
                itemFile.BranchId.ShouldBeEquivalentTo(it.BranchId);
                itemFile.Languages.Count.ShouldBeEquivalentTo(2);
                itemFile.Languages.First().LanguageName.ShouldBeEquivalentTo("en");
                itemFile.Languages.First().Versions.Count.ShouldBeEquivalentTo(2);

                CustomSerialization.Domain.Version englishVersion1 = itemFile.Languages.First().Versions.First();
                englishVersion1.VersionNumber.ShouldBeEquivalentTo(1);
                englishVersion1.FieldValues.Should().NotBeEmpty();
                FieldValue fieldValue = englishVersion1.FieldValues.FirstOrDefault(f => f.Id == fieldInEnglishV1.ID.ToGuid());
                fieldValue.Should().NotBeNull();
                fieldValue.Value.ShouldBeEquivalentTo("env1fieldvalue");
            }
        }
        public void ShouldLoadItemIntoSitecore()
        {
            DbTemplate dbTemplate = new DbTemplate("tmpl");
            DbItem     dbItem     = new DbItem("it", ID.NewID, dbTemplate.ID);

            using (var db = new Db()
            {
                dbTemplate,
                dbItem
            })
            {
                ItemFile itemFile = new ItemFile()
                {
                    TemplateId = dbTemplate.ID.ToGuid(),
                    BranchId   = ID.NewID.ToGuid(),
                    Id         = dbItem.ID.ToGuid(),
                    Name       = "it"
                };
                itemFile.SharedFieldValues.Add(new FieldValue()
                {
                    Id    = FieldIDs.ReadOnly.ToGuid(),
                    Value = "1"
                });
                Language language = new Language()
                {
                    LanguageName = "en",
                };
                itemFile.Languages.Add(language);

                var version = new CustomSerialization.Domain.Version()
                {
                    VersionNumber = 1
                };
                language.Versions.Add(version);

                version.FieldValues.Add(new FieldValue()
                {
                    Id    = FieldIDs.Lock.ToGuid(),
                    Value = "<r />"
                });

                new SerializationManager().LoadItemIntoSitecore(itemFile, db.GetItem(dbItem.ID), false);

                Item item = db.GetItem(dbItem.ID);

                item.Should().NotBeNull();
                item[FieldIDs.ReadOnly].ShouldBeEquivalentTo("1");
                item[FieldIDs.Lock].ShouldBeEquivalentTo("<r />");
            }
        }