Exemplo n.º 1
0
        public void Entity_Event_InvalidStateCode()
        {
            var xm        = System.Guid.NewGuid().ToString();
            var infoValue = new KeyValueBuilder(new Dictionary <string, string> {
                { "XM", xm },
                { "ZZJGM", "11011421005" }
            }).ToArray();
            var request = new Message
            {
                MessageId   = System.Guid.NewGuid().ToString(),
                MessageType = "event",
                IsDumb      = true,
                Verb        = "Create",
                Ontology    = "JS",
                TimeStamp   = DateTime.UtcNow.Ticks,
                Version     = "v1",
                Body        = new BodyData(infoValue, infoValue)
                {
                    Event = new EventData
                    {
                        Subject    = "StateCodeChanged",
                        SourceType = "entity"
                    }
                },
            }.JspxToken();
            //var response = request.RequestNode(acDomain.NodeHost.Nodes.CenterNode);
            var response = AnyMessage.Create(HecpRequest.Create(AcDomain, request), AcDomain.NodeHost.Nodes.CenterNode).Response();

            Assert.IsTrue((int)Status.InvalidStatus == response.Body.Event.Status, response.Body.Event.Description);
            request.IsDumb = false;
            response       = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
            Assert.IsTrue((int)Status.InvalidStatus == response.Body.Event.Status, response.Body.Event.Description);
        }
Exemplo n.º 2
0
        public void Ticks_TimeOut()
        {
            var infoValue = new KeyValueBuilder(new Dictionary <string, string> {
                { "XM", "测试" },
                { "ZZJGM", "11011421005" }
            }).ToArray();
            var client  = new JsonServiceClient(AcDomain.NodeHost.Nodes.ThisNode.Node.AnycmdApiAddress);
            var request = new Message
            {
                MessageId   = System.Guid.NewGuid().ToString(),
                Version     = "v1",
                MessageType = "action",
                IsDumb      = true,
                Verb        = "Delete",
                Ontology    = "JS",
                Body        = new BodyData(new KeyValueBuilder().Append("Id", "69e58ec0-5eb2-4633-9117-b433fc205b8f").ToArray(), infoValue),
                TimeStamp   = DateTime.UtcNow.Ticks
            }.TimeOutToken();
            var response = client.Get(request);

            Assert.IsTrue(Status.NotAuthorized.ToName() == response.Body.Event.ReasonPhrase, response.Body.Event.Description);
            request.IsDumb = false;
            response       = client.Get(request);
            Assert.IsTrue(Status.NotAuthorized.ToName() == response.Body.Event.ReasonPhrase, response.Body.Event.Description);
        }
Exemplo n.º 3
0
        public void Command_MessageID_CanNotBeNullOrEmpty()
        {
            var xm        = System.Guid.NewGuid().ToString();
            var infoValue = new KeyValueBuilder(new Dictionary <string, string> {
                { "XM", xm },
                { "ZZJGM", "11011421005" }
            }).ToArray();
            var request = new Message
            {
                Version     = "v1",
                MessageType = "command",
                IsDumb      = true,
                Verb        = "Create",
                Ontology    = "JS",
                MessageId   = (DateTime.Now.Ticks % 2) == 0 ? null : string.Empty,
                Body        = new BodyData(infoValue, infoValue),
                TimeStamp   = DateTime.UtcNow.Ticks
            }.JspxToken();
            var response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);

            Assert.IsTrue((int)Status.InvalidArgument == response.Body.Event.Status, response.Body.Event.Description);
            request.IsDumb = false;
            response       = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
            Assert.IsTrue((int)Status.InvalidArgument == response.Body.Event.Status, response.Body.Event.Description);
        }
Exemplo n.º 4
0
        public void Command_Event_NotExist2()
        {
            var xm        = System.Guid.NewGuid().ToString();
            var infoValue = new KeyValueBuilder(new Dictionary <string, string> {
                { "XM", xm },
                { "ZZJGM", "11011421005" }
            }).ToArray();
            var request = new Message
            {
                MessageId   = System.Guid.NewGuid().ToString(),
                Verb        = "Create",
                Ontology    = "JS",
                MessageType = "event",
                IsDumb      = true,
                TimeStamp   = DateTime.UtcNow.Ticks,
                Version     = "v1",
                Body        = new BodyData(infoValue, infoValue)
                {
                    Event = new EventData
                    {
                        Subject    = "StateCodeChanged",
                        SourceType = EventSourceType.Command.ToName(),
                        Status     = (int)Status.AuditApproved
                    }
                }
            }.JspxToken();
            var response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);

            Assert.IsTrue((int)Status.NotExist == response.Body.Event.Status, response.Body.Event.Description);
            request.IsDumb = false;
            response       = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
            Assert.IsTrue((int)Status.NotExist == response.Body.Event.Status, response.Body.Event.Description);
        }
