예제 #1
0
        public void Accessor_Protected_Type_Method1_OnAbstract()
        {
            var typeAcc = new TypeAccessor(typeof(AbstractionForAccessorTest));

            var actualValue = (string)typeAcc.InvokeStatic("ProtectedStaticMethod1", '@', 7);

            Assert.AreEqual("ProtectedStaticMethod1@@@@@@@", actualValue);

            actualValue = (string)typeAcc.InvokeStatic("ProtectedStaticMethod1",
                                                       new[] { typeof(char), typeof(int) },
                                                       new object[] { '*', 3 });

            Assert.AreEqual("ProtectedStaticMethod1***", actualValue);
        }
예제 #2
0
        public void Accessor_Protected_Type_Method2_OnImplementation()
        {
            var typeAcc = new TypeAccessor(typeof(AccessorTestObject));

            var actualValue = (string)typeAcc.InvokeStatic("ProtectedStaticMethod2", '@', 7);

            Assert.AreEqual("ProtectedOverriddenStaticMethod2@@@@@@@", actualValue);

            actualValue = (string)typeAcc.InvokeStatic("ProtectedStaticMethod2",
                                                       new[] { typeof(char), typeof(int) },
                                                       new object[] { '*', 3 });

            Assert.AreEqual("ProtectedOverriddenStaticMethod2***", actualValue);
        }
예제 #3
0
        public void Accessor_Public_Type_Method()
        {
            var typeAcc = new TypeAccessor(typeof(AccessorTestObject));

            var actualValue = (string)typeAcc.InvokeStatic("StaticPublicMethod", '*', 5);

            Assert.AreEqual("StaticPublicMethod*****", actualValue);

            actualValue = (string)typeAcc.InvokeStatic("StaticPublicMethod",
                                                       new[] { typeof(char), typeof(int) },
                                                       new object[] { '*', 3 });

            Assert.AreEqual("StaticPublicMethod***", actualValue);
        }
예제 #4
0
        /* ============================================================================= helpers */

        private Node LoadNode(NodeHead head, VersionNumber version)
        {
            var nodeAcc = new TypeAccessor(typeof(Node));
            var node    = (Node)nodeAcc.InvokeStatic("LoadNode", head, version);

            return(node);
        }
예제 #5
0
        private List <Node> LoadNodes(IEnumerable <NodeHead> heads, VersionNumber version)
        {
            var nodeAcc = new TypeAccessor(typeof(Node));
            var nodes   = (List <Node>)nodeAcc.InvokeStatic("LoadNodes", heads, version);

            return(nodes);
        }
예제 #6
0
        public void Sharing_Query_Rewriting_CombineValues3()
        {
            var input1 = new List <List <string> >
            {
                new List <string> {
                    "a", "b"
                },
                new List <string> {
                    "c"
                }
            };
            var input2 = new List <List <string> >
            {
                new List <string> {
                    "d", "e", "f"
                },
                new List <string> {
                    "g"
                },
                new List <string> {
                    "e", "h", "i"
                }
            };

            // ACTION
            var visitorAcc = new TypeAccessor(typeof(SharingComposerVisitor));
            var result     = (List <List <string> >)visitorAcc.InvokeStatic("CombineValues", input1, input2);

            // ASSERT
            var actual = string.Join(" ", result.Select(x => string.Join("", x)));

            Assert.AreEqual("abdef abg abehi cdef cg cehi", actual);
        }
예제 #7
0
        public void Sharing_Query_Rewriting_CombineValues2()
        {
            var input1 = new List <List <string> >
            {
                new List <string> {
                    "a"
                },
                new List <string> {
                    "b"
                },
            };
            var input2 = new List <List <string> >
            {
                new List <string> {
                    "c"
                },
                new List <string> {
                    "d"
                },
                new List <string> {
                    "e"
                },
            };

            // ACTION
            var visitorAcc = new TypeAccessor(typeof(SharingComposerVisitor));
            var result     = (List <List <string> >)visitorAcc.InvokeStatic("CombineValues", input1, input2);

            // ASSERT
            var actual = string.Join(" ", result.Select(x => string.Join("", x)));

            Assert.AreEqual("ac ad ae bc bd be", actual);
        }
