コード例 #1
0
        public void GetReportQueryNode_ValuesNodeNotEmpty_ReturnExpectedContent()
        {
            // Arrange
            var expectedText = $"({DummyString}Text = '{DummyString}' )";
            var spWeb        = new ShimSPWeb().Instance;
            var xmlNode      = new ShimXmlNode(new XmlDocument()).Instance;
            var spList       = new ShimSPList
            {
                FieldsGet = () => new ShimSPFieldCollection
                {
                    GetFieldByInternalNameString = name => new ShimSPField
                    {
                        TypeGet = () => SPFieldType.User
                    }
                }
            }.Instance;
            var privateType = new PrivateType(typeof(ReportingData));

            ShimXmlDocument.AllInstances.NameGet            = _ => "Contains";
            ShimXmlNode.AllInstances.SelectSingleNodeString =
                (_, nodeName) => new ShimXmlNode(new XmlDocument())
            {
                AttributesGet = () => new ShimXmlAttributeCollection
                {
                    ItemOfGetString = attrName => new ShimXmlAttribute
                    {
                        ValueGet = () => "Dummy"
                    }
                }
            }.Instance;
            ShimXmlNode.AllInstances.SelectNodesString = (_, name) =>
            {
                var document = new XmlDocument();
                var element  = document.CreateElement("Dummy");
                element.InnerText = "Dummy";
                document.AppendChild(element);
                return(document.ChildNodes);
            };
            var args = new object[] { spWeb, xmlNode, spList };

            // Act
            var result = privateType.InvokeStatic(GetReportQueryNodeMethodName, args) as string;

            // Assert
            result.ShouldSatisfyAllConditions(
                () => result.ShouldNotBeNullOrEmpty(),
                () => result.ShouldBe(expectedText));
        }
コード例 #2
0
        public void GetReportQueryNode_FieldTypeUser()
        {
            // Arrange
            var expectedText = $"{DummyString}ID Is Null";
            var spWeb        = new ShimSPWeb
            {
                CurrentUserGet = () => new ShimSPUser
                {
                    IDGet = () => 1
                }
            }.Instance;
            var xmlNode = new ShimXmlNode(new XmlDocument()).Instance;
            var spList  = new ShimSPList
            {
                FieldsGet = () => new ShimSPFieldCollection
                {
                    GetFieldByInternalNameString = name => new ShimSPFieldLookup
                    {
                        LookupListGet  = () => Guid.NewGuid().ToString(),
                        LookupFieldGet = () => DummyString
                    }
                }
            }.Instance;

            ShimSPField.AllInstances.TypeGet                = _ => SPFieldType.User;
            ShimXmlDocument.AllInstances.NameGet            = _ => "IsNull";
            ShimXmlNode.AllInstances.SelectSingleNodeString = (_, nodeName) =>
            {
                if (nodeName == ValuesNodeName || nodeName == UserIdNodeName)
                {
                    return(null);
                }
                else
                {
                    return(GetDefaultXmlNode("1", DummyString));
                }
            };
            var args = new object[] { spWeb, xmlNode, spList };

            // Act
            var result = _privateType.InvokeStatic(GetReportQueryNodeMethodName, args) as string;

            // Assert
            result.ShouldSatisfyAllConditions(
                () => result.ShouldNotBeNullOrEmpty(),
                () => result.ShouldContain(expectedText));
        }
コード例 #3
0
        public void GetReportQueryNode_FieldTypeCalculated()
        {
            // Arrange
            var expectedText = $"{DummyString} Like '%100%'";
            var spWeb        = new ShimSPWeb
            {
                CurrentUserGet = () => new ShimSPUser
                {
                    IDGet = () => 1
                }
            }.Instance;
            var xmlNode = new ShimXmlNode(new XmlDocument()).Instance;
            var spList  = new ShimSPList
            {
                FieldsGet = () => new ShimSPFieldCollection
                {
                    GetFieldByInternalNameString = name => new ShimSPFieldCalculated
                    {
                        ShowAsPercentageGet = () => true
                    }
                }
            }.Instance;

            ShimSPField.AllInstances.TypeGet                = _ => SPFieldType.Calculated;
            ShimXmlDocument.AllInstances.NameGet            = _ => "Contains";
            ShimXmlNode.AllInstances.SelectSingleNodeString = (_, nodeName) =>
            {
                if (nodeName == "Values")
                {
                    return(null);
                }
                else
                {
                    return(GetDefaultXmlNode(DummyString, DummyString));
                }
            };

            var args = new object[] { spWeb, xmlNode, spList };

            // Act
            var result = _privateType.InvokeStatic(GetReportQueryNodeMethodName, args) as string;

            // Assert
            result.ShouldSatisfyAllConditions(
                () => result.ShouldNotBeNullOrEmpty(),
                () => result.ShouldBe(expectedText));
        }
