コード例 #1
0
        public void GetField_FieldRandomText_ReturnsNull()
        {
            //Assign
            var item     = Database.GetItem("/sitecore/content/Tests/DataMappers/SitecoreFieldTypeMapper/GetField");
            var targetId = "some random text";
            var mapper   = new SitecoreFieldTypeMapper();
            var field    = item.Fields[FieldName];
            var config   = new SitecoreFieldConfiguration();

            config.PropertyInfo = typeof(StubContaining).GetProperty("PropertyTrue");

            var context = Context.Create(Utilities.CreateStandardResolver());

            context.Load(new SitecoreAttributeConfigurationLoader("Glass.Mapper.Sc.Integration"));
            var service = new SitecoreService(Database, context);


            var scContext = new SitecoreDataMappingContext(null, item, service);

            using (new ItemEditing(item, true))
            {
                field.Value = targetId.ToString();
            }

            //Act
            var result = mapper.GetField(field, config, scContext) as Stub;

            //Assert
            Assert.IsNull(result);
        }
コード例 #2
0
        public void SetField_ClassContainsNoIdProperty_ThrowsException()
        {
            //Assign
            var templateId = Guid.Parse("{BB01B0A5-A3F0-410E-8A6D-07FF3A1E78C3}");

            using (Db database = new Db
            {
                new DbTemplate(new ID(templateId))
                {
                    new DbField("Field")
                    {
                        Type = "text"
                    }
                },

                new Sitecore.FakeDb.DbItem("Target", ID.NewID, new ID(templateId))
            })
            {
                var item     = database.GetItem("/sitecore/content/Target");
                var targetId = Guid.Parse("{BB01B0A5-A3F0-410E-8A6D-07FF3A1E78C3}");
                var mapper   = new SitecoreFieldTypeMapper();
                var field    = item.Fields["Field"];
                var options  = new GetItemOptionsParams();

                var config = new SitecoreFieldConfiguration();
                config.PropertyInfo = typeof(StubContaining).GetProperty("PropertyNoId");

                var context = Context.Create(Utilities.CreateStandardResolver());
                context.Load(new OnDemandLoader <SitecoreTypeConfiguration>(typeof(StubContaining)));

                var service = new SitecoreService(database.Database, context);

                var propertyValue = new StubNoId();

                var scContext = new SitecoreDataMappingContext(null, item, service, options);

                using (new ItemEditing(item, true))
                {
                    field.Value = string.Empty;
                }

                //Act
                using (new ItemEditing(item, true))
                {
                    Assert.Throws <NotSupportedException>(() =>
                    {
                        mapper.SetField(field, propertyValue, config,
                                        scContext);
                    });
                }

                //Assert
                Assert.AreEqual(string.Empty, item["Field"]);
            }
        }
コード例 #3
0
        public void SetField_ContextNull_ThrowsException()
        {
            //Assign
            var templateId = Guid.Parse("{BB01B0A5-A3F0-410E-8A6D-07FF3A1E78C3}");

            using (Db database = new Db
            {
                new DbTemplate(new ID(templateId))
                {
                    new DbField("Field")
                    {
                        Type = "text"
                    }
                },

                new Sitecore.FakeDb.DbItem("Target", ID.NewID, new ID(templateId))
            })
            {
                var item   = database.GetItem("/sitecore/content/Target");
                var mapper = new SitecoreFieldTypeMapper();
                var field  = item.Fields["Field"];

                var config = new SitecoreFieldConfiguration();
                config.PropertyInfo = typeof(StubContaining).GetProperty("PropertyNoId");

                var propertyValue = new StubNoId();

                using (new ItemEditing(item, true))
                {
                    field.Value = string.Empty;
                }

                //Act
                using (new ItemEditing(item, true))
                {
                    using (new ItemEditing(item, true))
                    {
                        Assert.Throws <ArgumentNullException>(() =>
                        {
                            mapper.SetField(field, propertyValue, config, null);
                        });
                    }
                }

                //Assert
                Assert.AreEqual(string.Empty, item["Field"]);
            }
        }
コード例 #4
0
        public void GetField_FieldEmpty_ReturnsNull()
        {
            //Assign

            var templateId = Guid.Parse("{BB01B0A5-A3F0-410E-8A6D-07FF3A1E78C3}");

            using (Db database = new Db
            {
                new DbTemplate(new ID(templateId))
                {
                    new DbField("Field")
                    {
                        Type = "text"
                    }
                },

                new Sitecore.FakeDb.DbItem("Target", ID.NewID, new ID(templateId))
            })
            {
                var item     = database.GetItem("/sitecore/content/Target");
                var targetId = string.Empty;
                var mapper   = new SitecoreFieldTypeMapper();
                var field    = item.Fields["Field"];
                var config   = new SitecoreFieldConfiguration();
                var options  = new GetItemOptionsParams();

                config.PropertyInfo = typeof(StubContaining).GetProperty("PropertyTrue");

                var context = Context.Create(Utilities.CreateStandardResolver());
                context.Load(new OnDemandLoader <SitecoreTypeConfiguration>(typeof(StubContaining)));

                var service = new SitecoreService(database.Database, context);


                var scContext = new SitecoreDataMappingContext(null, item, service, options);

                using (new ItemEditing(item, true))
                {
                    field.Value = targetId.ToString();
                }

                //Act
                var result = mapper.GetField(field, config, scContext) as Stub;

                //Assert
                Assert.IsNull(result);
            }
        }
コード例 #5
0
        public void CanHandle_TypeHasNotBeenLoadedByGlass_ReturnsTrueOnDemand()
        {
            //Assign
            var mapper = new SitecoreFieldTypeMapper();
            var config = new SitecoreFieldConfiguration();

            config.PropertyInfo = typeof(StubContaining).GetProperty("PropertyFalse");
            var context = Context.Create(Utilities.CreateStandardResolver());

            context.Load(new SitecoreAttributeConfigurationLoader("Glass.Mapper.Sc.Integration"));

            //Act
            var result = mapper.CanHandle(config, context);

            //Assert
            Assert.IsTrue(result);
        }
コード例 #6
0
        public void CanHandle_TypeHasBeenLoadedByGlass_ReturnsTrue()
        {
            //Assign
            var mapper = new SitecoreFieldTypeMapper();
            var config = new SitecoreFieldConfiguration();

            config.PropertyInfo = typeof(StubContaining).GetProperty("PropertyTrue");
            var context = Context.Create(Utilities.CreateStandardResolver());

            context.Load(new OnDemandLoader <SitecoreTypeConfiguration>(typeof(StubContaining)));

            //Act
            var result = mapper.CanHandle(config, context);

            //Assert
            Assert.IsTrue(result);
        }