示例#1
0
        public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems)
        {
            AmazonGlueConfig config = new AmazonGlueConfig();

            config.RegionEndpoint = region;
            ConfigureClient(config);
            AmazonGlueClient client = new AmazonGlueClient(creds, config);

            ListWorkflowsResponse resp = new ListWorkflowsResponse();

            do
            {
                ListWorkflowsRequest req = new ListWorkflowsRequest
                {
                    NextToken = resp.NextToken
                    ,
                    MaxResults = maxItems
                };

                resp = client.ListWorkflows(req);
                CheckError(resp.HttpStatusCode, "200");

                foreach (var obj in resp.Workflows)
                {
                    AddObject(obj);
                }
            }while (!string.IsNullOrEmpty(resp.NextToken));
        }
        /// <summary>
        /// Unmarshaller the response from the service to the response class.
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context)
        {
            ListWorkflowsResponse response = new ListWorkflowsResponse();

            context.Read();
            int targetDepth = context.CurrentDepth;

            while (context.ReadAtDepth(targetDepth))
            {
                if (context.TestExpression("NextToken", targetDepth))
                {
                    var unmarshaller = StringUnmarshaller.Instance;
                    response.NextToken = unmarshaller.Unmarshall(context);
                    continue;
                }
                if (context.TestExpression("Workflows", targetDepth))
                {
                    var unmarshaller = new ListUnmarshaller <string, StringUnmarshaller>(StringUnmarshaller.Instance);
                    response.Workflows = unmarshaller.Unmarshall(context);
                    continue;
                }
            }

            return(response);
        }
示例#3
0
        public async Task shouldReceiveResponseAsExpected()
        {
            // given
            var expectedResponse = new ListWorkflowsResponse();

            expectedResponse.Workflows.Add(new WorkflowMetadata
            {
                BpmnProcessId = "process",
                ResourceName  = "file2.bpmn",
                Version       = 1,
                WorkflowKey   = 2
            });
            expectedResponse.Workflows.Add(new WorkflowMetadata
            {
                BpmnProcessId = "process2",
                ResourceName  = "file.bpmn",
                Version       = 1,
                WorkflowKey   = 3
            });

            TestService.AddRequestHandler(typeof(ListWorkflowsRequest), request => expectedResponse);

            // when
            var response = await ZeebeClient.NewListWorkflowRequest().BpmnProcessId("process").Send();

            // then
            Assert.AreEqual(2, response.WorkflowList.Count);

            var workflowMetadata = response.WorkflowList[0];

            Assert.AreEqual("process", workflowMetadata.BpmnProcessId);
            Assert.AreEqual(1, workflowMetadata.Version);
            Assert.AreEqual("file2.bpmn", workflowMetadata.ResourceName);
            Assert.AreEqual(2, workflowMetadata.WorkflowKey);

            var workflowMetadata2 = response.WorkflowList[1];

            Assert.AreEqual("process2", workflowMetadata2.BpmnProcessId);
            Assert.AreEqual(1, workflowMetadata2.Version);
            Assert.AreEqual("file.bpmn", workflowMetadata2.ResourceName);
            Assert.AreEqual(3, workflowMetadata2.WorkflowKey);
        }
示例#4
0
 public WorkflowListResponse(ListWorkflowsResponse response)
 {
     WorkflowList = response.Workflows.Select(metadata => new WorkflowMetadata(metadata)).Cast <IWorkflowMetadata>().ToList();
 }