예제 #8
0
        private void RewritingTest(string inputQuery, bool isValid, string expected)
        {
            var context = new TestQueryContext(QuerySettings.AdminSettings, 0, _indexingInfo, new TestQueryEngine(null, null));

            using (SenseNet.Tests.Core.Tools.Swindle(typeof(SnQuery), "_permissionFilterFactory", new EverythingAllowedPermissionFilterFactory()))
            {
                var queryIn    = SnQuery.Parse(inputQuery, context);
                var snQueryAcc = new TypeAccessor(typeof(SnQuery));
                snQueryAcc.InvokeStatic("PrepareQuery", queryIn, context);

                var     hasError = false;
                var     visitor  = new SharingVisitor();
                SnQuery queryOut = null;
                try
                {
                    queryOut = SnQuery.Create(visitor.Visit(queryIn.QueryTree));
                }
                catch (InvalidContentSharingQueryException)
                {
                    hasError = true;
                }

                Assert.AreNotEqual(isValid, hasError);
                if (!hasError)
                {
                    Assert.AreEqual(expected, queryOut.ToString());
                }
            }
        }
예제 #9
0
        public void FileSystemWrapper_GetFiles_suffix_dotTXT()
        {
            var acc = new TypeAccessor(typeof(FileSystemWrapper.Directory));

            // ACTION
            var result = (string[])acc.InvokeStatic("GetFilesByExtension", PathsForTest_GetFiles, ".TXT");

            // ASSERT
            var actual = string.Join(", ", result.Select(Path.GetFileNameWithoutExtension));

            Assert.AreEqual("1a, 2a, 3a", actual);
        }
예제 #10
0
        private void NormalizerVisitorTest(SnQuery query, TestQueryContext context, string expectedQuery)
        {
            query.EnableAutofilters    = FilterStatus.Disabled;
            query.EnableLifespanFilter = FilterStatus.Disabled;

            var snQueryAcc = new TypeAccessor(typeof(SnQuery));

            snQueryAcc.InvokeStatic("PrepareQuery", query, context);

            var normalizer = new SharingNormalizerVisitor();
            var normalized = normalizer.Visit(query.QueryTree);

            var newQuery = SnQuery.Create(normalized);

            Assert.AreEqual(expectedQuery, newQuery.ToString());
        }
예제 #11
0
        public void Sharing_Query_Rewriting_FieldNames()
        {
            var    inputQuery    = "-a:a Sharing:s0 SharedWith:123 SharedBy:s2 SharingMode:s3 SharingLevel:s4";
            var    expectedQuery = "-a:a Sharing:s0 Sharing:I123 Sharing:s2 Sharing:s3 Sharing:s4";
            string actualQuery;

            var context = new TestQueryContext(QuerySettings.AdminSettings, 0, _indexingInfo, new TestQueryEngine(null, null));

            using (SenseNet.Tests.Core.Tools.Swindle(typeof(SnQuery), "_permissionFilterFactory", new EverythingAllowedPermissionFilterFactory()))
            {
                var queryIn    = SnQuery.Parse(inputQuery, context);
                var snQueryAcc = new TypeAccessor(typeof(SnQuery));
                snQueryAcc.InvokeStatic("PrepareQuery", queryIn, context);

                var visitor = new SharingVisitor();
                var newTree = visitor.Visit(queryIn.QueryTree);

                var snQuery = SnQuery.Create(newTree);
                actualQuery = snQuery.ToString();
            }

            Assert.AreEqual(expectedQuery, actualQuery);
        }
예제 #12
0
        protected void ResetContentTypeManager()
        {
            var acc = new TypeAccessor(typeof(ContentTypeManager));

            acc.InvokeStatic("ResetPrivate");
        }
예제 #13
0
 private void WopiHandler_SaveFile(File file, string lockValue)
 {
     _wopiHandlerAcc.InvokeStatic("SaveFile", file, lockValue);
 }