コード例 #1
0
        public void StringValueShouldBeTrimmed()
        {
            // arrange
            using (var db = new Db {
                new ItemBuilder().WithDisplayName("  test  ").Build()
            })
            {
                var item      = db.GetItem("/sitecore/content/source");
                var indexable = new SitecoreIndexableItem(item);


                var context = new Mock <IProviderUpdateContext>();
                var index   = new IndexBuilder()
                              .WithSimpleFieldTypeMap("text")
                              .Build();
                context.Setup(t => t.Index).Returns(index);
                var sut = new AlgoliaDocumentBuilder(indexable, context.Object);

                var field = new SitecoreItemDataField(item.Fields[ItemBuilder.DispalyNameFieldName]);

                //Act
                sut.AddField(field);

                //Assert
                JObject doc = sut.Document;
                Assert.AreEqual("test", (string)doc["display name"]);
            }
        }
コード例 #2
0
        public void AddSimpleDoubleFieldTest()
        {
            // arrange
            using (var db = new Db {
                new ItemBuilder().WithPrice(123.456).Build()
            })
            {
                var item      = db.GetItem("/sitecore/content/source");
                var indexable = new SitecoreIndexableItem(item);

                var context = new Mock <IProviderUpdateContext>();
                var index   = new IndexBuilder()
                              .WithSimpleFieldTypeMap("number")
                              .WithNumericFieldReader("number")
                              .Build();
                context.Setup(t => t.Index).Returns(index);
                var sut = new AlgoliaDocumentBuilder(indexable, context.Object);

                var field = new SitecoreItemDataField(item.Fields[ItemBuilder.PriceFieldName]);

                //Act
                sut.AddField(field);

                //Assert
                JObject doc = sut.Document;
                Assert.AreEqual(123.456, (double)doc["price"]);
                Assert.AreEqual(JTokenType.Float, doc["price"].Type);
            }
        }
コード例 #3
0
        public void StandardValueTest(string defaultValue)
        {
            var templateId = new TemplateID(ID.NewID);

            using (var db = new Db
            {
                new DbTemplate("Sample", templateId)
                {
                    { "Title", defaultValue }
                }
            })
            {
                var contentRoot = db.GetItem(ItemIDs.ContentRoot);
                var item        = contentRoot.Add("Home", templateId);

                var indexable = new SitecoreIndexableItem(item);

                var context = new Mock <IProviderUpdateContext>();
                var index   = new IndexBuilder()
                              .WithSimpleFieldTypeMap("text")
                              .Build();
                context.Setup(t => t.Index).Returns(index);
                var sut = new AlgoliaDocumentBuilder(indexable, context.Object);

                var field = new SitecoreItemDataField(item.Fields["Title"]);

                //Act
                sut.AddField(field);

                //Assert
                JObject doc = sut.Document;
                Assert.AreEqual("Home", (string)doc["title"]);
            }
        }
コード例 #4
0
        public void AddDateFieldTest()
        {
            // arrange
            using (var db = new Db {
                new ItemBuilder().WithHardcodedDate().Build()
            })
            {
                var item      = db.GetItem("/sitecore/content/source");
                var indexable = new SitecoreIndexableItem(item);

                var context = new Mock <IProviderUpdateContext>();
                var index   = new IndexBuilder()
                              .WithSimpleFieldTypeMap("datetime")
                              .WithDateFieldReader("datetime")
                              .Build();
                context.Setup(t => t.Index).Returns(index);
                var sut   = new AlgoliaDocumentBuilder(indexable, context.Object);
                var field = new SitecoreItemDataField(item.Fields[ItemBuilder.DateFieldName]);

                //Act
                sut.AddField(field);

                //Assert
                JObject doc = sut.Document;
                Assert.AreEqual(1418787000, (int)doc["date"]);
                Assert.AreEqual(JTokenType.Integer, doc["date"].Type);
            }
        }
コード例 #5
0
        public void NoReferenceShouldNotFail()
        {
            //Arrange
            using (var db = new Db {
                new ItemBuilder().WithReference("droplink").Build()
            })
            {
                var item  = db.GetItem("/sitecore/content/source");
                var field = item.Fields[ItemBuilder.ReferenceFieldName];
                var args  = new SitecoreItemDataField(field);
                var sut   = new ReferenceFieldReader();

                //Act
                var actual = sut.GetFieldValue(args);

                //Assert
                actual.Should().BeNull();
            }
        }
コード例 #6
0
        public void WrongTypeShouldReturnNull(string fieldType)
        {
            //Arrange
            using (var db = new Db {
                new ItemBuilder().WithReference(fieldType).AddSubItem().Build()
            })
            {
                var item  = db.GetItem("/sitecore/content/source");
                var field = item.Fields[ItemBuilder.ReferenceFieldName];
                var args  = new SitecoreItemDataField(field);
                var sut   = new ReferenceFieldReader();

                //Act
                var actual = sut.GetFieldValue(args);

                //Assert
                actual.Should().BeNull();
            }
        }
コード例 #7
0
        public void ShouldReturnReferenceName(string fieldType)
        {
            //Arrange
            using (var db = new Db {
                new ItemBuilder().WithReference(fieldType).AddSubItem().Build()
            })
            {
                var item  = db.GetItem("/sitecore/content/source");
                var field = item.Fields[ItemBuilder.ReferenceFieldName];
                var args  = new SitecoreItemDataField(field);
                var sut   = new ReferenceFieldReader();

                //Act
                var actual = sut.GetFieldValue(args);

                //Assert
                actual.Should().BeOfType <string>();
                var result = actual as string;
                result.Should().Be("subitem");
            }
        }
コード例 #8
0
        public void GetFieldValueTests()
        {
            //Arrange
            using (var db = new Db {
                new ItemBuilder().WithGeoLocation("34.0385737,-84.56821339999999,").Build()
            })
            {
                var item  = db.GetItem("/sitecore/content/source");
                var field = item.Fields[ItemBuilder.LocationFieldName];
                var args  = new SitecoreItemDataField(field);
                var sut   = new GeoLocationFieldReader();

                //Act
                var actual = sut.GetFieldValue(args);

                //Assert
                var latLong = actual as JObject;
                Assert.AreEqual(34.0385737, (double)latLong["_geoloc"]["lat"]);
                Assert.AreEqual(-84.56821339999999, (double)latLong["_geoloc"]["lng"]);
            }
        }