コード例 #1
0
ファイル: GenericActionTest.cs プロジェクト: kimduquan/DMIS
 public void GenericAction_NotAnnotated()
 {
     ODataTests.CreateTestSite();
     try
     {
         ODataTests.Error error;
         using (var output = new System.IO.StringWriter())
         {
             var pc      = ODataTests.CreatePortalContext("/OData.svc/Root('IMS')/TestAction0", "", output);
             var handler = new ODataHandler();
             handler.ProcessRequest(pc.OwnerHttpContext, "POST", null);
             error = ODataTests.GetError(output);
         }
         Assert.IsTrue(error.Message.ToLower().Contains("access denied"));
     }
     finally
     {
         ODataTests.CleanupTestSite();
     }
 }
コード例 #2
0
ファイル: GenericActionTest.cs プロジェクト: kimduquan/DMIS
 public void GenericAction_SingleContent()
 {
     ODataTests.CreateTestSite();
     try
     {
         ODataTests.Entity entity;
         using (var output = new System.IO.StringWriter())
         {
             var pc      = ODataTests.CreatePortalContext("/OData.svc/Root('IMS')/TestAction3", "", output);
             var handler = new ODataHandler();
             var stream  = ODataTests.CreateRequestStream(String.Concat("{ path: '", User.Administrator.Path, "' }"));
             handler.ProcessRequest(pc.OwnerHttpContext, "POST", stream);
             entity = ODataTests.GetEntity(output);
         }
         Assert.AreEqual(1, entity.Id);
     }
     finally
     {
         ODataTests.CleanupTestSite();
     }
 }
コード例 #3
0
ファイル: GenericActionTest.cs プロジェクト: kimduquan/DMIS
 public void GenericAction_RightOverload()
 {
     ODataTests.CreateTestSite();
     try
     {
         string result;
         using (var output = new System.IO.StringWriter())
         {
             var pc      = ODataTests.CreatePortalContext("/OData.svc/Root('IMS')/TestAction2", "", output);
             var handler = new ODataHandler();
             var stream  = ODataTests.CreateRequestStream("{iii: 42, sss: 'asdf' }");
             handler.ProcessRequest(pc.OwnerHttpContext, "POST", stream);
             result = ODataTests.GetStringResult(output);
         }
         Assert.AreEqual("asdf: 42", result);
     }
     finally
     {
         ODataTests.CleanupTestSite();
     }
 }
コード例 #4
0
ファイル: GenericActionTest.cs プロジェクト: kimduquan/DMIS
 public void GenericAction_MultipleContents()
 {
     ODataTests.CreateTestSite();
     try
     {
         ODataTests.Entities entities;
         using (var output = new System.IO.StringWriter())
         {
             var pc      = ODataTests.CreatePortalContext("/OData.svc/Root('IMS')/TestAction4", "$orderby=Name&$filter=Id lt 11", output);
             var handler = new ODataHandler();
             var stream  = ODataTests.CreateRequestStream("{ path: '/Root/IMS/BuiltIn/Portal' }");
             handler.ProcessRequest(pc.OwnerHttpContext, "POST", stream);
             entities = ODataTests.GetEntities(output);
         }
         var actual = String.Join(", ", entities.Select(e => e.Name));
         Assert.AreEqual("Admin, Administrators, Creators, Everyone, LastModifiers, Visitor", actual);
     }
     finally
     {
         ODataTests.CleanupTestSite();
     }
 }
コード例 #5
0
ファイル: AspectTests.cs プロジェクト: kimduquan/DMIS
        public void Aspect_OData_LongTextDoesNotContainCdata()
        {
            var fieldValue = "<p>Field value</p>";
            var aspect     = EnsureAspect("LongTextTest");

            aspect.AddFields(new FieldInfo {
                Name = "Field1", Type = "LongText"
            });

            var content = Content.CreateNew("Car", TestRoot, Guid.NewGuid().ToString());

            content.AddAspects(aspect);
            content["LongTextTest.Field1"] = fieldValue;
            content.Save();

            var uri = ODataTools.GetODataUrl(content);

            ODataTests.CreateTestSite();
            ODataTests.Entity entity;
            try
            {
                using (var output = new System.IO.StringWriter())
                {
                    var pc      = ODataTests.CreatePortalContext(uri, "", output);
                    var handler = new ODataHandler();
                    handler.ProcessRequest(pc.OwnerHttpContext, "GET", null);
                    entity = ODataTests.GetEntity(output);
                }
                var value       = entity.AllProperties["LongTextTest.Field1"];
                var jvalue      = value as JValue;
                var stringValue = (string)jvalue.Value;
                Assert.AreEqual(fieldValue, stringValue);
            }
            finally
            {
                ODataTests.CleanupTestSite();
            }
        }
