Пример #1
0
        public void NodeQuery_Autofilter()
        {
            var queryText  = @"<SearchExpression xmlns=""http://schemas.sensenet.com/SenseNet/ContentRepository/SearchExpression"">
                  <Or>
                    <String op=""Contains"" property=""Path"">/<currentuser property=""Name""/>/</String>
                  </Or>
                </SearchExpression>";
            var filterText = @"<SearchExpression xmlns=""http://schemas.sensenet.com/SenseNet/ContentRepository/SearchExpression"">
                  <And>
                    <Not>
                        <String op=""StartWith"" property=""Path"">/Root/Trash</String>
                    </Not>
                  </And>
                </SearchExpression>";
            var expected   = @"<SearchExpression xmlns=""http://schemas.sensenet.com/SenseNet/ContentRepository/SearchExpression"">
                  <And>
                    <Not>
                        <String op=""StartWith"" property=""Path"">/Root/Trash</String>
                    </Not>
                    <Or>
                      <String op=""Contains"" property=""Path"">/<currentuser property=""Name""/>/</String>
                    </Or>
                  </And>
                </SearchExpression>";

            var extended = ContentQuery.AddFilterToNodeQuery(queryText, filterText);

            Assert.IsTrue(
                expected.Replace(" ", "").Replace("\t", "").Replace("\r", "").Replace("\n", "")
                ==
                extended.Replace(" ", "").Replace("\t", "").Replace("\r", "").Replace("\n", "")
                );
        }