コード例 #4
0
        public void GetReportQueryNode_FieldTypeDateTime()
        {
            // Arrange
            var expectedText = $"{DummyString} Like '{DateTime.Now.ToString("yyyy-MM-dd")}";
            var spWeb        = new ShimSPWeb
            {
                CurrentUserGet = () => new ShimSPUser
                {
                    IDGet = () => 1
                }
            }.Instance;
            var xmlNode = new ShimXmlNode(new XmlDocument()).Instance;
            var spList  = new ShimSPList
            {
                FieldsGet = () => new ShimSPFieldCollection
                {
                    GetFieldByInternalNameString = name => new ShimSPFieldCalculated
                    {
                        ShowAsPercentageGet = () => true
                    }
                }
            }.Instance;

            ShimSPField.AllInstances.TypeGet                = _ => SPFieldType.DateTime;
            ShimXmlDocument.AllInstances.NameGet            = _ => "BeginsWith";
            ShimXmlNode.AllInstances.SelectSingleNodeString = (_, nodeName) =>
            {
                if (nodeName == ValuesNodeName || nodeName == UserIdNodeName)
                {
                    return(null);
                }
                else
                {
                    return(GetDefaultXmlNode(string.Empty, DummyString, "<Today></Today>"));
                }
            };
            var args = new object[] { spWeb, xmlNode, spList };

            // Act
            var result = _privateType.InvokeStatic(GetReportQueryNodeMethodName, args) as string;

            // Assert
            result.ShouldSatisfyAllConditions(
                () => result.ShouldNotBeNullOrEmpty(),
                () => result.ShouldContain(expectedText));
        }
コード例 #5
0
        public void GetReportQueryNode_AndOrOperatorsWithEmptyParams_ReturnsExpectedValue()
        {
            // Arrange
            const string ExpectedValue = "(( Or ) And )";
            var          nodeAnd       = new ShimXmlDocument()
            {
                NameGet = () => "And"
            };
            var nodeOr = new ShimXmlDocument()
            {
                NameGet = () => "Or"
            };
            var spWeb   = new ShimSPWeb().Instance;
            var spList  = new ShimSPList().Instance;
            var xmlNode = new ShimXmlNode(nodeAnd)
            {
                FirstChildGet = () => new ShimXmlNode(nodeOr)
            }.Instance;

            ShimXmlNode.AllInstances.FirstChildGet          = _ => new ShimXmlNode(new XmlDocument());
            ShimXmlNode.AllInstances.NextSiblingGet         = _ => new ShimXmlNode(new XmlDocument());
            ShimXmlNode.AllInstances.SelectSingleNodeString = (_, nodeName) => new ShimXmlNode(new XmlDocument())
            {
                AttributesGet = () => new ShimXmlAttributeCollection
                {
                    ItemOfGetString = attrName => new ShimXmlAttribute
                    {
                        ValueGet = () => "="
                    }
                }
            }.Instance;
            var args = new object[] { spWeb, xmlNode, spList };

            // Act
            var result = _privateType.InvokeStatic(GetReportQueryNodeMethodName, args) as string;

            // Assert
            result.ShouldSatisfyAllConditions(
                () => result.ShouldNotBeNullOrEmpty(),
                () => result.ShouldContain(ExpectedValue));
        }
コード例 #6
0
        public void GetReportQueryNode_NodeNameIsNull_ReturnExpectedContent()
        {
            // Arrange
            var expectedText = $"{DummyString} is null";
            var spWeb        = new ShimSPWeb().Instance;
            var xmlNode      = new ShimXmlNode(new XmlDocument()).Instance;
            var spList       = new ShimSPList
            {
                FieldsGet = () => new ShimSPFieldCollection
                {
                    GetFieldByInternalNameString = name => new ShimSPField
                    {
                        TypeGet = () => SPFieldType.Text
                    }
                }
            }.Instance;

            ShimXmlDocument.AllInstances.NameGet            = _ => "IsNull";
            ShimXmlNode.AllInstances.SelectSingleNodeString = (_, nodeName) => new ShimXmlNode(new XmlDocument())
            {
                AttributesGet = () => new ShimXmlAttributeCollection
                {
                    ItemOfGetString = attrName => new ShimXmlAttribute
                    {
                        ValueGet = () => DummyString
                    }
                }
            }.Instance;
            var args = new object[] { spWeb, xmlNode, spList };

            // Act
            var result = _privateType.InvokeStatic(GetReportQueryNodeMethodName, args) as string;

            // Assert
            result.ShouldSatisfyAllConditions(
                () => result.ShouldNotBeNullOrEmpty(),
                () => result.ShouldBe(expectedText));
        }