Example #1
0
        public void Mapping_IfOneFieldDoesNotExistInItem()
        {
            var sitecoreItem = SetupItemWithTwoFields();

            sitecoreItem
            .Setup(x => x.GetField(It.IsAny <Guid>()))
            .Returns((Guid id) =>
            {
                switch (id.ToIDString())
                {
                case IDsForModelWithTwoFields.TextValueFieldId:
                    {
                        return(FieldMockHelper.MockSitecoreField(
                                   _textValue,
                                   _source));
                    }

                default:
                    {
                        return(null);
                    }
                }
            });

            var result = sitecoreItem.Object.As <FakeModelWithTwoFields>();

            Assert.IsNotNull(result);
            Assert.AreEqual(_textValue, result.TextValue);
            Assert.AreEqual(default(int), result.IntegerValue);
        }
Example #2
0
        public void Mapping_ValidateTemplateWithTwoChildrenLists_SubItemsOfOnlyOneType()
        {
            var children = new List <SitecoreItem>
            {
                CreateItemWithTwoFields(),
                CreateItemWithTwoFields()
            };

            var sitecoreItem = new Mock <SitecoreItem>();

            sitecoreItem
            .Setup(x => x.TemplateId)
            .Returns(new Guid(IDsForModelWithTwoChildrenLists.TemplateId));
            sitecoreItem
            .Setup(x => x.GetField(It.IsAny <Guid>()))
            .Returns((Guid id) =>
            {
                switch (id.ToIDString())
                {
                case IDsForModelWithTwoChildrenLists.TextValueId:
                    {
                        return(FieldMockHelper.MockSitecoreField(_textValue, ""));
                    }

                default:
                    {
                        return(null);
                    }
                }
            });
            sitecoreItem
            .Setup(x => x.GetChildren())
            .Returns(() =>
            {
                return(children.ToList <ISitecoreItem>());
            });

            var result = sitecoreItem.Object.As <FakeModelWithTwoChildrenLists>();

            Assert.IsNotNull(result);
            Assert.AreEqual(_textValue, result.TextValue);

            Assert.IsNotNull(result.ChildrenWithTwoFields);
            Assert.AreEqual(2, result.ChildrenWithTwoFields.Count());

            foreach (var child in result.ChildrenWithTwoFields)
            {
                ValidateObjectWithTwoFields(child);
            }

            Assert.IsNotNull(result.ChildrenWithAllFields);
            Assert.AreEqual(0, result.ChildrenWithAllFields.Count());
        }
Example #3
0
        public void Mapping_ValidateModelChild()
        {
            #region Setup SitecoreItem

            var sitecoreItem = new Mock <SitecoreItem>();
            sitecoreItem
            .Setup(x => x.TemplateId)
            .Returns(new Guid(IDsForModelChild.TemplateId));
            sitecoreItem
            .Setup(x => x.GetField(It.IsAny <Guid>()))
            .Returns((Guid id) =>
            {
                switch (id.ToIDString())
                {
                case IDsForModelWithTwoFields.TextValueFieldId:
                    {
                        return(FieldMockHelper.MockSitecoreField(
                                   _textValue,
                                   _source));
                    }

                case IDsForModelWithTwoFields.IntegerValueFieldId:
                    {
                        return(FieldMockHelper.MockSitecoreField(
                                   _integerValue.ToString(),
                                   _source));
                    }

                case IDsForModelChild.BooleanValueFieldId:
                    {
                        return(FieldMockHelper.MockSitecoreField(
                                   _booleanValue.ToString(),
                                   _source));
                    }

                default:
                    {
                        return(null);
                    }
                }
            });

            #endregion

            var result = sitecoreItem.Object.As <FakeModelChild>();

            Assert.IsNotNull(result);
            Assert.AreEqual(_textValue, result.TextValue);
            Assert.AreEqual(_integerValue, result.IntegerValue);
            Assert.AreEqual(_booleanValue, result.BooleanValue);
        }