Exemplo n.º 5
0
        public void Command_Create()
        {
            var xm        = System.Guid.NewGuid().ToString();
            var infoValue = new KeyValueBuilder(new Dictionary <string, string> {
                { "XM", xm },
                { "ZZJGM", "11011421004" },
                { "DZXX", "*****@*****.**" }
            }).ToArray();
            var request = new Message
            {
                MessageId   = System.Guid.NewGuid().ToString(),
                Version     = "v1",
                MessageType = "command",
                IsDumb      = true,
                Verb        = "Create",
                Ontology    = "JS",
                Body        = new BodyData(infoValue, infoValue),
                TimeStamp   = DateTime.UtcNow.Ticks
            }.JspxToken();
            var response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);

            Assert.IsTrue((int)Status.ReceiveOk == response.Body.Event.Status, response.Body.Event.Description);
            request.IsDumb = false;
            response       = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
            Assert.IsTrue((int)Status.ReceiveOk == response.Body.Event.Status, response.Body.Event.Description);
        }
Exemplo n.º 6
0
        public void Action_Update()
        {
            var xm        = NewXM();
            var infoValue = new KeyValueBuilder(new Dictionary <string, string> {
                { "XM", xm },
                { "ZZJGM", "11011421004" }
            }).ToArray();
            var request = new Message
            {
                MessageId   = System.Guid.NewGuid().ToString(),
                Version     = "v1",
                MessageType = "action",
                IsDumb      = false,
                Verb        = "Create",
                Ontology    = "JS",
                Body        = new BodyData(infoValue, infoValue),
                TimeStamp   = DateTime.UtcNow.Ticks
            }.JspxToken();
            var response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);

            Assert.IsTrue((int)Status.ExecuteOk == response.Body.Event.Status, response.Body.Event.Description);
            request.MessageId      = Guid.NewGuid().ToString();
            request.Verb           = "Update";
            request.TimeStamp      = DateTime.UtcNow.Ticks;
            request.Body.InfoValue = new KeyValueBuilder().Append("XM", xm).Append("ZZJGM", "11011421004").ToArray();
            xm = NewXM();
            request.Body.InfoValue[0].Value = xm;
            request.Body.InfoValue[1].Value = "11011421005";
            response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
            Assert.IsTrue((int)Status.ExecuteOk == response.Body.Event.Status, response.Body.Event.Description);
            request.Body.InfoId = new KeyValueBuilder().Append("XM", xm).Append("ZZJGM", "11011421005").ToArray();
            request.Verb        = "delete";
            response            = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
            Assert.IsTrue((int)Status.ExecuteOk == response.Body.Event.Status, response.Body.Event.Description);
        }
Exemplo n.º 7
0
        public void Audit_Level5CatalogAction()
        {
            var xm        = NewXM();
            var infoValue = new KeyValueBuilder(new Dictionary <string, string> {
                { "XM", xm },
                { "ZZJGM", "11010000001" }
            }).ToArray();
            var request = new Message
            {
                MessageId   = System.Guid.NewGuid().ToString(),
                Version     = "v1",
                MessageType = "action",
                IsDumb      = true,
                Verb        = "Create",
                Ontology    = "JS",
                Body        = new BodyData(infoValue, infoValue),
                TimeStamp   = DateTime.UtcNow.Ticks
            }.JspxToken();
            var response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);

            Assert.IsTrue((int)Status.ToAudit == response.Body.Event.Status, response.Body.Event.Description);
            request.IsDumb = false;
            response       = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
            Assert.IsTrue((int)Status.ToAudit == response.Body.Event.Status, response.Body.Event.Description);
            request.Verb = "update";
            response     = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
            Assert.IsTrue((int)Status.NotExist == response.Body.Event.Status, response.Body.Event.Description);
        }
Exemplo n.º 8
0
        public static IKeyValueBuilder AddKeyValueCore(this IServiceCollection services)
        {
            var builder = new KeyValueBuilder(services);

            builder.Services.TryAddSingleton <IKeyValueConfigurationRoot, KeyValueConfigurationRoot>();
            builder.Services.TryAddSingleton <IKeyValueReader, NullKeyValueReader>();
            builder.Services.TryAddSingleton <IKeyValueWriter, NullKeyValueWriter>();
            return(builder);
        }
Exemplo n.º 9
0
        public void Command_Action_Update()
        {
            // 首先使用一个Create型命令准备测试数据。然后测试Command和Action,最后打扫现场删除测试数据。
            var xm        = NewXM();
            var infoValue = new KeyValueBuilder(new Dictionary <string, string> {
                { "XM", xm },
                { "ZZJGM", "11011421004" }
            }).ToArray();
            var request = new Message
            {
                MessageId   = System.Guid.NewGuid().ToString(),
                Version     = "v1",
                MessageType = "action",
                IsDumb      = false,
                Verb        = "Create",
                Ontology    = "JS",
                Body        = new BodyData(infoValue, infoValue),
                TimeStamp   = DateTime.UtcNow.Ticks
            }.JspxToken();
            var response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);

            Assert.IsTrue((int)Status.ExecuteOk == response.Body.Event.Status, response.Body.Event.Description);
            // 从配置文件中读取或者从数据库表的列名读取
            KeyValue[] infoId = new KeyValueBuilder(new Dictionary <string, string> {
                { "XBM", (DateTime.Now.Ticks % 3).ToString() }
            }).ToArray();
            request.MessageId   = Guid.NewGuid().ToString();
            request.MessageType = "Command";
            request.Body        = new BodyData(infoValue, new KeyValueBuilder(request.Body.InfoValue).Append("XBM", "1").ToArray());
            request.TimeStamp   = DateTime.UtcNow.Ticks;
            request.Verb        = "Update";
            request.IsDumb      = true;
            //response = request.RequestNode(acDomain.NodeHost.Nodes.CenterNode);
            response = AnyMessage.Create(HecpRequest.Create(AcDomain, request), AcDomain.NodeHost.Nodes.CenterNode).Response();
            Assert.IsTrue((int)Status.ReceiveOk == response.Body.Event.Status, response.Body.Event.Description);
            request.MessageType = "action";
            response            = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
            Assert.IsTrue((int)Status.ExecuteOk == response.Body.Event.Status, response.Body.Event.Description);

            request.MessageType = "command";
            request.IsDumb      = false;
            response            = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
            Assert.IsTrue((int)Status.ReceiveOk == response.Body.Event.Status, response.Body.Event.Description);
            request.MessageType = "action";
            response            = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
            Assert.IsTrue((int)Status.ExecuteOk == response.Body.Event.Status, response.Body.Event.Description);
            request.Verb = "delete";
            response     = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
            Assert.IsTrue((int)Status.ExecuteOk == response.Body.Event.Status, response.Body.Event.Description);
        }
