public static ActivityContext GetFileListActivityDO() { var terminalDTO = Fixture.Build <TerminalDTO>() .With(x => x.Name) .With(x => x.Version) .OmitAutoProperties() .Create(); ActivityTemplateSummaryDTO activityTemplateDTO = Fixture.Build <ActivityTemplateSummaryDTO>() .With(x => x.Name) .With(x => x.Version) .With(x => x.TerminalName, terminalDTO.Name) .With(x => x.TerminalVersion, terminalDTO.Version) .OmitAutoProperties() .Create(); ActivityPayload activityPayload = Fixture.Build <ActivityPayload>() .With(x => x.Id) .With(x => x.ActivityTemplate, activityTemplateDTO) .With(x => x.CrateStorage, new CrateStorage()) .OmitAutoProperties() .Create(); ActivityContext activityContext = Fixture.Build <ActivityContext>() .With(x => x.ActivityPayload, activityPayload) .With(x => x.AuthorizationToken, DropboxAuthorizationToken()) .OmitAutoProperties() .Create(); return(activityContext); }
public static Fr8DataDTO Post_Comment_v1_InitialConfiguration_Fr8DataDTO() { var token = SampleAuthorizationToken(); var activityTemplate = new ActivityTemplateSummaryDTO() { TerminalName = "terminalAsana", TerminalVersion = "1", Name = "Post_Comment_TEST", Version = "1" }; var activityDTO = new ActivityDTO() { Id = Guid.NewGuid(), Label = "Post something", ActivityTemplate = activityTemplate, AuthToken = new AuthorizationTokenDTO() { Token = token.Token, ExpiresAt = token.ExpiresAt, ExternalAccountId = token.ExternalAccountId, ExternalAccountName = "Asana Fr8 Dev" } }; return(new Fr8DataDTO { ActivityDTO = activityDTO }); }
private ActivityTemplateSummaryDTO CreateActivityTemplateFixture() { var activityTemplate = new ActivityTemplateSummaryDTO { Name = "Select_Fr8_Object_TEST", Version = "1" }; return(activityTemplate); }
private ActivityTemplateSummaryDTO CreateActivityTemplateFixture() { var activityTemplate = new ActivityTemplateSummaryDTO { Name = "Set_Delay_TEST", Version = "1" }; return(activityTemplate); }
public static ActivityTemplateSummaryDTO TestActivityTemplateDTOV2() { var curActionTemplate = new ActivityTemplateSummaryDTO { Name = "terminal_azure_sql_server", Version = "1", TerminalName = "test", TerminalVersion = "1" }; return(curActionTemplate); }
public static Fr8DataDTO SaveToFileTestAction() { ActivityTemplateSummaryDTO activityTemplateDto = Fixture.Build <ActivityTemplateSummaryDTO>() .With(x => x.Name, "SaveToFile_TEST") .With(x => x.Version, "1") .OmitAutoProperties() .Create(); ActivityDTO activityDto = Fixture.Build <ActivityDTO>() .With(x => x.Id) .With(x => x.ActivityTemplate, activityTemplateDto) .With(x => x.AuthToken, GetBoxAuthToken()) .OmitAutoProperties() .Create(); return(Fixture.Build <Fr8DataDTO>() .With(x => x.ActivityDTO, activityDto) .OmitAutoProperties() .Create()); }
public static Fr8DataDTO GetFileListTestFr8DataDTO() { ActivityTemplateSummaryDTO activityTemplateDto = Fixture.Build <ActivityTemplateSummaryDTO>() .With(x => x.Name, "Get_File_List_TEST") .With(x => x.Version, "1") .OmitAutoProperties() .Create(); ActivityDTO activityDto = Fixture.Build <ActivityDTO>() .With(x => x.Id) .With(x => x.ActivityTemplate, activityTemplateDto) .With(x => x.CrateStorage, null) .With(x => x.AuthToken, DropboxAuthorizationTokenDTO()) .OmitAutoProperties() .Create(); return(Fixture.Build <Fr8DataDTO>() .With(x => x.ActivityDTO, activityDto) .OmitAutoProperties() .Create()); }
public static ActivityContext TestActivityContext1() { var activityTemplateDTO = new ActivityTemplateSummaryDTO { Name = "Type1", Version = "1", TerminalName = "TestTerminal", TerminalVersion = "1" }; var activityPayload = new ActivityPayload { Id = Guid.NewGuid(), Name = "Type2", ActivityTemplate = activityTemplateDTO, CrateStorage = new CrateStorage() }; var activityContext = new ActivityContext { ActivityPayload = activityPayload }; return(activityContext); }
public override void SetUp() { base.SetUp(); AutoMapperBootstrapper.ConfigureAutoMapper(); ObjectFactory.Configure(x => x.AddRegistry <StructureMapBootStrapper.TestMode>()); ObjectFactory.Configure(x => x.For <IActivityStore>().Use <ActivityStore>().Singleton()); var crateStorage = new CrateStorage(Crate.FromContent("", new OperationalStateCM())); var crateDTO = CrateManager.ToDto(crateStorage); var hubCommunicatorMock = new Mock <IHubCommunicator>(); hubCommunicatorMock.Setup(x => x.GetPayload(It.IsAny <Guid>())) .ReturnsAsync(new PayloadDTO(Guid.NewGuid()) { CrateStorage = crateDTO }); ObjectFactory.Configure(cfg => cfg.For <IHubCommunicator>().Use(hubCommunicatorMock.Object)); CrateManagerHelper = new CrateManager(); _activityExecutor = ObjectFactory.GetInstance <ActivityExecutor>(); _activityStore = ObjectFactory.GetInstance <IActivityStore>(); var activityTemplateSummary = new ActivityTemplateSummaryDTO { Name = ExplicitTerminalActivityMock.ActivityTemplate.Name, Version = ExplicitTerminalActivityMock.ActivityTemplate.Version, TerminalName = ExplicitTerminalActivityMock.ActivityTemplate.Terminal.Name, TerminalVersion = ExplicitTerminalActivityMock.ActivityTemplate.Terminal.Version }; if (_activityStore.GetFactory(activityTemplateSummary.Name, activityTemplateSummary.Version) == null) { _activityStore.RegisterActivity <ExplicitTerminalActivityMock>(ExplicitTerminalActivityMock.ActivityTemplate); } }
/// <summary> /// Returns ActivityTemplate by it's name and version. /// For example GetByNameAndVersion(uow, "AddPayloadManually", "1"). /// </summary> public ActivityTemplateDO GetByNameAndVersion(ActivityTemplateSummaryDTO activityTemplateSummary) { Initialize(); lock (_activityTemplates) { IEnumerable <ActivityTemplateDO> activityTemplates = _activityTemplates.Values.Where(x => x.Name == activityTemplateSummary.Name && x.Version == activityTemplateSummary.Version); #if DEBUG bool terminalInfoMissing = false; #endif if (string.IsNullOrWhiteSpace(activityTemplateSummary.TerminalName)) { activityTemplates = activityTemplates.Where(x => x.Terminal.Name == activityTemplateSummary.TerminalName); #if DEBUG terminalInfoMissing = true; #endif } if (string.IsNullOrWhiteSpace(activityTemplateSummary.Version)) { activityTemplates = activityTemplates.Where(x => x.Terminal.Version == activityTemplateSummary.TerminalVersion); #if DEBUG terminalInfoMissing = true; #endif } var activityTemplatesArray = activityTemplates.ToArray(); if (activityTemplatesArray.Length == 0) { return(null); } #if DEBUG if (terminalInfoMissing) { var stackTrace = new StackTrace(); var stackFrames = stackTrace.GetFrames(); var message = new StringBuilder(); message.AppendLine($"Terminal information is missing for activity template: Name = {activityTemplateSummary.Name}, Version = {activityTemplateSummary.Version}"); foreach (StackFrame stackFrame in stackFrames) { var method = stackFrame.GetMethod(); message.AppendLine($"{method.DeclaringType.FullName}:{method.Name}"); } Logger.Warn(message.ToString()); } #endif if (activityTemplatesArray.Length > 1) { var exception = new Exception($"Ambiguous activity template resolution for activity template: Name = {activityTemplateSummary.Name}, Version = {activityTemplateSummary.Version}, " + $"TerminalName = {activityTemplateSummary.TerminalName}, TerminalVersion = {activityTemplateSummary.TerminalVersion}"); Logger.Error("Ambiguous activity template resolution", exception); throw exception; } return(activityTemplatesArray[0]); } }
public async Task Extract_Data_From_Envelopes_EndToEnd() { await RevokeTokens(); string baseUrl = GetHubApiBaseUrl(); var solutionCreateUrl = baseUrl + "plans?solutionName=Extract_Data_From_Envelopes"; // // Create solution // var plan = await HttpPostAsync <string, PlanDTO>(solutionCreateUrl, null); var solution = plan.SubPlans.FirstOrDefault().Activities.FirstOrDefault(); // // Send configuration request without authentication token // _solution = await HttpPostAsync <ActivityDTO, ActivityDTO>(_baseUrl + "activities/configure?id=" + solution.Id, solution); _crateStorage = Crate.FromDto(_solution.CrateStorage); var authTokenId = await ResolveAuth(_solution, _crateStorage); // // Send configuration request with authentication token // _solution = await HttpPostAsync <ActivityDTO, ActivityDTO>(_baseUrl + "activities/configure?id=" + _solution.Id, _solution); _crateStorage = Crate.FromDto(_solution.CrateStorage); Assert.True(_crateStorage.CratesOfType <StandardConfigurationControlsCM>().Any(), "Crate StandardConfigurationControlsCM is missing in API response."); var controlsCrate = _crateStorage.CratesOfType <StandardConfigurationControlsCM>().First(); var controls = controlsCrate.Content.Controls; //let's make some selections and go for re-configure var dataSource = controls.OfType <DropDownList>().FirstOrDefault(c => c.Name == "FinalActionsList"); dataSource.Value = "Send_DocuSign_Envelope"; dataSource.selectedKey = "Send DocuSign Envelope"; using (var updater = Crate.GetUpdatableStorage(_solution)) { updater.Remove <StandardConfigurationControlsCM>(); updater.Add(controlsCrate); } _solution = await HttpPostAsync <ActivityDTO, ActivityDTO>(baseUrl + "activities/configure?id=" + _solution.Id, _solution); _crateStorage = Crate.FromDto(_solution.CrateStorage); Assert.AreEqual(2, _solution.ChildrenActivities.Count(), "Solution child activities failed to create."); Assert.True(_solution.ChildrenActivities.Any(a => a.ActivityTemplate.Name == "Monitor_DocuSign_Envelope_Activity" && a.Ordering == 1), "Failed to detect Monitor DocuSign Envelope Activity as the first child activity"); Assert.True(_solution.ChildrenActivities.Any(a => a.ActivityTemplate.Name == "Send_DocuSign_Envelope" && a.Ordering == 2), "Failed to detect Send DocuSign Envelope as the second child activity"); var monitorDocuSignEnvelopeActivity = _solution.ChildrenActivities .Single(x => x.ActivityTemplate.Name == "Monitor_DocuSign_Envelope_Activity"); // // Apply auth-token to child MonitorDocuSignEvnelope activity. // var applyToken = new AuthenticationTokenGrantDTO() { ActivityId = monitorDocuSignEnvelopeActivity.Id, AuthTokenId = authTokenId, IsMain = false }; await HttpPostAsync <AuthenticationTokenGrantDTO[], string>( _baseUrl + "authentication/tokens/grant", new AuthenticationTokenGrantDTO[] { applyToken } ); monitorDocuSignEnvelopeActivity = await HttpPostAsync <ActivityDTO, ActivityDTO>( _baseUrl + "activities/configure?id=" + monitorDocuSignEnvelopeActivity.Id, monitorDocuSignEnvelopeActivity ); // // Rename route // var newName = plan.Name + " | " + DateTime.UtcNow.ToShortDateString() + " " + DateTime.UtcNow.ToShortTimeString(); await HttpPostAsync <object, PlanDTO>(_baseUrl + "plans?id=" + plan.Id, new { id = plan.Id, name = newName }); // // Configure Monitor DocuSign Envelope action // _crateStorage = Crate.FromDto(monitorDocuSignEnvelopeActivity.CrateStorage); controlsCrate = _crateStorage.CratesOfType <StandardConfigurationControlsCM>().First(); var checkbox = (CheckBox)controlsCrate.Content.Controls.Single(c => c.Type == ControlTypes.CheckBox && c.Name == "EnvelopeSent"); checkbox.Selected = true; var radioButtonGroup = (RadioButtonGroup)controlsCrate.Content.Controls.Single(c => c.Type == ControlTypes.RadioButtonGroup && c.Name == "TemplateRecipientPicker"); radioButtonGroup.Radios[1].Selected = true; using (var updatableStorage = Crate.GetUpdatableStorage(monitorDocuSignEnvelopeActivity)) { updatableStorage.Remove <StandardConfigurationControlsCM>(); updatableStorage.Add(controlsCrate); } monitorDocuSignEnvelopeActivity = await HttpPostAsync <ActivityDTO, ActivityDTO>(_baseUrl + "activities/save", monitorDocuSignEnvelopeActivity); monitorDocuSignEnvelopeActivity = await HttpPostAsync <ActivityDTO, ActivityDTO>(_baseUrl + "activities/configure", monitorDocuSignEnvelopeActivity); radioButtonGroup = (RadioButtonGroup)controlsCrate.Content.Controls.Single(c => c.Type == ControlTypes.RadioButtonGroup && c.Name == "TemplateRecipientPicker"); var docuSignTemplate = radioButtonGroup.Radios[1].Controls.OfType <DropDownList>().First(); docuSignTemplate.Value = "9a4d2154-5b18-4316-9824-09432e62f458"; docuSignTemplate.selectedKey = "Medical_Form_v1"; docuSignTemplate.ListItems.Add(new ListItem() { Value = "9a4d2154-5b18-4316-9824-09432e62f458", Key = "Medical_Form_v1" }); using (var updatableStorage = Crate.GetUpdatableStorage(monitorDocuSignEnvelopeActivity)) { updatableStorage.Remove <StandardConfigurationControlsCM>(); updatableStorage.Add(controlsCrate); } monitorDocuSignEnvelopeActivity = await HttpPostAsync <ActivityDTO, ActivityDTO>(_baseUrl + "activities/save", monitorDocuSignEnvelopeActivity); monitorDocuSignEnvelopeActivity = await HttpPostAsync <ActivityDTO, ActivityDTO>(_baseUrl + "activities/configure", monitorDocuSignEnvelopeActivity); _crateStorage = Crate.FromDto(monitorDocuSignEnvelopeActivity.CrateStorage); controlsCrate = _crateStorage.CratesOfType <StandardConfigurationControlsCM>().First(); radioButtonGroup = (RadioButtonGroup)controlsCrate.Content.Controls.Single(c => c.Type == ControlTypes.RadioButtonGroup && c.Name == "TemplateRecipientPicker"); docuSignTemplate = radioButtonGroup.Radios[1].Controls.OfType <DropDownList>().First(); Assert.AreEqual("9a4d2154-5b18-4316-9824-09432e62f458", docuSignTemplate.Value, "Selected DocuSign Template did not save on Send DocuSign Envelope activity."); Assert.AreEqual("Medical_Form_v1", docuSignTemplate.selectedKey, "Selected DocuSign Template did not save on Send DocuSign Envelope activity."); // // Configure Send DocuSign Envelope action // var sendEnvelopeAction = _solution.ChildrenActivities.Single(a => a.ActivityTemplate.Name == "Send_DocuSign_Envelope"); var sendEnvelopeApplyToken = new AuthenticationTokenGrantDTO() { ActivityId = sendEnvelopeAction.Id, AuthTokenId = authTokenId, IsMain = false }; await HttpPostAsync <AuthenticationTokenGrantDTO[], string>( _baseUrl + "authentication/tokens/grant", new AuthenticationTokenGrantDTO[] { sendEnvelopeApplyToken } ); sendEnvelopeAction = await HttpPostAsync <ActivityDTO, ActivityDTO>( _baseUrl + "activities/configure?id=" + sendEnvelopeAction.Id, sendEnvelopeAction ); using (var updatableStorage = Crate.GetUpdatableStorage(sendEnvelopeAction)) { controlsCrate = updatableStorage.CratesOfType <StandardConfigurationControlsCM>().First(); docuSignTemplate = controlsCrate.Content.Controls.OfType <DropDownList>().First(); docuSignTemplate.Value = "9a4d2154-5b18-4316-9824-09432e62f458"; docuSignTemplate.selectedKey = "Medical_Form_v1"; docuSignTemplate.ListItems.Add(new ListItem() { Value = "9a4d2154-5b18-4316-9824-09432e62f458", Key = "Medical_Form_v1" }); } sendEnvelopeAction = await HttpPostAsync <ActivityDTO, ActivityDTO>(_baseUrl + "activities/save", sendEnvelopeAction); sendEnvelopeAction = await HttpPostAsync <ActivityDTO, ActivityDTO>(_baseUrl + "activities/configure", sendEnvelopeAction); // Follow-up Configuration TextSource emailField; TextSource emailNameField; using (var updatableStorage = Crate.GetUpdatableStorage(sendEnvelopeAction)) { controlsCrate = updatableStorage.CratesOfType <StandardConfigurationControlsCM>().First(); emailField = controlsCrate.Content.Controls.OfType <TextSource>().First(f => f.InitialLabel == "freight testing role email"); emailField.ValueSource = "specific"; emailField.Value = TestEmail; emailField.TextValue = TestEmail; emailNameField = controlsCrate.Content.Controls.OfType <TextSource>().First(f => f.InitialLabel == "freight testing role name"); emailNameField.ValueSource = "specific"; emailNameField.Value = TestEmailName; emailNameField.TextValue = TestEmailName; } sendEnvelopeAction = await HttpPostAsync <ActivityDTO, ActivityDTO>(_baseUrl + "activities/save", sendEnvelopeAction); _crateStorage = Crate.FromDto(sendEnvelopeAction.CrateStorage); controlsCrate = _crateStorage.CratesOfType <StandardConfigurationControlsCM>().First(); docuSignTemplate = controlsCrate.Content.Controls.OfType <DropDownList>().First(); Assert.AreEqual("9a4d2154-5b18-4316-9824-09432e62f458", docuSignTemplate.Value, "Selected DocuSign Template did not save on Send DocuSign Envelope action."); Assert.AreEqual("Medical_Form_v1", docuSignTemplate.selectedKey, "Selected DocuSign Template did not save on Send DocuSign Envelope action."); emailField = controlsCrate.Content.Controls.OfType <TextSource>().First(f => f.InitialLabel == "freight testing role email"); Assert.AreEqual(TestEmail, emailField.Value, "Email did not save on Send DocuSign Envelope action."); Assert.AreEqual(TestEmail, emailField.TextValue, "Email did not save on Send DocuSign Envelope action."); emailNameField = controlsCrate.Content.Controls.OfType <TextSource>().First(f => f.InitialLabel == "freight testing role name"); Assert.AreEqual(TestEmailName, emailNameField.Value, "Email Name did not save on Send DocuSign Envelope action."); Assert.AreEqual(TestEmailName, emailNameField.TextValue, "Email Name did not save on Send DocuSign Envelope action."); // Delete Monitor action await HttpDeleteAsync(_baseUrl + "activities?id=" + _solution.ChildrenActivities[0].Id); // Add Add Payload Manually action var activityCategoryParam = ActivityCategories.ProcessId.ToString(); var activityTemplates = await HttpGetAsync <List <WebServiceActivitySetDTO> >(_baseUrl + "webservices?id=" + activityCategoryParam); var apmActivityTemplate = activityTemplates .SelectMany(a => a.Activities) .Single(a => a.Name == "Add_Payload_Manually"); var activityTemplateSummary = new ActivityTemplateSummaryDTO { Name = apmActivityTemplate.Name, Version = apmActivityTemplate.Version, TerminalName = apmActivityTemplate.Terminal.Name, TerminalVersion = apmActivityTemplate.Terminal.Version }; var apmAction = new ActivityDTO() { ActivityTemplate = activityTemplateSummary, ParentPlanNodeId = _solution.Id, RootPlanNodeId = plan.Id }; apmAction = await HttpPostAsync <ActivityDTO, ActivityDTO>(_baseUrl + "activities/save", apmAction); Assert.NotNull(apmAction, "Add Payload Manually action failed to create"); Assert.IsTrue(apmAction.Id != default(Guid), "Add Payload Manually activity failed to create"); //Add rows to Add Payload Manually action apmAction = await HttpPostAsync <ActivityDTO, ActivityDTO>(_baseUrl + "activities/configure", apmAction); _crateStorage = Crate.FromDto(apmAction.CrateStorage); controlsCrate = _crateStorage.CratesOfType <StandardConfigurationControlsCM>().First(); var fieldList = controlsCrate.Content.Controls.OfType <FieldList>().First(); fieldList.Value = @"[{""Key"":""Doctor"",""Value"":""Doctor1""},{""Key"":""Condition"",""Value"":""Condition1""}]"; using (var updatableStorage = Crate.GetUpdatableStorage(apmAction)) { updatableStorage.Remove <StandardConfigurationControlsCM>(); updatableStorage.Add(controlsCrate); } // Move Add Payload Manually action to the beginning of the plan apmAction.Ordering = 1; apmAction = await HttpPostAsync <ActivityDTO, ActivityDTO>(_baseUrl + "activities/save", apmAction); apmAction = await HttpPostAsync <ActivityDTO, ActivityDTO>(_baseUrl + "activities/configure", apmAction); Assert.AreEqual(1, apmAction.Ordering, "Failed to reoder the activity Add Payload Manually"); // // Activate and run plan // await HttpPostAsync <string, ContainerDTO>(_baseUrl + "plans/run?planId=" + plan.Id, null); // // Deactivate plan // await HttpPostAsync <string, string>(_baseUrl + "plans/deactivate?planId=" + plan.Id, null); // // Delete plan // //await HttpDeleteAsync(_baseUrl + "plans?id=" + plan.Id); }