Example #4
0
        public void Mapping_IfModelDoesNotHaveFieldAttributeForAnyProperty()
        {
            var sitecoreItem = new Mock <SitecoreItem>();

            sitecoreItem
            .Setup(x => x.TemplateId)
            .Returns(new Guid(IDsForModelWithoutFieldAttribute.TemplateId));
            sitecoreItem
            .Setup(x => x.GetField(It.IsAny <Guid>()))
            .Returns((Guid id) =>
            {
                switch (id.ToIDString())
                {
                case IDsForModelWithoutFieldAttribute.TextValueFieldId:
                    {
                        return(FieldMockHelper.MockSitecoreField(
                                   _textValue,
                                   _source));
                    }

                case IDsForModelWithoutFieldAttribute.IntegerValueFieldId:
                    {
                        return(FieldMockHelper.MockSitecoreField(
                                   _integerValue.ToString(),
                                   _source));
                    }

                default:
                    {
                        return(null);
                    }
                }
            });

            var result = sitecoreItem.Object.As <FakeModelWithoutFieldAttribute>();

            Assert.IsNotNull(result);
            Assert.AreEqual(_textValue, result.TextValue);
            Assert.AreEqual(default(int), result.IntegerValue);
        }
Example #5
0
        private Mock <SitecoreItem> SetupItemWithTwoFields()
        {
            var sitecoreItem = new Mock <SitecoreItem>();

            sitecoreItem
            .Setup(x => x.TemplateId)
            .Returns(new Guid(IDsForModelWithTwoFields.TemplateId));
            sitecoreItem
            .Setup(x => x.GetField(It.IsAny <Guid>()))
            .Returns((Guid id) =>
            {
                switch (id.ToIDString())
                {
                case IDsForModelWithTwoFields.TextValueFieldId:
                    {
                        return(FieldMockHelper.MockSitecoreField(
                                   _textValue,
                                   _source));
                    }

                case IDsForModelWithTwoFields.IntegerValueFieldId:
                    {
                        return(FieldMockHelper.MockSitecoreField(
                                   _integerValue.ToString(),
                                   _source));
                    }

                default:
                    {
                        return(null);
                    }
                }
            });

            return(sitecoreItem);
        }
Example #6
0
        private Mock <SitecoreItem> SetupItemWithAllFieldTypes()
        {
            var targetItem = new Mock <SitecoreItem>();

            targetItem
            .Setup(x => x.Name)
            .Returns(_internalLinkTargetItemName);

            var internalLinkTargetItem = targetItem.Object;

            var sitecoreItem = new Mock <SitecoreItem>();

            sitecoreItem
            .Setup(x => x.Id)
            .Returns(_id);
            sitecoreItem
            .Setup(x => x.TemplateId)
            .Returns(new Guid(IDsForModelWithAllFieldTypes.TemplateId));
            sitecoreItem
            .Setup(x => x.GetField(It.IsAny <Guid>()))
            .Returns((Guid id) =>
            {
                switch (id.ToIDString())
                {
                case IDsForModelWithAllFieldTypes.TextValueFieldId:
                    {
                        return(FieldMockHelper.MockSitecoreField(
                                   _textValue,
                                   _source));
                    }

                case IDsForModelWithAllFieldTypes.IntegerValueFieldId:
                    {
                        return(FieldMockHelper.MockSitecoreField(
                                   _integerValue.ToString(),
                                   _source));
                    }

                case IDsForModelWithAllFieldTypes.BooleanValueFieldId:
                    {
                        return(FieldMockHelper.MockSitecoreField(
                                   _booleanValue ? "1" : "0",
                                   _source));
                    }

                case IDsForModelWithAllFieldTypes.DoubleValueFieldId:
                    {
                        return(FieldMockHelper.MockSitecoreField(
                                   _doubleValue.ToString(),
                                   _source));
                    }

                case IDsForModelWithAllFieldTypes.DateTimeValueFieldId:
                    {
                        return(FieldMockHelper.MockSitecoreField(
                                   _dateTimeValue.ToString(),
                                   _source));
                    }

                case IDsForModelWithAllFieldTypes.HtmlStringValueFieldId:
                    {
                        return(FieldMockHelper.MockSitecoreField(
                                   _htmlStringValue.ToString(),
                                   _source,
                                   _htmlStringValue));
                    }

                case IDsForModelWithAllFieldTypes.TextFieldId:
                    {
                        var textField = CustomFieldMockHelper.MockTextField(
                            _textFieldText,
                            _textFieldHtmlString);

                        return(FieldMockHelper.MockSitecoreField(
                                   _textFieldText,
                                   _source,
                                   textField));
                    }

                case IDsForModelWithAllFieldTypes.LinkFieldId:
                    {
                        var linkField = CustomFieldMockHelper.MockLinkField(
                            _linkFieldText,
                            _linkFieldFriendlyUrl,
                            _linkFieldValue,
                            _linkFieldHtmlString);

                        return(FieldMockHelper.MockSitecoreField(
                                   _linkFieldValue,
                                   _source,
                                   linkField));
                    }

                case IDsForModelWithAllFieldTypes.CheckboxFieldId:
                    {
                        var checkboxField = CustomFieldMockHelper.MockCheckboxField(
                            _checkboxFieldIsChecked,
                            _checkboxFieldValue,
                            _checkboxFieldHtmlString);

                        return(FieldMockHelper.MockSitecoreField(
                                   _checkboxFieldValue,
                                   _source,
                                   checkboxField));
                    }

                case IDsForModelWithAllFieldTypes.ImageFieldId:
                    {
                        var imageField = CustomFieldMockHelper.MockImageField(
                            _imageFieldUrl,
                            _imageFieldSrc,
                            _imageFieldWidth,
                            _imageFieldAlt,
                            _imageFieldValue,
                            _imageFieldHtmlString);

                        return(FieldMockHelper.MockSitecoreField(
                                   _imageFieldValue,
                                   _source,
                                   imageField));
                    }

                case IDsForModelWithAllFieldTypes.InternalLinkFieldId:
                    {
                        var internalLinkField = CustomFieldMockHelper.MockInternalLinkField(
                            _internalLinkPath,
                            _internalLinkItemUrl,
                            internalLinkTargetItem,
                            _internalLinkValue,
                            _internalLinkHtmlString);

                        return(FieldMockHelper.MockSitecoreField(
                                   _imageFieldValue,
                                   _source,
                                   internalLinkField));
                    }

                default:
                    {
                        return(null);
                    }
                }
            });

            return(sitecoreItem);
        }