Exemplo n.º 10
0
        public void Should_Get_InvalidMessageType()
        {
            var infoValue = new KeyValueBuilder().Append("XM", "测试").Append("ZZJGM", "11011421005").ToArray();
            var request   = new Message
            {
                Version     = "v1",
                IsDumb      = true,
                Verb        = Verb.Update.Code,
                Ontology    = "JS",
                MessageType = "InvalidMessageType",
                MessageId   = new string('A', 100),
                Body        = new BodyData(new KeyValueBuilder().Append("Id", "010C1D7A-9BA5-4AEA-9D4B-290476A79D12").ToArray(), infoValue)
            }.JspxToken();
            var response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);

            Assert.IsTrue((int)Status.InvalidMessageType == response.Body.Event.Status, response.Body.Event.Description);
            request.IsDumb = false;
            response       = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
            Assert.IsTrue((int)Status.InvalidMessageType == response.Body.Event.Status, response.Body.Event.Description);
        }
Exemplo n.º 11
0
 public void Should_Get_InvalidVersion()
 {
     var infoValue = new KeyValueBuilder().Append("XM", "测试").Append("ZZJGM", "11011421005").ToArray();
     var request = new Message
     {
         Version = "InvalidVersion",
         MessageType = "action",
         IsDumb = true,
         Verb = Verb.Update.Code,
         Ontology = "JS",
         MessageId = Guid.NewGuid().ToString(),
         Body = new BodyData(new KeyValueBuilder().Append("Id", "010C1D7A-9BA5-4AEA-9D4B-290476A79D12").ToArray(), infoValue),
         TimeStamp = DateTime.UtcNow.Ticks
     }.JspxToken();
     var response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
     Assert.IsTrue((int)Status.InvalidApiVersion == response.Body.Event.Status, response.Body.Event.Description);
     request.IsDumb = false;
     response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
     Assert.IsTrue((int)Status.InvalidApiVersion == response.Body.Event.Status, response.Body.Event.Description);
 }
Exemplo n.º 12
0
        public void NotAuthorized()
        {
            var xm   = NewXM();
            var keys = new string[] {
                "XM", "ZZJGM"
            };
            var values = new string[] {
                xm, "11011421004"
            };
            var infoValue = new KeyValueBuilder(keys, values).ToArray();
            var client    = new JsonServiceClient(AcDomain.NodeHost.Nodes.ThisNode.Node.AnycmdApiAddress);
            var ticks     = DateTime.UtcNow.Ticks;
            var request   = new Message
            {
                MessageId   = System.Guid.NewGuid().ToString(),
                Version     = "v1",
                MessageType = "action",
                IsDumb      = true,
                Verb        = Verb.Create.Code,
                Ontology    = "JS",
                Body        = new BodyData(infoValue, infoValue),
                Credential  = new CredentialData
                {
                    ClientType     = ClientType.Node.ToName(),
                    CredentialType = CredentialType.Token.ToName(),
                    ClientId       = "41e711c6-f215-4606-a0bf-9af11cce1d54",
                    Ticks          = ticks,
                    Password       = TokenObject.Token("41e711c6-f215-4606-a0bf-9af11cce1d54", ticks, "invalidSecretKey")
                },
                TimeStamp = DateTime.UtcNow.Ticks
            };
            var response = client.Get(request);

            Assert.IsTrue(Status.NotAuthorized.ToName() == response.Body.Event.ReasonPhrase, response.Body.Event.Description);
            request.Verb = "Get";
            request.JspxSignature();// 签名
            var result = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);

            Assert.IsTrue((int)Status.NotExist == result.Body.Event.Status, result.Body.Event.Description);
        }