コード例 #6
0
ファイル: AspectTests.cs プロジェクト: kimduquan/DMIS
        public void Aspect_OData_AddRemoveFields()
        {
            var aspect = Content.CreateNew("Aspect", Repository.AspectsFolder, Guid.NewGuid().ToString());

            aspect.Save();
            //var aspectPath = aspect.Path;
            var resourcePath = ODataHandler.GetEntityUrl(aspect.Path);

            var content = Content.CreateNew("Car", TestRoot, Guid.NewGuid().ToString());

            content.AddAspects(aspect.Path);
            content.Save();

            var odataHandlerAcc        = new PrivateType(typeof(ODataHandler));
            var originalActionResolver = odataHandlerAcc.GetStaticProperty("ActionResolver");

            odataHandlerAcc.SetStaticProperty("ActionResolver", new ODataTests.TestActionResolver());

            var fieldInfosJson = GetJson(new[] {
                new FieldInfo {
                    Name = "Field1", Type = "ShortText"
                },
                new FieldInfo {
                    Name = "Field2", Type = "ShortText"
                },
                new FieldInfo {
                    Name = "Field3", Type = "ShortText"
                },
            });

            ODataTests.CreateTestSite();
            try
            {
                string result;
                Field  field;

                using (var output = new System.IO.StringWriter())
                {
                    var pc      = ODataTests.CreatePortalContext(string.Concat("/OData.svc", resourcePath, "/AddFields"), "", output);
                    var handler = new ODataHandler();
                    var stream  = ODataTests.CreateRequestStream(String.Concat("{fields:", fieldInfosJson, "}"));
                    handler.ProcessRequest(pc.OwnerHttpContext, "POST", stream);
                    result = output.GetStringBuilder().ToString();
                }
                content = Content.Load(content.Path);
                Assert.IsTrue(content.Fields.TryGetValue(aspect.Name + ".Field1", out field));
                Assert.IsTrue(content.Fields.TryGetValue(aspect.Name + ".Field2", out field));
                Assert.IsTrue(content.Fields.TryGetValue(aspect.Name + ".Field3", out field));
                Assert.IsFalse(content.Fields.TryGetValue(aspect.Name + ".Field4", out field));

                fieldInfosJson = GetJson(new[] {
                    new FieldInfo {
                        Name = "Field4", Type = "ShortText"
                    },
                });

                using (var output = new System.IO.StringWriter())
                {
                    var pc      = ODataTests.CreatePortalContext(string.Concat("/OData.svc", resourcePath, "/AddFields"), "", output);
                    var handler = new ODataHandler();
                    var stream  = ODataTests.CreateRequestStream(String.Concat("{fields:", fieldInfosJson, "}"));
                    handler.ProcessRequest(pc.OwnerHttpContext, "POST", stream);
                    result = output.GetStringBuilder().ToString();
                }
                content = Content.Load(content.Path);
                Assert.IsTrue(content.Fields.TryGetValue(aspect.Name + ".Field1", out field));
                Assert.IsTrue(content.Fields.TryGetValue(aspect.Name + ".Field2", out field));
                Assert.IsTrue(content.Fields.TryGetValue(aspect.Name + ".Field3", out field));
                Assert.IsTrue(content.Fields.TryGetValue(aspect.Name + ".Field4", out field));

                using (var output = new System.IO.StringWriter())
                {
                    var pc      = ODataTests.CreatePortalContext(string.Concat("/OData.svc", resourcePath, "/RemoveFields"), "", output);
                    var handler = new ODataHandler();
                    var stream  = ODataTests.CreateRequestStream(String.Concat("{fields:[\"Field1\"]}"));
                    handler.ProcessRequest(pc.OwnerHttpContext, "POST", stream);
                    result = output.GetStringBuilder().ToString();
                }
                content = Content.Load(content.Path);
                Assert.IsFalse(content.Fields.TryGetValue(aspect.Name + ".Field1", out field));
                Assert.IsTrue(content.Fields.TryGetValue(aspect.Name + ".Field2", out field));
                Assert.IsTrue(content.Fields.TryGetValue(aspect.Name + ".Field3", out field));
                Assert.IsTrue(content.Fields.TryGetValue(aspect.Name + ".Field4", out field));

                using (var output = new System.IO.StringWriter())
                {
                    var pc      = ODataTests.CreatePortalContext(string.Concat("/OData.svc", resourcePath, "/RemoveFields"), "", output);
                    var handler = new ODataHandler();
                    var stream  = ODataTests.CreateRequestStream(String.Concat("{fields:[\"Field4\",\"Field2\"]}"));
                    handler.ProcessRequest(pc.OwnerHttpContext, "POST", stream);
                    result = output.GetStringBuilder().ToString();
                }
                content = Content.Load(content.Path);
                Assert.IsFalse(content.Fields.TryGetValue(aspect.Name + ".Field1", out field));
                Assert.IsFalse(content.Fields.TryGetValue(aspect.Name + ".Field2", out field));
                Assert.IsTrue(content.Fields.TryGetValue(aspect.Name + ".Field3", out field));
                Assert.IsFalse(content.Fields.TryGetValue(aspect.Name + ".Field4", out field));

                using (var output = new System.IO.StringWriter())
                {
                    var pc      = ODataTests.CreatePortalContext(string.Concat("/OData.svc", resourcePath, "/RemoveAllFields"), "", output);
                    var handler = new ODataHandler();
                    handler.ProcessRequest(pc.OwnerHttpContext, "POST", null);
                    result = output.GetStringBuilder().ToString();
                }
                content = Content.Load(content.Path);
                Assert.IsFalse(content.Fields.TryGetValue(aspect.Name + ".Field1", out field));
                Assert.IsFalse(content.Fields.TryGetValue(aspect.Name + ".Field2", out field));
                Assert.IsFalse(content.Fields.TryGetValue(aspect.Name + ".Field3", out field));
                Assert.IsFalse(content.Fields.TryGetValue(aspect.Name + ".Field4", out field));
            }
            finally
            {
                odataHandlerAcc.SetStaticProperty("ActionResolver", originalActionResolver);
                content.DeletePhysical();
                ODataTests.CleanupTestSite();
            }
        }