Example #7
0
        public void Mapping_ValidateModelChildrenFromDifferentAssemblies()
        {
            var sitecoreItemModelChild = new Mock <SitecoreItem>();

            sitecoreItemModelChild
            .Setup(x => x.TemplateId)
            .Returns(new Guid(IDsForModelChild.TemplateId));
            sitecoreItemModelChild
            .Setup(x => x.GetField(It.IsAny <Guid>()))
            .Returns((Guid id) =>
            {
                switch (id.ToIDString())
                {
                case IDsForModelWithTwoFields.TextValueFieldId:
                    {
                        return(FieldMockHelper.MockSitecoreField(
                                   _textValue,
                                   _source));
                    }

                case IDsForModelWithTwoFields.IntegerValueFieldId:
                    {
                        return(FieldMockHelper.MockSitecoreField(
                                   _integerValue.ToString(),
                                   _source));
                    }

                case IDsForModelChild.BooleanValueFieldId:
                    {
                        return(FieldMockHelper.MockSitecoreField(
                                   _booleanValue.ToString(),
                                   _source));
                    }

                default:
                    {
                        return(null);
                    }
                }
            });

            var sitecoreItemModelChild3 = new Mock <SitecoreItem>();

            sitecoreItemModelChild3
            .Setup(x => x.TemplateId)
            .Returns(new Guid(IDsForModelChild3.TemplateId));
            sitecoreItemModelChild3
            .Setup(x => x.GetField(It.IsAny <Guid>()))
            .Returns((Guid id) =>
            {
                switch (id.ToIDString())
                {
                case IDsForModelWithTwoFields.TextValueFieldId:
                    {
                        return(FieldMockHelper.MockSitecoreField(
                                   _textValue,
                                   _source));
                    }

                case IDsForModelWithTwoFields.IntegerValueFieldId:
                    {
                        return(FieldMockHelper.MockSitecoreField(
                                   _integerValue.ToString(),
                                   _source));
                    }

                case IDsForModelChild3.BooleanValueFieldId:
                    {
                        return(FieldMockHelper.MockSitecoreField(
                                   _booleanValue.ToString(),
                                   _source));
                    }

                default:
                    {
                        return(null);
                    }
                }
            });

            var sitecoreItemModelChildAnotherAssembly = new Mock <SitecoreItem>();

            sitecoreItemModelChildAnotherAssembly
            .Setup(x => x.TemplateId)
            .Returns(new Guid(IDsForModelChildAnotherAssembly.TemplateId));
            sitecoreItemModelChildAnotherAssembly
            .Setup(x => x.GetField(It.IsAny <Guid>()))
            .Returns((Guid id) =>
            {
                switch (id.ToIDString())
                {
                case IDsForModelWithTwoFields.TextValueFieldId:
                    {
                        return(FieldMockHelper.MockSitecoreField(
                                   _textValue,
                                   _source));
                    }

                case IDsForModelWithTwoFields.IntegerValueFieldId:
                    {
                        return(FieldMockHelper.MockSitecoreField(
                                   _integerValue.ToString(),
                                   _source));
                    }

                case IDsForModelChildAnotherAssembly.BooleanValueFieldId:
                    {
                        return(FieldMockHelper.MockSitecoreField(
                                   _booleanValue.ToString(),
                                   _source));
                    }

                default:
                    {
                        return(null);
                    }
                }
            });

            var children = new List <SitecoreItem>
            {
                CreateItemWithTwoFields(),
                CreateItemWithAllFieldTypes(),
                sitecoreItemModelChild.Object,
                sitecoreItemModelChildAnotherAssembly.Object,
                sitecoreItemModelChild3.Object
            };

            var sitecoreItem = new Mock <SitecoreItem>();

            sitecoreItem
            .Setup(x => x.TemplateId)
            .Returns(new Guid(IDsForModelWithChildrenFromDiffAssemblies.TemplateId));
            sitecoreItem
            .Setup(x => x.GetField(It.IsAny <Guid>()))
            .Returns((Guid id) =>
            {
                switch (id.ToIDString())
                {
                case IDsForModelWithChildrenFromDiffAssemblies.TextValueFieldId:
                    {
                        return(FieldMockHelper.MockSitecoreField(
                                   _textValue,
                                   _source));
                    }

                default:
                    {
                        return(null);
                    }
                }
            });
            sitecoreItem
            .Setup(x => x.GetChildren())
            .Returns(() =>
            {
                return(children.ToList <ISitecoreItem>());
            });

            var result = sitecoreItem.Object.As <FakeModelWithChildrenFromDiffAssemblies>();

            Assert.IsNotNull(result);
            Assert.AreEqual(_textValue, result.TextValue);

            Assert.IsNotNull(result.Children);
            Assert.AreEqual(3, result.Children.Count());
            Assert.IsTrue(result.Children.Any(x => x.GetType() == typeof(FakeModelChild)));
            Assert.IsTrue(result.Children.Any(x => x.GetType() == typeof(FakeModelChild3)));
            Assert.IsTrue(result.Children.Any(x => x.GetType() == typeof(FakeModelWithTwoFields)));
        }