Exemplo n.º 13
0
        public void Action_Create()
        {
            var xm        = NewXM();
            var infoValue = new KeyValueBuilder(new Dictionary <string, string> {
                { "XM", xm },
                { "ZZJGM", "11011421004" }
            }).ToArray();
            var request = new Message
            {
                MessageId   = System.Guid.NewGuid().ToString(),
                Version     = "v1",
                MessageType = "action",
                IsDumb      = true,
                Verb        = Verb.Create.Code,
                Ontology    = "JS",
                Body        = new BodyData(infoValue, infoValue)
                {
                    QueryList = new string[] { "Id" }
                },
                TimeStamp = DateTime.UtcNow.Ticks
            }.JspxToken();
            //var response = request.RequestNode(acDomain.NodeHost.Nodes.CenterNode);
            var response = AnyMessage.Create(HecpRequest.Create(AcDomain, request), AcDomain.NodeHost.Nodes.ThisNode).Response();

            Assert.IsTrue((int)Status.ExecuteOk == response.Body.Event.Status, response.Body.Event.Description);
            Assert.IsTrue((int)Status.ExecuteOk == response.Body.Event.Status, response.Body.Event.Description);
            request.JspxSignature();// 签名
            response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
            Assert.IsTrue((int)Status.ExecuteOk == response.Body.Event.Status, response.Body.Event.Description);
            request.IsDumb = false;
            request.JspxSignature();// 命令对象有更改则需重新签名
            response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
            Assert.IsTrue((int)Status.ExecuteOk == response.Body.Event.Status, response.Body.Event.Description);
            request.Verb = "Delete";
            request.JspxSignature();// 命令对象有更改则需重新签名
            response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
            Assert.IsTrue((int)Status.ExecuteOk == response.Body.Event.Status, response.Body.Event.Description);
        }
Exemplo n.º 14
0
        public void Permission()
        {
            var infoId = new KeyValueBuilder(new Dictionary <string, string> {
                { "SFZJH", "320113198108242027" },
                { "SFZJLXM", "1" },
                { "GHHM", "85012345" }
            }).ToArray();
            var cmdDto = new Message
            {
                MessageId   = System.Guid.NewGuid().ToString(),
                Version     = "v1",
                Verb        = "Head",
                MessageType = "action",
                IsDumb      = true,
                Ontology    = "JS",
                Body        = new BodyData(infoId, null),
                TimeStamp   = DateTime.UtcNow.Ticks
            }.JspxToken();
            var response = cmdDto.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);

            //var response = AnyMessage.Create(HecpRequest.Create(request, Credential.Create(request))).Response();
            Assert.IsTrue((int)Status.NoPermission == response.Body.Event.Status, response.Body.Event.Description);
            cmdDto.IsDumb = false;
            //response = request.RequestNode(acDomain.NodeHost.Nodes.CenterNode);
            // 使用下面这行可以绕过网络传输从而易于调试,而上面那行需要网络传输
            response = AnyMessage.Create(HecpRequest.Create(AcDomain, cmdDto), AcDomain.NodeHost.Nodes.ThisNode).Response();
            Assert.IsTrue((int)Status.NoPermission == response.Body.Event.Status, response.Body.Event.Description);

            cmdDto.MessageType = "Command";
            response           = cmdDto.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
            //var response = AnyMessage.Create(HecpRequest.Create(request, Credential.Create(request))).Response();
            Assert.IsTrue((int)Status.NoPermission == response.Body.Event.Status, response.Body.Event.Description);
            cmdDto.IsDumb = false;
            //response = request.RequestNode(acDomain.NodeHost.Nodes.CenterNode);
            // 使用下面这行可以绕过网络传输从而易于调试,而上面那行需要网络传输
            response = AnyMessage.Create(HecpRequest.Create(AcDomain, cmdDto), AcDomain.NodeHost.Nodes.ThisNode).Response();
            Assert.IsTrue((int)Status.NoPermission == response.Body.Event.Status, response.Body.Event.Description);
        }
Exemplo n.º 15
0
        public void Action_Head()
        {
            var infoValue = new KeyValueBuilder(new Dictionary <string, string> {
                { "XM", "教师100" }
            }).ToArray();
            var request = new Message
            {
                MessageId   = System.Guid.NewGuid().ToString(),
                Version     = "v1",
                Verb        = "Head",
                MessageType = "action",
                IsDumb      = true,
                Ontology    = "JS",
                Body        = new BodyData(infoValue, null),
                TimeStamp   = DateTime.UtcNow.Ticks
            }.JspxToken();
            var response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);

            Assert.IsTrue((int)Status.ExecuteOk == response.Body.Event.Status, response.Body.Event.Description);
            request.IsDumb = false;
            response       = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
            Assert.IsTrue((int)Status.ExecuteOk == response.Body.Event.Status, response.Body.Event.Description);
        }
Exemplo n.º 16
0
        public void Action_Update_OutOfLength()
        {
            var infoValue = new KeyValueBuilder(new Dictionary <string, string> {
                { "XM", "测试" },
                { "ZZJGM", "11011421005" }
            }).ToArray();
            var request = new Message
            {
                Version     = "v1",
                MessageType = "action",
                IsDumb      = true,
                Verb        = "Update",
                Ontology    = "JS",
                MessageId   = new string('A', 100),
                Body        = new BodyData(new KeyValueBuilder().Append("Id", "010C1D7A-9BA5-4AEA-9D4B-290476A79D12").ToArray(), infoValue),
            }.JspxToken();
            var response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);

            Assert.IsTrue((int)Status.OutOfLength == response.Body.Event.Status, response.Body.Event.Description);
            request.IsDumb = false;
            response       = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
            Assert.IsTrue((int)Status.OutOfLength == response.Body.Event.Status, response.Body.Event.Description);
        }
