public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context) { ListActivityTypesResponse response = new ListActivityTypesResponse(); UnmarshallResult(context, response); return(response); }
/// <summary> /// Unmarshaller the response from the service to the response class. /// </summary> /// <param name="context"></param> /// <returns></returns> public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context) { ListActivityTypesResponse response = new ListActivityTypesResponse(); response.ActivityTypeInfos = ActivityTypeInfosUnmarshaller.Instance.Unmarshall(context); return(response); }
public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context) { ListActivityTypesResponse response = new ListActivityTypesResponse(); context.Read(); response.ListActivityTypesResult = ListActivityTypesResultUnmarshaller.GetInstance().Unmarshall(context); return(response); }
private void SetupAmazonSwfToReturn(params ActivityTypeInfo[] activityTypeInfos) { var listActivityTypesResponse = new ListActivityTypesResponse(); listActivityTypesResponse.ActivityTypeInfos = new ActivityTypeInfos() { TypeInfos = activityTypeInfos.ToList() }; _amazonWorkflowClient.Setup(a => a.ListActivityTypesAsync(It.IsAny <ListActivityTypesRequest>(), default(CancellationToken))) .Returns(Task.FromResult(listActivityTypesResponse)); }
private void AmazonSwfReturnsActivityEmptyListFor(string activityName, string domainName) { Action <ListActivityTypesRequest, CancellationToken> requestedParameters = (r, c) => { Assert.That(r.Name, Is.EqualTo(activityName)); Assert.That(r.Domain, Is.EqualTo(domainName)); Assert.That(r.MaximumPageSize, Is.EqualTo(1000)); Assert.That(c, Is.EqualTo(default(CancellationToken))); Assert.That(r.RegistrationStatus, Is.EqualTo(RegistrationStatus.REGISTERED)); }; var emptyListResponse = new ListActivityTypesResponse { ActivityTypeInfos = new ActivityTypeInfos { TypeInfos = new List <ActivityTypeInfo>() } }; _amazonWorkflowClient.Setup(a => a.ListActivityTypesAsync(It.IsAny <ListActivityTypesRequest>(), default(CancellationToken))) .Returns(Task.FromResult(emptyListResponse)).Callback(requestedParameters); }
private async Task CreateActivity() { //Get the list of activities for the specified domain ListActivityTypesRequest listActivityRequest = new ListActivityTypesRequest() { Domain = this.SwfConfiguration.DomainName, Name = this.SwfConfiguration.ActivityName, RegistrationStatus = RegistrationStatus.REGISTERED }; ListActivityTypesResponse listActivityTypesResponse = await this.SwfClient.ListActivityTypesAsync(listActivityRequest); //Check if our activity exists if (listActivityTypesResponse.ActivityTypeInfos.TypeInfos.Count > 0) { return; } //If doesn't exist -> create RegisterActivityTypeRequest registerActivityTypeRequest = new RegisterActivityTypeRequest() { Domain = this.SwfConfiguration.DomainName, Name = this.SwfConfiguration.ActivityName, Description = this.SwfConfiguration.ActivityDescription, Version = this.SwfConfiguration.ActivityVersion, DefaultTaskList = new TaskList() { Name = this.SwfConfiguration.ActivityTasksList }, DefaultTaskScheduleToCloseTimeout = this.SwfConfiguration.ScheduleToCloseTimeout, DefaultTaskScheduleToStartTimeout = this.SwfConfiguration.ScheduleToStartTimeout, DefaultTaskStartToCloseTimeout = this.SwfConfiguration.StartToCloseTimeout, DefaultTaskHeartbeatTimeout = this.SwfConfiguration.HeartbeatTimeout, }; await this.SwfClient.RegisterActivityTypeAsync(registerActivityTypeRequest); }
public void CRUDTest() { var domainName = "sdk-dotnet-crud-" + DateTime.Now.Ticks; var regRequest = new RegisterDomainRequest() { Name = domainName, Description = "A Description", WorkflowExecutionRetentionPeriodInDays = "3" }; var regResponse = Client.RegisterDomain(regRequest); try { Sleep(); // Sleep for the eventual consistency Assert.IsNotNull(regResponse.ResponseMetadata.RequestId); var descRequest = new DescribeDomainRequest() { Name = domainName }; var descResponse = Client.DescribeDomain(descRequest); Assert.AreEqual(domainName, descResponse.DomainDetail.DomainInfo.Name); Assert.AreEqual("A Description", descResponse.DomainDetail.DomainInfo.Description); Assert.AreEqual("3", descResponse.DomainDetail.Configuration.WorkflowExecutionRetentionPeriodInDays); Assert.IsNotNull(descResponse.DomainDetail.DomainInfo.Status); DomainInfo info = null; for (int i = 0; i < MaxRetries; i++) { Sleep(); // Sleep for the eventual consistency var listDomainResponse = Client.ListDomains( new ListDomainsRequest() { RegistrationStatus = descResponse.DomainDetail.DomainInfo.Status }); Assert.IsTrue(listDomainResponse.DomainInfos.Infos.Count > 0); info = listDomainResponse.DomainInfos.Infos.FirstOrDefault(x => string.Equals(x.Name, domainName)); if (info != null) { break; } } Assert.IsNotNull(info); Assert.IsNotNull(info.Status); var activityDescription = "My Description Activity" + DateTime.Now.Ticks; var regActivityRequest = new RegisterActivityTypeRequest() { Name = "My Activity", Domain = domainName, Description = activityDescription, Version = "1.0", DefaultTaskList = new TaskList() { Name = "ImportantTasks" }, DefaultTaskHeartbeatTimeout = ONE_HOUR_DURATION, DefaultTaskScheduleToCloseTimeout = TWO_HOUR_DURATION, DefaultTaskScheduleToStartTimeout = THREE_HOUR_DURATION, DefaultTaskStartToCloseTimeout = FOUR_HOUR_DURATION }; var regActivityResponse = Client.RegisterActivityType(regActivityRequest); Assert.IsNotNull(regActivityResponse.ResponseMetadata.RequestId); try { Sleep(); // Sleep for the eventual consistency var descActivityTypeRequest = new DescribeActivityTypeRequest() { Domain = domainName, ActivityType = new ActivityType() { Name = "My Activity", Version = "1.0" } }; var descActivityTypeResponse = Client.DescribeActivityType(descActivityTypeRequest); Assert.AreEqual(ONE_HOUR_DURATION, descActivityTypeResponse.ActivityTypeDetail.Configuration.DefaultTaskHeartbeatTimeout); Assert.AreEqual(TWO_HOUR_DURATION, descActivityTypeResponse.ActivityTypeDetail.Configuration.DefaultTaskScheduleToCloseTimeout); Assert.AreEqual(THREE_HOUR_DURATION, descActivityTypeResponse.ActivityTypeDetail.Configuration.DefaultTaskScheduleToStartTimeout); Assert.AreEqual(FOUR_HOUR_DURATION, descActivityTypeResponse.ActivityTypeDetail.Configuration.DefaultTaskStartToCloseTimeout); ListActivityTypesResponse listActivityResponse = null; for (int i = 0; i < MaxRetries; i++) { Sleep(); // Sleep for the eventual consistency listActivityResponse = Client.ListActivityTypes( new ListActivityTypesRequest() { Domain = domainName, RegistrationStatus = descActivityTypeResponse.ActivityTypeDetail.TypeInfo.Status }); if (listActivityResponse.ActivityTypeInfos.TypeInfos.Count > 0) { break; } } Assert.IsNotNull(listActivityResponse); Assert.IsTrue(listActivityResponse.ActivityTypeInfos.TypeInfos.Count > 0); var acInfo = listActivityResponse.ActivityTypeInfos.TypeInfos.FirstOrDefault(x => x.Description == activityDescription); Assert.IsNotNull(acInfo); } finally { var depActivityRequest = new DeprecateActivityTypeRequest() { Domain = domainName, ActivityType = new ActivityType() { Name = "My Activity", Version = "1.0" } }; var depActivityTypeResponse = Client.DeprecateActivityType(depActivityRequest); } var workflowDescription = "My Workflow Description" + DateTime.Now.Ticks; var regWorkflowRequest = new RegisterWorkflowTypeRequest() { Name = "My Workflow", Domain = domainName, Description = workflowDescription, Version = "1.0", DefaultTaskList = new TaskList() { Name = "ImportantTasks" }, DefaultExecutionStartToCloseTimeout = THREE_HOUR_DURATION, DefaultTaskStartToCloseTimeout = FOUR_HOUR_DURATION }; var regWorkflowResponse = Client.RegisterWorkflowType(regWorkflowRequest); try { Sleep(); // Sleep for the eventual consistency var descWorkFlowRequest = new DescribeWorkflowTypeRequest() { Domain = domainName, WorkflowType = new WorkflowType() { Name = "My Workflow", Version = "1.0" } }; var descWorkflowResponse = Client.DescribeWorkflowType(descWorkFlowRequest); Assert.AreEqual("My Workflow", descWorkflowResponse.WorkflowTypeDetail.TypeInfo.WorkflowType.Name); Assert.AreEqual("1.0", descWorkflowResponse.WorkflowTypeDetail.TypeInfo.WorkflowType.Version); Assert.AreEqual(THREE_HOUR_DURATION, descWorkflowResponse.WorkflowTypeDetail.Configuration.DefaultExecutionStartToCloseTimeout); Assert.AreEqual(FOUR_HOUR_DURATION, descWorkflowResponse.WorkflowTypeDetail.Configuration.DefaultTaskStartToCloseTimeout); Assert.AreEqual("ImportantTasks", descWorkflowResponse.WorkflowTypeDetail.Configuration.DefaultTaskList.Name); ListWorkflowTypesResponse listWorkflowResponse = null; for (int retries = 0; retries < 5; retries++) { Thread.Sleep(1000 * retries); listWorkflowResponse = Client.ListWorkflowTypes( new ListWorkflowTypesRequest() { Domain = domainName, RegistrationStatus = descWorkflowResponse.WorkflowTypeDetail.TypeInfo.Status }); if (listWorkflowResponse.WorkflowTypeInfos.TypeInfos.Count > 0) { break; } } Assert.IsTrue(listWorkflowResponse.WorkflowTypeInfos.TypeInfos.Count > 0); var wfInfo = listWorkflowResponse.WorkflowTypeInfos.TypeInfos.FirstOrDefault(x => x.Description == workflowDescription); Assert.IsNotNull(wfInfo); } finally { var depWorkflowRequest = new DeprecateWorkflowTypeRequest() { Domain = domainName, WorkflowType = new WorkflowType() { Name = "My Workflow", Version = "1.0" } }; var depWorkflowTypeResponse = Client.DeprecateWorkflowType(depWorkflowRequest); Assert.IsNotNull(depWorkflowTypeResponse.ResponseMetadata.RequestId); } } finally { var depRequest = new DeprecateDomainRequest() { Name = domainName }; var depResponse = Client.DeprecateDomain(depRequest); Assert.IsNotNull(depResponse.ResponseMetadata.RequestId); } }
private static void UnmarshallResult(JsonUnmarshallerContext context, ListActivityTypesResponse response) { response.ActivityTypeInfos = ActivityTypeInfosUnmarshaller.GetInstance().Unmarshall(context); return; }