Example #8
0
        public void Mapping_ValidateModelWithNamedAttributeParameters()
        {
            #region Setup SitecoreItem

            var textField    = FieldMockHelper.MockSitecoreField(_textValue, _source);
            var integerField = FieldMockHelper.MockSitecoreField(_integerValue.ToString(), _source);

            var sitecoreItem = new Mock <SitecoreItem>();
            sitecoreItem
            .Setup(x => x.TemplateId)
            .Returns(new Guid(IDsForModelWithNamedAttributeParameters.TemplateId));
            sitecoreItem
            .Setup(x => x.TemplateName)
            .Returns(IDsForModelWithNamedAttributeParameters.TemplateName);
            sitecoreItem
            .Setup(x => x.GetField(It.IsAny <Guid>()))
            .Returns((Guid id) =>
            {
                switch (id.ToIDString())
                {
                case IDsForModelWithNamedAttributeParameters.TextValueFieldId:
                    {
                        return(textField);
                    }

                case IDsForModelWithNamedAttributeParameters.IntegerValueFieldId:
                    {
                        return(integerField);
                    }

                default:
                    {
                        return(null);
                    }
                }
            });
            sitecoreItem
            .Setup(x => x.GetField(It.IsAny <string>()))
            .Returns((string fieldName) =>
            {
                switch (fieldName)
                {
                case IDsForModelWithNamedAttributeParameters.TextValueFieldName:
                    {
                        return(textField);
                    }

                case IDsForModelWithNamedAttributeParameters.IntegerValueFieldName:
                    {
                        return(integerField);
                    }

                default:
                    {
                        return(null);
                    }
                }
            });
            sitecoreItem
            .Setup(x => x.GetField(It.IsAny <int>()))
            .Returns((int fieldIndex) =>
            {
                switch (fieldIndex)
                {
                case IDsForModelWithNamedAttributeParameters.TextValueFieldIndex:
                    {
                        return(textField);
                    }

                case IDsForModelWithNamedAttributeParameters.IntegerValueFieldIndex:
                    {
                        return(integerField);
                    }

                default:
                    {
                        return(null);
                    }
                }
            });

            #endregion

            var result = sitecoreItem.Object.As <FakeModelWithNamedAttributeParameters>();

            Assert.IsNotNull(result);
            Assert.AreEqual(_textValue, result.TextValue);
            Assert.AreEqual(_integerValue, result.IntegerValue);
        }