Exemplo n.º 17
0
        public void Command_Create_Must_Gave_XM_And_ZZJGM()
        {
            var infoValue = new KeyValueBuilder(new Dictionary <string, string> {
                { "XM", "test" }
            }).ToArray();
            var request = new Message
            {
                MessageId   = System.Guid.NewGuid().ToString(),
                Version     = "v1",
                MessageType = "command",
                IsDumb      = true,
                Verb        = "Create",
                Ontology    = "JS",
                Body        = new BodyData(infoValue, infoValue),
                TimeStamp   = DateTime.UtcNow.Ticks,
            }.JspxToken();
            var response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);

            Assert.IsTrue((int)Status.InvalidInfoId == response.Body.Event.Status, response.Body.Event.Description);
            request.IsDumb = false;
            response       = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
            Assert.IsTrue((int)Status.InvalidInfoId == response.Body.Event.Status, response.Body.Event.Description);
        }
Exemplo n.º 18
0
        public void Catalog_Must_IsLeaf()
        {
            var infoValue = new KeyValueBuilder(new Dictionary <string, string> {
                { "XM", "测试" },
                { "ZZJGM", "110114" }
            }).ToArray();
            var request = new Message
            {
                MessageId   = System.Guid.NewGuid().ToString(),
                Version     = "v1",
                MessageType = "action",
                IsDumb      = true,
                Verb        = "Update",
                Ontology    = "JS",
                Body        = new BodyData(new KeyValueBuilder().Append("Id", "0008E9A4-CC11-48FB-9B1C-C72D4795AEDF").ToArray(), infoValue),
                TimeStamp   = DateTime.UtcNow.Ticks
            }.JspxToken();
            var response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);

            Assert.IsTrue((int)Status.InvalidCatalog == response.Body.Event.Status, response.Body.Event.Description);
            request.IsDumb = false;
            response       = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
            Assert.IsTrue((int)Status.InvalidCatalog == response.Body.Event.Status, response.Body.Event.Description);
        }
Exemplo n.º 19
0
 public void Action_Update()
 {
     var xm = NewXM();
     var infoValue = new KeyValueBuilder(new Dictionary<string, string> {
         {"XM",xm},
         {"ZZJGM","11011421004"}
     }).ToArray();
     var request = new Message
     {
         MessageId = System.Guid.NewGuid().ToString(),
         Version = "v1",
         MessageType = "action",
         IsDumb = false,
         Verb = "Create",
         Ontology = "JS",
         Body = new BodyData(infoValue, infoValue),
         TimeStamp = DateTime.UtcNow.Ticks
     }.JspxToken();
     var response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
     Assert.IsTrue((int)Status.ExecuteOk == response.Body.Event.Status, response.Body.Event.Description);
     request.MessageId = Guid.NewGuid().ToString();
     request.Verb = "Update";
     request.TimeStamp = DateTime.UtcNow.Ticks;
     request.Body.InfoValue = new KeyValueBuilder().Append("XM", xm).Append("ZZJGM", "11011421004").ToArray();
     xm = NewXM();
     request.Body.InfoValue[0].Value = xm;
     request.Body.InfoValue[1].Value = "11011421005";
     response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
     Assert.IsTrue((int)Status.ExecuteOk == response.Body.Event.Status, response.Body.Event.Description);
     request.Body.InfoId = new KeyValueBuilder().Append("XM", xm).Append("ZZJGM", "11011421005").ToArray();
     request.Verb = "delete";
     response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
     Assert.IsTrue((int)Status.ExecuteOk == response.Body.Event.Status, response.Body.Event.Description);
 }
Exemplo n.º 20
0
        public void Command_Action_Update()
        {
            // 首先使用一个Create型命令准备测试数据。然后测试Command和Action,最后打扫现场删除测试数据。
            var xm = NewXM();
            var infoValue = new KeyValueBuilder(new Dictionary<string, string> {
                {"XM",xm},
                {"ZZJGM","11011421004"}
            }).ToArray();
            var request = new Message
            {
                MessageId = System.Guid.NewGuid().ToString(),
                Version = "v1",
                MessageType = "action",
                IsDumb = false,
                Verb = "Create",
                Ontology = "JS",
                Body = new BodyData(infoValue, infoValue),
                TimeStamp = DateTime.UtcNow.Ticks
            }.JspxToken();
            var response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
            Assert.IsTrue((int)Status.ExecuteOk == response.Body.Event.Status, response.Body.Event.Description);
            // 从配置文件中读取或者从数据库表的列名读取
            KeyValue[] infoId = new KeyValueBuilder(new Dictionary<string, string> {
                {"XBM",(DateTime.Now.Ticks % 3).ToString()}
            }).ToArray();
            request.MessageId = Guid.NewGuid().ToString();
            request.MessageType = "Command";
            request.Body = new BodyData(infoValue, new KeyValueBuilder(request.Body.InfoValue).Append("XBM", "1").ToArray());
            request.TimeStamp = DateTime.UtcNow.Ticks;
            request.Verb = "Update";
            request.IsDumb = true;
            //response = request.RequestNode(acDomain.NodeHost.Nodes.CenterNode);
            response = AnyMessage.Create(HecpRequest.Create(AcDomain, request), AcDomain.NodeHost.Nodes.CenterNode).Response();
            Assert.IsTrue((int)Status.ReceiveOk == response.Body.Event.Status, response.Body.Event.Description);
            request.MessageType = "action";
            response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
            Assert.IsTrue((int)Status.ExecuteOk == response.Body.Event.Status, response.Body.Event.Description);

            request.MessageType = "command";
            request.IsDumb = false;
            response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
            Assert.IsTrue((int)Status.ReceiveOk == response.Body.Event.Status, response.Body.Event.Description);
            request.MessageType = "action";
            response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
            Assert.IsTrue((int)Status.ExecuteOk == response.Body.Event.Status, response.Body.Event.Description);
            request.Verb = "delete";
            response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
            Assert.IsTrue((int)Status.ExecuteOk == response.Body.Event.Status, response.Body.Event.Description);
        }