コード例 #7
0
ファイル: AspectTests.cs プロジェクト: kimduquan/DMIS
        public void Aspect_OData_AddRemoveAspect()
        {
            var content = Content.CreateNew("Car", TestRoot, Guid.NewGuid().ToString());

            content.Save();
            var resourcePath = ODataHandler.GetEntityUrl(content.Path);
            var aspect1      = Content.CreateNew("Aspect", Repository.AspectsFolder, Guid.NewGuid().ToString());

            aspect1.Save();
            var aspect1Path = aspect1.Path;
            var aspect2     = Content.CreateNew("Aspect", Repository.AspectsFolder, Guid.NewGuid().ToString());

            aspect2.Save();
            var aspect2Path = aspect2.Path;
            var aspect3     = Content.CreateNew("Aspect", Repository.AspectsFolder, Guid.NewGuid().ToString());

            aspect3.Save();
            var aspect3Path = aspect3.Path;

            var odataHandlerAcc        = new PrivateType(typeof(ODataHandler));
            var originalActionResolver = odataHandlerAcc.GetStaticProperty("ActionResolver");

            odataHandlerAcc.SetStaticProperty("ActionResolver", new ODataTests.TestActionResolver());

            ODataTests.CreateTestSite();
            try
            {
                string result;

                using (var output = new System.IO.StringWriter())
                {
                    var pc      = ODataTests.CreatePortalContext(string.Concat("/OData.svc", resourcePath, "/AddAspects"), "", output);
                    var handler = new ODataHandler();
                    var stream  = ODataTests.CreateRequestStream(String.Concat("{aspects:[\"", aspect1Path, "\"]}"));
                    handler.ProcessRequest(pc.OwnerHttpContext, "POST", stream);
                    result = output.GetStringBuilder().ToString();
                }
                content = Content.Load(content.Path);
                Assert.IsTrue(((GenericContent)content.ContentHandler).HasReference("Aspects", aspect1.ContentHandler));
                Assert.IsFalse(((GenericContent)content.ContentHandler).HasReference("Aspects", aspect2.ContentHandler));
                Assert.IsFalse(((GenericContent)content.ContentHandler).HasReference("Aspects", aspect3.ContentHandler));

                using (var output = new System.IO.StringWriter())
                {
                    var pc      = ODataTests.CreatePortalContext(string.Concat("/OData.svc", resourcePath, "/AddAspects"), "", output);
                    var handler = new ODataHandler();
                    var stream  = ODataTests.CreateRequestStream(String.Concat("{aspects:[\"", aspect2Path, "\", \"", aspect3Path, "\"]}"));
                    handler.ProcessRequest(pc.OwnerHttpContext, "POST", stream);
                    result = output.GetStringBuilder().ToString();
                }
                content = Content.Load(content.Path);
                Assert.IsTrue(((GenericContent)content.ContentHandler).HasReference("Aspects", aspect1.ContentHandler));
                Assert.IsTrue(((GenericContent)content.ContentHandler).HasReference("Aspects", aspect2.ContentHandler));
                Assert.IsTrue(((GenericContent)content.ContentHandler).HasReference("Aspects", aspect3.ContentHandler));

                using (var output = new System.IO.StringWriter())
                {
                    var pc      = ODataTests.CreatePortalContext(string.Concat("/OData.svc", resourcePath, "/RemoveAspects"), "", output);
                    var handler = new ODataHandler();
                    var stream  = ODataTests.CreateRequestStream(String.Concat("{aspects:[\"", aspect1Path, "\", \"", aspect3Path, "\"]}"));
                    handler.ProcessRequest(pc.OwnerHttpContext, "POST", stream);
                    result = output.GetStringBuilder().ToString();
                }
                content = Content.Load(content.Path);
                Assert.IsFalse(((GenericContent)content.ContentHandler).HasReference("Aspects", aspect1.ContentHandler));
                Assert.IsTrue(((GenericContent)content.ContentHandler).HasReference("Aspects", aspect2.ContentHandler));
                Assert.IsFalse(((GenericContent)content.ContentHandler).HasReference("Aspects", aspect3.ContentHandler));

                using (var output = new System.IO.StringWriter())
                {
                    var pc      = ODataTests.CreatePortalContext(string.Concat("/OData.svc", resourcePath, "/RemoveAspects"), "", output);
                    var handler = new ODataHandler();
                    var stream  = ODataTests.CreateRequestStream(String.Concat("{aspects:[\"", aspect2Path, "\"]}"));
                    handler.ProcessRequest(pc.OwnerHttpContext, "POST", stream);
                    result = output.GetStringBuilder().ToString();
                }
                content = Content.Load(content.Path);
                Assert.IsFalse(((GenericContent)content.ContentHandler).HasReference("Aspects", aspect1.ContentHandler));
                Assert.IsFalse(((GenericContent)content.ContentHandler).HasReference("Aspects", aspect2.ContentHandler));
                Assert.IsFalse(((GenericContent)content.ContentHandler).HasReference("Aspects", aspect3.ContentHandler));


                content.AddAspects((Aspect)aspect1.ContentHandler, (Aspect)aspect2.ContentHandler, (Aspect)aspect3.ContentHandler);
                content.Save();
                Assert.IsTrue(((GenericContent)content.ContentHandler).HasReference("Aspects", aspect1.ContentHandler));
                Assert.IsTrue(((GenericContent)content.ContentHandler).HasReference("Aspects", aspect2.ContentHandler));
                Assert.IsTrue(((GenericContent)content.ContentHandler).HasReference("Aspects", aspect3.ContentHandler));

                using (var output = new System.IO.StringWriter())
                {
                    var pc      = ODataTests.CreatePortalContext(string.Concat("/OData.svc", resourcePath, "/RemoveAllAspects"), "", output);
                    var handler = new ODataHandler();
                    //var stream = ODataTests.CreateRequestStream(String.Concat("{aspects:[\"", aspect2Path, "\"]}"));
                    handler.ProcessRequest(pc.OwnerHttpContext, "POST", null);
                    result = output.GetStringBuilder().ToString();
                }
                content = Content.Load(content.Path);
                Assert.IsFalse(((GenericContent)content.ContentHandler).HasReference("Aspects", aspect1.ContentHandler));
                Assert.IsFalse(((GenericContent)content.ContentHandler).HasReference("Aspects", aspect2.ContentHandler));
                Assert.IsFalse(((GenericContent)content.ContentHandler).HasReference("Aspects", aspect3.ContentHandler));
            }
            finally
            {
                odataHandlerAcc.SetStaticProperty("ActionResolver", originalActionResolver);
                content.DeletePhysical();
                ODataTests.CleanupTestSite();
            }
        }