Exemplo n.º 21
0
 public void Command_Create_Must_Gave_XM_And_ZZJGM()
 {
     var infoValue = new KeyValueBuilder(new Dictionary<string, string> {
         {"XM","test"}
     }).ToArray();
     var request = new Message
     {
         MessageId = System.Guid.NewGuid().ToString(),
         Version = "v1",
         MessageType = "command",
         IsDumb = true,
         Verb = "Create",
         Ontology = "JS",
         Body = new BodyData(infoValue, infoValue),
         TimeStamp = DateTime.UtcNow.Ticks,
     }.JspxToken();
     var response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
     Assert.IsTrue((int)Status.InvalidInfoId == response.Body.Event.Status, response.Body.Event.Description);
     request.IsDumb = false;
     response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
     Assert.IsTrue((int)Status.InvalidInfoId == response.Body.Event.Status, response.Body.Event.Description);
 }
Exemplo n.º 22
0
 public void Ticks_TimeOut()
 {
     var infoValue = new KeyValueBuilder(new Dictionary<string, string> {
         {"XM","测试"},
         {"ZZJGM","11011421005"}
     }).ToArray();
     var client = new JsonServiceClient(AcDomain.NodeHost.Nodes.ThisNode.Node.AnycmdApiAddress);
     var request = new Message
     {
         MessageId = System.Guid.NewGuid().ToString(),
         Version = "v1",
         MessageType = "action",
         IsDumb = true,
         Verb = "Delete",
         Ontology = "JS",
         Body = new BodyData(new KeyValueBuilder().Append("Id", "69e58ec0-5eb2-4633-9117-b433fc205b8f").ToArray(), infoValue),
         TimeStamp = DateTime.UtcNow.Ticks
     }.TimeOutToken();
     var response = client.Get(request);
     Assert.IsTrue(Status.NotAuthorized.ToName() == response.Body.Event.ReasonPhrase, response.Body.Event.Description);
     request.IsDumb = false;
     response = client.Get(request);
     Assert.IsTrue(Status.NotAuthorized.ToName() == response.Body.Event.ReasonPhrase, response.Body.Event.Description);
 }
Exemplo n.º 23
0
        public void Permission()
        {
            var infoId = new KeyValueBuilder(new Dictionary<string, string> {
                {"SFZJH","320113198108242027"},
                {"SFZJLXM","1"},
                {"GHHM","85012345"}
            }).ToArray();
            var cmdDto = new Message
            {
                MessageId = System.Guid.NewGuid().ToString(),
                Version = "v1",
                Verb = "Head",
                MessageType = "action",
                IsDumb = true,
                Ontology = "JS",
                Body = new BodyData(infoId, null),
                TimeStamp = DateTime.UtcNow.Ticks
            }.JspxToken();
            var response = cmdDto.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
            //var response = AnyMessage.Create(HecpRequest.Create(request, Credential.Create(request))).Response();
            Assert.IsTrue((int)Status.NoPermission == response.Body.Event.Status, response.Body.Event.Description);
            cmdDto.IsDumb = false;
            //response = request.RequestNode(acDomain.NodeHost.Nodes.CenterNode);
            // 使用下面这行可以绕过网络传输从而易于调试,而上面那行需要网络传输
            response = AnyMessage.Create(HecpRequest.Create(AcDomain, cmdDto), AcDomain.NodeHost.Nodes.ThisNode).Response();
            Assert.IsTrue((int)Status.NoPermission == response.Body.Event.Status, response.Body.Event.Description);

            cmdDto.MessageType = "Command";
            response = cmdDto.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
            //var response = AnyMessage.Create(HecpRequest.Create(request, Credential.Create(request))).Response();
            Assert.IsTrue((int)Status.NoPermission == response.Body.Event.Status, response.Body.Event.Description);
            cmdDto.IsDumb = false;
            //response = request.RequestNode(acDomain.NodeHost.Nodes.CenterNode);
            // 使用下面这行可以绕过网络传输从而易于调试,而上面那行需要网络传输
            response = AnyMessage.Create(HecpRequest.Create(AcDomain, cmdDto), AcDomain.NodeHost.Nodes.ThisNode).Response();
            Assert.IsTrue((int)Status.NoPermission == response.Body.Event.Status, response.Body.Event.Description);
        }
Exemplo n.º 24
0
 public void Action_Create()
 {
     var xm = NewXM();
     var infoValue = new KeyValueBuilder(new Dictionary<string, string> {
         {"XM",xm},
         {"ZZJGM","11011421004"}
     }).ToArray();
     var request = new Message
     {
         MessageId = System.Guid.NewGuid().ToString(),
         Version = "v1",
         MessageType = "action",
         IsDumb = true,
         Verb = Verb.Create.Code,
         Ontology = "JS",
         Body = new BodyData(infoValue, infoValue)
         {
             QueryList = new string[] { "Id" }
         },
         TimeStamp = DateTime.UtcNow.Ticks
     }.JspxToken();
     //var response = request.RequestNode(acDomain.NodeHost.Nodes.CenterNode);
     var response = AnyMessage.Create(HecpRequest.Create(AcDomain, request), AcDomain.NodeHost.Nodes.ThisNode).Response();
     Assert.IsTrue((int)Status.ExecuteOk == response.Body.Event.Status, response.Body.Event.Description);
     Assert.IsTrue((int)Status.ExecuteOk == response.Body.Event.Status, response.Body.Event.Description);
     request.JspxSignature();// 签名
     response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
     Assert.IsTrue((int)Status.ExecuteOk == response.Body.Event.Status, response.Body.Event.Description);
     request.IsDumb = false;
     request.JspxSignature();// 命令对象有更改则需重新签名
     response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
     Assert.IsTrue((int)Status.ExecuteOk == response.Body.Event.Status, response.Body.Event.Description);
     request.Verb = "Delete";
     request.JspxSignature();// 命令对象有更改则需重新签名
     response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
     Assert.IsTrue((int)Status.ExecuteOk == response.Body.Event.Status, response.Body.Event.Description);
 }
Exemplo n.º 25
0
 public void NotAuthorized()
 {
     var xm = NewXM();
     var keys = new string[]{
         "XM","ZZJGM"
     };
     var values = new string[]{
         xm,"11011421004"
     };
     var infoValue = new KeyValueBuilder(keys, values).ToArray();
     var client = new JsonServiceClient(AcDomain.NodeHost.Nodes.ThisNode.Node.AnycmdApiAddress);
     var ticks = DateTime.UtcNow.Ticks;
     var request = new Message
     {
         MessageId = System.Guid.NewGuid().ToString(),
         Version = "v1",
         MessageType = "action",
         IsDumb = true,
         Verb = Verb.Create.Code,
         Ontology = "JS",
         Body = new BodyData(infoValue, infoValue),
         Credential = new CredentialData
         {
             ClientType = ClientType.Node.ToName(),
             CredentialType = CredentialType.Token.ToName(),
             ClientId = "41e711c6-f215-4606-a0bf-9af11cce1d54",
             Ticks = ticks,
             Password = TokenObject.Token("41e711c6-f215-4606-a0bf-9af11cce1d54", ticks, "invalidSecretKey")
         },
         TimeStamp = DateTime.UtcNow.Ticks
     };
     var response = client.Get(request);
     Assert.IsTrue(Status.NotAuthorized.ToName() == response.Body.Event.ReasonPhrase, response.Body.Event.Description);
     request.Verb = "Get";
     request.JspxSignature();// 签名
     var result = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
     Assert.IsTrue((int)Status.NotExist == result.Body.Event.Status, result.Body.Event.Description);
 }
Exemplo n.º 26
0
 public void Catalog_Must_IsLeaf()
 {
     var infoValue = new KeyValueBuilder(new Dictionary<string, string> {
         {"XM","测试"},
         {"ZZJGM","110114"}
     }).ToArray();
     var request = new Message
     {
         MessageId = System.Guid.NewGuid().ToString(),
         Version = "v1",
         MessageType = "action",
         IsDumb = true,
         Verb = "Update",
         Ontology = "JS",
         Body = new BodyData(new KeyValueBuilder().Append("Id", "0008E9A4-CC11-48FB-9B1C-C72D4795AEDF").ToArray(), infoValue),
         TimeStamp = DateTime.UtcNow.Ticks
     }.JspxToken();
     var response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
     Assert.IsTrue((int)Status.InvalidCatalog == response.Body.Event.Status, response.Body.Event.Description);
     request.IsDumb = false;
     response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
     Assert.IsTrue((int)Status.InvalidCatalog == response.Body.Event.Status, response.Body.Event.Description);
 }
Exemplo n.º 27
0
 public void Action_Update_OutOfLength()
 {
     var infoValue = new KeyValueBuilder(new Dictionary<string, string> {
         {"XM","测试"},
         {"ZZJGM","11011421005"}
     }).ToArray();
     var request = new Message
     {
         Version = "v1",
         MessageType = "action",
         IsDumb = true,
         Verb = "Update",
         Ontology = "JS",
         MessageId = new string('A', 100),
         Body = new BodyData(new KeyValueBuilder().Append("Id", "010C1D7A-9BA5-4AEA-9D4B-290476A79D12").ToArray(), infoValue),
     }.JspxToken();
     var response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
     Assert.IsTrue((int)Status.OutOfLength == response.Body.Event.Status, response.Body.Event.Description);
     request.IsDumb = false;
     response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
     Assert.IsTrue((int)Status.OutOfLength == response.Body.Event.Status, response.Body.Event.Description);
 }
Exemplo n.º 28
0
 public void Command_MessageID_CanNotBeNullOrEmpty()
 {
     var xm = System.Guid.NewGuid().ToString();
     var infoValue = new KeyValueBuilder(new Dictionary<string, string> {
         {"XM",xm},
         {"ZZJGM","11011421005"}
     }).ToArray();
     var request = new Message
     {
         Version = "v1",
         MessageType = "command",
         IsDumb = true,
         Verb = "Create",
         Ontology = "JS",
         MessageId = (DateTime.Now.Ticks % 2) == 0 ? null : string.Empty,
         Body = new BodyData(infoValue, infoValue),
         TimeStamp = DateTime.UtcNow.Ticks
     }.JspxToken();
     var response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
     Assert.IsTrue((int)Status.InvalidArgument == response.Body.Event.Status, response.Body.Event.Description);
     request.IsDumb = false;
     response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
     Assert.IsTrue((int)Status.InvalidArgument == response.Body.Event.Status, response.Body.Event.Description);
 }
Exemplo n.º 29
0
 public void Command_Head()
 {
     var infoValue = new KeyValueBuilder(new Dictionary<string, string> {
         {"XM","教师100"}
     }).ToArray();
     var request = new Message
     {
         MessageId = System.Guid.NewGuid().ToString(),
         Version = "v1",
         IsDumb = true,
         Verb = "Head",
         MessageType = "command",
         Ontology = "JS",
         Body = new BodyData(infoValue, null),
         TimeStamp = DateTime.UtcNow.Ticks
     }.JspxToken();
     var response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
     Assert.IsTrue((int)Status.ReceiveOk == response.Body.Event.Status, response.Body.Event.Description);
     request.IsDumb = false;
     response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
     Assert.IsTrue((int)Status.ReceiveOk == response.Body.Event.Status, response.Body.Event.Description);
 }
Exemplo n.º 30
0
 public void Command_Event_NotExist2()
 {
     var xm = System.Guid.NewGuid().ToString();
     var infoValue = new KeyValueBuilder(new Dictionary<string, string> {
         {"XM",xm},
         {"ZZJGM","11011421005"}
     }).ToArray();
     var request = new Message
     {
         MessageId = System.Guid.NewGuid().ToString(),
         Verb = "Create",
         Ontology = "JS",
         MessageType = "event",
         IsDumb = true,
         TimeStamp = DateTime.UtcNow.Ticks,
         Version = "v1",
         Body = new BodyData(infoValue, infoValue)
         {
             Event = new EventData
             {
                 Subject = "StateCodeChanged",
                 SourceType = EventSourceType.Command.ToName(),
                 Status = (int)Status.AuditApproved
             }
         }
     }.JspxToken();
     var response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
     Assert.IsTrue((int)Status.NotExist == response.Body.Event.Status, response.Body.Event.Description);
     request.IsDumb = false;
     response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
     Assert.IsTrue((int)Status.NotExist == response.Body.Event.Status, response.Body.Event.Description);
 }
Exemplo n.º 31
0
 public void Audit_Level5CatalogAction()
 {
     var xm = NewXM();
     var infoValue = new KeyValueBuilder(new Dictionary<string, string> {
         {"XM",xm},
         {"ZZJGM","11010000001"}
     }).ToArray();
     var request = new Message
     {
         MessageId = System.Guid.NewGuid().ToString(),
         Version = "v1",
         MessageType = "action",
         IsDumb = true,
         Verb = "Create",
         Ontology = "JS",
         Body = new BodyData(infoValue, infoValue),
         TimeStamp = DateTime.UtcNow.Ticks
     }.JspxToken();
     var response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
     Assert.IsTrue((int)Status.ToAudit == response.Body.Event.Status, response.Body.Event.Description);
     request.IsDumb = false;
     response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
     Assert.IsTrue((int)Status.ToAudit == response.Body.Event.Status, response.Body.Event.Description);
     request.Verb = "update";
     response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
     Assert.IsTrue((int)Status.NotExist == response.Body.Event.Status, response.Body.Event.Description);
 }
Exemplo n.º 32
0
 public void Entity_Event_InvalidStateCode()
 {
     var xm = System.Guid.NewGuid().ToString();
     var infoValue = new KeyValueBuilder(new Dictionary<string, string> {
         {"XM",xm},
         {"ZZJGM","11011421005"}
     }).ToArray();
     var request = new Message
     {
         MessageId = System.Guid.NewGuid().ToString(),
         MessageType = "event",
         IsDumb = true,
         Verb = "Create",
         Ontology = "JS",
         TimeStamp = DateTime.UtcNow.Ticks,
         Version = "v1",
         Body = new BodyData(infoValue, infoValue)
         {
             Event = new EventData
             {
                 Subject = "StateCodeChanged",
                 SourceType = "entity"
             }
         },
     }.JspxToken();
     //var response = request.RequestNode(acDomain.NodeHost.Nodes.CenterNode);
     var response = AnyMessage.Create(HecpRequest.Create(AcDomain, request), AcDomain.NodeHost.Nodes.CenterNode).Response();
     Assert.IsTrue((int)Status.InvalidStatus == response.Body.Event.Status, response.Body.Event.Description);
     request.IsDumb = false;
     response = request.RequestNode(AcDomain.NodeHost.Nodes.CenterNode);
     Assert.IsTrue((int)Status.InvalidStatus == response.Body.Event.Status, response.Body.Event.Description);
 }