public async Task Run_ShouldPostToFacebook()
        {
            var fbIntegrationService = new Mock <IFacebookIntegration>();

            fbIntegrationService.Setup(x => x.PostToTimeline(It.IsAny <string>(), It.IsAny <string>())).Returns(Task.FromResult(0));
            ObjectFactory.Container.Inject(typeof(IFacebookIntegration), fbIntegrationService.Object);

            var activity = New <Post_To_Timeline_v1>();
            //Arrage
            var activityContext = await ConfigurePostToTimeline(activity);

            var containerExecutionContext = new ContainerExecutionContext
            {
                PayloadStorage = new CrateStorage(Crate.FromContent(string.Empty, new OperationalStateCM()))
            };
            var controls  = activityContext.ActivityPayload.CrateStorage.CratesOfType <StandardConfigurationControlsCM>().Single();
            var smsNumber = controls.Content.Controls.OfType <TextSource>().Single(t => t.Name.Equals("Message"));

            smsNumber.TextValue = "Test";
            //Act
            containerExecutionContext = await RunPostToTimeline(activity, activityContext, containerExecutionContext);

            var operationalStateCM = containerExecutionContext.PayloadStorage.CrateContentsOfType <OperationalStateCM>().Single();

            Assert.True(operationalStateCM.CurrentActivityResponse.Type == ActivityResponse.Success.ToString(), "Post_To_Timeline_v1 doesn't return success when everything is ok");
            fbIntegrationService.Verify(x => x.PostToTimeline(It.IsAny <string>(), It.IsAny <string>()), Times.Once);
        }
예제 #2
0
        public async Task Run_Check_PayloadDTO_ForObjectData()
        {
            //Arrange
            var authToken = await FixtureData.Salesforce_AuthToken();

            var activityContext = await FixtureData.GetFileListTestActivityContext1();

            var executionContext = new ContainerExecutionContext
            {
                PayloadStorage = new CrateStorage(Crate.FromContent(string.Empty, new OperationalStateCM()))
            };

            //perform initial configuration
            await _getData_v1.Configure(activityContext);

            activityContext = SelectSalesforceAccount(activityContext);
            //perform follow up configuration
            await _getData_v1.Configure(activityContext);

            activityContext.ActivityPayload.CrateStorage.CratesOfType <StandardConfigurationControlsCM>()
            .Single()
            .Content.Controls.Single(control => control.Type == ControlTypes.QueryBuilder)
            //.Value = JsonConvert.SerializeObject(new FilterDataDTO() {Conditions = new List<FilterConditionDTO>()});
            .Value = JsonConvert.SerializeObject(new List <FilterConditionDTO>());

            //Act
            await _getData_v1.Run(activityContext, executionContext);

            //Assert
            var stroage = executionContext.PayloadStorage;

            Assert.AreEqual(2, stroage.Count, "Number of Payload crates not populated correctly");

            Assert.IsNotNull(stroage.CratesOfType <StandardTableDataCM>().Single(), "Not able to get the required salesforce object");
        }
예제 #3
0
        public async Task Run_WhenNoMonitorOptionIsSelected_ReturnsValidationError()
        {
            var activity        = New <Monitor_Channel_v2>();
            var activityContext = new ActivityContext
            {
                HubCommunicator = ObjectFactory.GetInstance <IHubCommunicator>(),
                ActivityPayload = new ActivityPayload
                {
                    CrateStorage = new CrateStorage()
                },
                AuthorizationToken = AuthorizationToken
            };
            var executionContext = new ContainerExecutionContext
            {
                PayloadStorage = new CrateStorage(Crate.FromContent(string.Empty, new OperationalStateCM()))
            };
            await activity.Configure(activityContext);

            var configurationControls = activityContext.ActivityPayload.CrateStorage.FirstCrate <StandardConfigurationControlsCM>().Content;

            configurationControls.FindByNameNested <CheckBox>("MonitorChannelsOption").Selected      = false;
            configurationControls.FindByNameNested <RadioButtonOption>("AllChannelsOption").Selected = false;

            await activity.Run(activityContext, executionContext);

            var operationalState = executionContext.PayloadStorage.FirstCrateContentOrDefault <OperationalStateCM>();

            Assert.AreEqual(ActivityResponse.Error.ToString(), operationalState.CurrentActivityResponse.Type, "Error response was not produced when no monitor option was selected");
        }
예제 #4
0
        public async Task Run_WhenPayloadHasEventAndItPassFilters_ReturnsSuccess()
        {
            var activity        = New <Monitor_Channel_v2>();
            var activityContext = new ActivityContext
            {
                HubCommunicator = ObjectFactory.GetInstance <IHubCommunicator>(),
                ActivityPayload = new ActivityPayload
                {
                    CrateStorage = new CrateStorage()
                },
                AuthorizationToken = AuthorizationToken
            };
            var executionContext = new ContainerExecutionContext
            {
                PayloadStorage = HealthMonitor_FixtureData.GetDirectMessageEventPayload()
            };
            await activity.Configure(activityContext);

            activityContext.ActivityPayload.CrateStorage.UpdateControls <Monitor_Channel_v2.ActivityUi>(x =>
            {
                x.MonitorDirectMessagesOption.Selected = true;
                x.MonitorChannelsOption.Selected       = false;
            });
            await activity.Run(activityContext, executionContext);

            var operationalState = executionContext.PayloadStorage.FirstCrateContentOrDefault <OperationalStateCM>();

            Assert.AreEqual(ActivityResponse.Success.ToString(), operationalState.CurrentActivityResponse.Type, "RequestTerminate response was not produced when event didn't match monitoring options");
            Assert.IsNotNull(executionContext.PayloadStorage.FirstCrateOrDefault <StandardPayloadDataCM>(), "Activity didn't produce crate with payload data");
        }
예제 #5
0
        public async Task Run_WhenMessageIsEmpty_ReturnsError()
        {
            var activity         = New <Post_To_Chatter_v2>();
            var executionContext = new ContainerExecutionContext
            {
                PayloadStorage = new CrateStorage(Crate.FromContent(string.Empty, new OperationalStateCM()))
            };
            var activityContext = new ActivityContext
            {
                HubCommunicator = ObjectFactory.GetInstance <IHubCommunicator>(),
                ActivityPayload = new ActivityPayload
                {
                    CrateStorage = new CrateStorage()
                },
                AuthorizationToken = new AuthorizationToken {
                    Token = Token.Token
                }
            };
            await activity.Configure(activityContext);


            ActivityConfigurator.GetControl <ControlDefinitionDTO>(activityContext.ActivityPayload, "FeedTextSource").Value = null;

            activity = New <Post_To_Chatter_v2>();

            await activity.Run(activityContext, executionContext);

            var operationalState = executionContext.PayloadStorage.FirstCrateContentOrDefault <OperationalStateCM>();

            Assert.AreEqual(ActivityResponse.Error.ToString(), operationalState.CurrentActivityResponse.Type, "Run must fail if message is empty");
        }
예제 #6
0
        public async Task Run_WhenNoChatterSourceIsSelected_ReturnsError()
        {
            var activity         = New <Post_To_Chatter_v2>();
            var executionContext = new ContainerExecutionContext
            {
                PayloadStorage = new CrateStorage(Crate.FromContent(string.Empty, new OperationalStateCM()))
            };
            var activityContext = new ActivityContext
            {
                HubCommunicator = ObjectFactory.GetInstance <IHubCommunicator>(),
                ActivityPayload = new ActivityPayload
                {
                    CrateStorage = new CrateStorage()
                },
                AuthorizationToken = new AuthorizationToken {
                    Token = Token.Token
                }
            };
            await activity.Configure(activityContext);

            activityContext.ActivityPayload.CrateStorage.UpdateControls <Post_To_Chatter_v2.ActivityUi>(x =>
            {
                x.FeedTextSource.TextValue   = "message";
                x.FeedTextSource.ValueSource = "specific";
            });

            activity = New <Post_To_Chatter_v2>();

            await activity.Run(activityContext, executionContext);

            var operationalState = executionContext.PayloadStorage.FirstCrateContentOrDefault <OperationalStateCM>();

            Assert.AreEqual(ActivityResponse.Error.ToString(), operationalState.CurrentActivityResponse.Type, "Run must fail if chatter is not specified is empty");
        }
        public async Task Run_ShouldTerminateExecutionWhenItCantFindPost()
        {
            var fbIntegrationService = new Mock <IFacebookIntegration>();

            fbIntegrationService.Setup(x => x.GetPostById(It.IsAny <string>(), It.IsAny <string>())).ReturnsAsync(null);
            ObjectFactory.Container.Inject(typeof(IFacebookIntegration), fbIntegrationService.Object);

            var activity = New <Monitor_Feed_Posts_v1>();
            //Arrage
            var activityContext = await ConfigureMonitorFeedPosts(activity);

            var fbEventCM = new FacebookUserEventCM
            {
                Id            = "123",
                ChangedFields = new string[] { "feed" },
                Time          = "123",
                UserId        = "123"
            };
            var eventReportCrate = new EventReportCM
            {
                EventNames   = "feed",
                EventPayload = new CrateStorage(Crate.FromContent("Facebook user event", fbEventCM))
            };
            var containerExecutionContext = new ContainerExecutionContext
            {
                PayloadStorage = new CrateStorage(Crate.FromContent(string.Empty, new OperationalStateCM()), Crate.FromContent("Facebook user event", eventReportCrate))
            };

            //Act
            containerExecutionContext = await RunMonitorFeedPosts(activity, activityContext, containerExecutionContext);

            var operationalStateCM = containerExecutionContext.PayloadStorage.CrateContentsOfType <OperationalStateCM>().Single();

            Assert.True(operationalStateCM.CurrentActivityResponse.Type == ActivityResponse.RequestTerminate.ToString(), "Monitor_Feed_Posts_v1 doesn't terminate container execution when activity can't find related post on facebook");
        }
        public async Task Run_ShouldTerminateExecutionWhenChangedFieldIsNotFeed()
        {
            var activity = New <Monitor_Feed_Posts_v1>();
            //Arrage
            var activityContext = await ConfigureMonitorFeedPosts(activity);

            var fbEventCM = new FacebookUserEventCM
            {
                Id            = "123",
                ChangedFields = new string[] { "test" },
                Time          = "123",
                UserId        = "123"
            };
            var eventReportCrate = new EventReportCM
            {
                EventNames   = "feed",
                EventPayload = new CrateStorage(Crate.FromContent("Facebook user event", fbEventCM))
            };
            var containerExecutionContext = new ContainerExecutionContext
            {
                PayloadStorage = new CrateStorage(Crate.FromContent(string.Empty, new OperationalStateCM()), Crate.FromContent("Facebook user event", eventReportCrate))
            };

            //Act
            containerExecutionContext = await RunMonitorFeedPosts(activity, activityContext, containerExecutionContext);

            var operationalStateCM = containerExecutionContext.PayloadStorage.CrateContentsOfType <OperationalStateCM>().Single();

            Assert.True(operationalStateCM.CurrentActivityResponse.Type == ActivityResponse.RequestTerminate.ToString(), "Monitor_Feed_Posts_v1 doesn't terminate container execution when changed field doesn't contain feed");
        }
        public static ContainerExecutionContext ExecutionContextWithOnlyOperationalState()
        {
            var result = new ContainerExecutionContext()
            {
                ContainerId    = Guid.NewGuid(),
                PayloadStorage = new CrateStorage(Crate.FromContent("Operational State", new OperationalStateCM()))
            };

            return(result);
        }
예제 #10
0
        public async Task Run_SecondTimeForSameLog_WithOneUpstreamLogedMessage_LoggedAlready_ShouldLogOnlyOneTime()
        {
            //Arrange

            //create initial and follow up configuration
            var testAction = new ActivityContext()
            {
                ActivityPayload = new ActivityPayload
                {
                    CrateStorage = new CrateStorage()
                },
                AuthorizationToken = null,
                UserId             = null
            };
            await _activity_under_test.Configure(testAction);

            await _activity_under_test.Configure(testAction);

            var executionContext = new ContainerExecutionContext();

            executionContext.PayloadStorage = new CrateStorage(Crate.FromContent("", new OperationalStateCM()));

            executionContext.PayloadStorage.Add("Log Messages", new StandardLoggingCM
            {
                Item = new List <LogItemDTO>()
                {
                    new LogItemDTO()
                    {
                        Activity = "A", Data = "Test Log Message"
                    }
                }
            });

            //log first time
            await _activity_under_test.Run(testAction, executionContext);

            //Act
            //try to log the same message again
            await _activity_under_test.Run(testAction, executionContext);

            //Assert
            var loggedMessge = executionContext.PayloadStorage.CrateContentsOfType <StandardLoggingCM>().Single();

            Assert.IsNotNull(loggedMessge, "Logged message is missing from the payload");
            Assert.AreEqual(1, loggedMessge.Item.Count, "Logged message is missing from the payload");

            Assert.IsTrue(loggedMessge.Item[0].IsLogged, "Log did not happen");

            Mock <IPapertrailLogger> papertrailLogger = Mock.Get(ObjectFactory.GetInstance <IPapertrailLogger>());

            papertrailLogger.Verify(logger => logger.LogToPapertrail(It.IsAny <string>(), It.IsAny <int>(), "Test Log Message"), Times.Exactly(1));
            papertrailLogger.VerifyAll();
        }
예제 #11
0
        public async Task Run_CheckSendCalledOnlyOnce()
        {
            //Arrage
            _sendSmsActivity = New <Send_SMS_v1>();
            var activityContext = new ActivityContext
            {
                HubCommunicator = ObjectFactory.GetInstance <IHubCommunicator>(),
                ActivityPayload = new ActivityPayload
                {
                    CrateStorage = new CrateStorage()
                },
                AuthorizationToken = new AuthorizationToken
                {
                    Token = "1"
                }
            };

            var containerExecutionContext = new ContainerExecutionContext
            {
                PayloadStorage = new CrateStorage(Crate.FromContent(string.Empty, new OperationalStateCM()))
            };
            await _sendSmsActivity.Configure(activityContext);

            var controls = activityContext.ActivityPayload.CrateStorage.CratesOfType <StandardConfigurationControlsCM>().Single();

            var smsNumber = controls.Content.Controls.OfType <TextSource>().Single(t => t.Name.Equals("SmsNumber"));

            smsNumber.TextValue = "+918055967968"; //This is some dummy number. This number is not valid

            var smsBody = controls.Content.Controls.OfType <TextSource>().Single(t => t.Name.Equals("SmsBody"));

            smsBody.TextValue = "some body";

            smsBody.ValueSource = smsNumber.ValueSource = "specific";

            //Act
            await _sendSmsActivity.Run(activityContext, containerExecutionContext);

            //Assert
            var messageDataCrate = containerExecutionContext.PayloadStorage.CratesOfType <StandardPayloadDataCM>().Single(p => p.Label.Equals("Message Data"));

            Assert.IsNotNull(messageDataCrate, "Send SMS activity is not run.");
            Assert.AreEqual(4, messageDataCrate.Content.AllValues().ToList().Count, "Message fields are not getting populated when Send SMS is executed.");

            var twilioService = Mock.Get(ObjectFactory.GetInstance <ITwilioService>());

            twilioService.Verify(t => t.SendSms(It.IsAny <string>(), It.IsAny <string>()));
        }
예제 #12
0
        public async Task Run_CheckSendCalledOnlyOnce()
        {
            //Arrage
            _sendEmailActivity = New <Send_Email_v1>();
            var activityContext = new ActivityContext
            {
                HubCommunicator = ObjectFactory.GetInstance <IHubCommunicator>(),
                ActivityPayload = new ActivityPayload
                {
                    CrateStorage = new CrateStorage()
                },
                AuthorizationToken = new AuthorizationToken
                {
                    Token = "1"
                }
            };
            var executionContext = new ContainerExecutionContext
            {
                PayloadStorage = new CrateStorage(Crate.FromContent(string.Empty, new OperationalStateCM()))
            };
            await _sendEmailActivity.Configure(activityContext);

            var storage  = activityContext.ActivityPayload.CrateStorage;
            var controls = storage.CratesOfType <StandardConfigurationControlsCM>().Single();

            var emailAddressControl = controls.Content.Controls.OfType <TextSource>().Single(t => t.Name.Equals("EmailAddress"));

            emailAddressControl.TextValue = "*****@*****.**";

            var subjectControl = controls.Content.Controls.OfType <TextSource>().Single(t => t.Name.Equals("EmailSubject"));

            subjectControl.TextValue = "some subject";

            var bodyControl = controls.Content.Controls.OfType <TextSource>().Single(t => t.Name.Equals("EmailBody"));

            bodyControl.TextValue = "some body";

            subjectControl.ValueSource = bodyControl.ValueSource = emailAddressControl.ValueSource = "specific";

            //Act
            await _sendEmailActivity.Run(activityContext, executionContext);

            //Assert
            var emailPackagerMock = Mock.Get(ObjectFactory.GetInstance <IEmailPackager>());

            emailPackagerMock.Verify(p => p.Send(It.IsAny <TerminalMailerDO>()), Times.Once());
        }
        [Ignore] // this test expects that real SalesforceManager is created. Previouse is was the case because of inaccurate code
        public async Task Run_CheckTheObjectIsCreated()
        {
            //Arrange
            //perform initial and follow up config, activate
            var result = await PerformInitialConfig();

            var executionContext = new ContainerExecutionContext {
                PayloadStorage = new CrateStorage(Crate.FromContent(string.Empty, new OperationalStateCM()))
            };

            var authorizationToken = await FixtureData.Salesforce_AuthToken();

            await _saveToSFDotCom_v1.Configure(result);

            await _saveToSFDotCom_v1.Activate(result);

            //make last name as Unit and Company Name as Test
            var requiredControls = result.ActivityPayload.CrateStorage
                                   .CratesOfType <StandardConfigurationControlsCM>().Single().Content
                                   .Controls;

            var lastNameControl = (TextSource)requiredControls.Single(c => c.Name.Equals("LastName"));

            lastNameControl.ValueSource = "specific";
            lastNameControl.TextValue   = "Unit";

            var companyControl = (TextSource)requiredControls.Single(c => c.Name.Equals("Company"));

            companyControl.ValueSource = "specific";
            companyControl.TextValue   = "Text";

            //Act
            await _saveToSFDotCom_v1.Run(result, executionContext);

            var payload = executionContext.PayloadStorage;
            //Assert
            var newlyCreatedLead = payload.CratesOfType <StandardPayloadDataCM>()
                                   .Single().Content.PayloadObjects[0].PayloadObject;

            Assert.IsNotNull(newlyCreatedLead, "Lead is not saved successfully in Save to SF.com");
            Assert.IsTrue(newlyCreatedLead.Count == 1, "Lead is not saved successfully in Save to SF.com");
            Assert.IsTrue(!string.IsNullOrEmpty(newlyCreatedLead[0].Value), "Lead is not saved successfully in Save to SF.com");

            var isDeleted = await ObjectFactory.GetInstance <SalesforceManager>().Delete(SalesforceObjectType.Lead, newlyCreatedLead[0].Value, authorizationToken);

            Assert.IsTrue(isDeleted, "The newly created lead is not deleted upon completion");
        }
        /**********************************************************************************/
        // Functions
        /**********************************************************************************/

        private void InitializeInternalState(ActivityContext activityContext, ContainerExecutionContext containerExecutionContext)
        {
            _activityContext           = activityContext;
            _containerExecutionContext = containerExecutionContext;

            if (_containerExecutionContext != null)
            {
                _operationalState = Payload.CrateContentsOfType <OperationalStateCM>().FirstOrDefault();

                if (_operationalState == null)
                {
                    throw new InvalidOperationException("Operational state crate is not found");
                }
            }

            InitializeInternalState();
        }
예제 #15
0
        public async Task Run_WhenQueriesSalesforceAndNothingIsReturned_ReturnsSuccessButNoPayload()
        {
            var activity         = New <Post_To_Chatter_v2>();
            var executionContext = new ContainerExecutionContext
            {
                PayloadStorage = new CrateStorage(Crate.FromContent(string.Empty, new OperationalStateCM()))
            };
            var activityContext = new ActivityContext
            {
                HubCommunicator = ObjectFactory.GetInstance <IHubCommunicator>(),
                ActivityPayload = new ActivityPayload
                {
                    CrateStorage = new CrateStorage()
                },
                AuthorizationToken = new AuthorizationToken {
                    Token = Token.Token
                }
            };
            await activity.Configure(activityContext);

            activity = New <Post_To_Chatter_v2>();

            activityContext.ActivityPayload.CrateStorage.UpdateControls <Post_To_Chatter_v2.ActivityUi>(x =>
            {
                x.FeedTextSource.TextValue       = "message";
                x.FeedTextSource.ValueSource     = "specific";
                x.QueryForChatterOption.Selected = true;
                x.ChatterFilter.Value            = string.Empty;
                x.ChatterSelector.selectedKey    = SalesforceObjectType.Account.ToString();
            });
            ObjectFactory.GetInstance <Mock <ISalesforceManager> >().Setup(x => x.Query(It.IsAny <SalesforceObjectType>(), It.IsAny <IList <FieldDTO> >(), It.IsAny <string>(), It.IsAny <AuthorizationToken>()))
            .Returns(Task.FromResult(new StandardTableDataCM {
                Table = new List <TableRowDTO>()
            }));
            await activity.Run(activityContext, executionContext);

            var payloadStorage   = executionContext.PayloadStorage;
            var operationalState = payloadStorage.FirstCrate <OperationalStateCM>().Content;

            Assert.AreEqual(ActivityResponse.Success.ToString(), operationalState.CurrentActivityResponse.Type, "Run must return success if all values are specified");
            var resultPayload = payloadStorage.FirstCrateOrDefault <StandardPayloadDataCM>();

            Assert.IsNull(resultPayload, "Successfull run should not create standard payload data crate when no Salesforce objects exist");
        }
예제 #16
0
        public async Task Run_WhenQueriesSalesforceAndObjectsAreReturned_PostsToTheirChatters()
        {
            var activity         = New <Post_To_Chatter_v2>();
            var executionContext = new ContainerExecutionContext
            {
                PayloadStorage = new CrateStorage(Crate.FromContent(string.Empty, new OperationalStateCM()))
            };
            var activityContext = new ActivityContext
            {
                HubCommunicator = ObjectFactory.GetInstance <IHubCommunicator>(),
                ActivityPayload = new ActivityPayload
                {
                    CrateStorage = new CrateStorage()
                },
                AuthorizationToken = new AuthorizationToken {
                    Token = Token.Token
                }
            };
            await activity.Configure(activityContext);

            activity = New <Post_To_Chatter_v2>();

            activityContext.ActivityPayload.CrateStorage.UpdateControls <Post_To_Chatter_v2.ActivityUi>(x =>
            {
                x.FeedTextSource.TextValue       = "message";
                x.FeedTextSource.ValueSource     = "specific";
                x.QueryForChatterOption.Selected = true;
                x.ChatterFilter.Value            = string.Empty;
                x.ChatterSelector.selectedKey    = SalesforceObjectType.Account.ToString();
            });
            await activity.Run(activityContext, executionContext);

            var payloadStorage   = executionContext.PayloadStorage;
            var operationalState = payloadStorage.FirstCrate <OperationalStateCM>().Content;

            Assert.AreEqual(ActivityResponse.Success.ToString(), operationalState.CurrentActivityResponse.Type, "Run must return success if all values are specified");
            var resultPayload = payloadStorage.FirstCrateOrDefault <StandardPayloadDataCM>();

            Assert.IsNotNull(resultPayload, "Successfull run should create standard payload data crate when Salesforce objects exist");
            Assert.AreEqual("feedid", resultPayload.Content.PayloadObjects[0].PayloadObject[0].Value, "Run didn't produce crate with proper posted feed Id");
        }
예제 #17
0
        public static ContainerExecutionContext FalseInstagramContainerExecutionContext()
        {
            var instagramEventCM = new InstagramUserEventCM
            {
                MediaId        = "123",
                UserId         = "123",
                ChangedAspect  = "test",
                Time           = "123",
                SubscriptionId = "123"
            };
            var eventReportCrate = new EventReportCM
            {
                EventNames   = "media",
                EventPayload = new CrateStorage(Crate.FromContent("Instagram user event", instagramEventCM))
            };
            var containerExecutionContext = new ContainerExecutionContext
            {
                PayloadStorage = new CrateStorage(Crate.FromContent(string.Empty, new OperationalStateCM()), Crate.FromContent("Instagram user event", eventReportCrate))
            };

            return(containerExecutionContext);
        }
        public async Task Run_Check_PayloadDTO_ForObjectData()
        {
            //Arrange
            var activityContext = await FixtureData.GetFileListTestActivityContext2();

            var executionContext = new ContainerExecutionContext
            {
                PayloadStorage = new CrateStorage(Crate.FromContent(string.Empty, new OperationalStateCM()))
            };

            //perform initial configuration
            await postToChatter_v1.Configure(activityContext);

            activityContext = SetValues(activityContext);

            //Act
            await postToChatter_v1.Run(activityContext, executionContext);

            //Assert
            var storage = executionContext.PayloadStorage;

            Assert.IsNotNull(storage.FirstCrateOrDefault <StandardPayloadDataCM>(), "Payload doesn't contain crate with posted feed Id");
        }
 public static CrateStorageDTO CrateStorageDTOResolver(ContainerExecutionContext executionContext)
 {
     return(CrateStorageSerializer.Default.ConvertToDto(executionContext.PayloadStorage));
 }
예제 #20
0
        private async Task <ContainerExecutionContext> RunMonitorForNewMediaPosted(Monitor_For_New_Media_Posted_v1 activity,
                                                                                   ActivityContext context, ContainerExecutionContext containerExecutionContext = null)
        {
            containerExecutionContext = containerExecutionContext ?? new ContainerExecutionContext
            {
                PayloadStorage = new CrateStorage(Crate.FromContent(string.Empty, new OperationalStateCM()))
            };
            await activity.Run(context, containerExecutionContext);

            return(containerExecutionContext);
        }
        /**********************************************************************************/

        public Task RunChildActivities(ActivityContext activityContext, ContainerExecutionContext containerExecutionContext)
        {
            InitializeInternalState(activityContext, containerExecutionContext);

            return(Run(RunChildActivities));
        }
        private async Task <ContainerExecutionContext> RunPostToTimeline(Post_To_Timeline_v1 activity,
                                                                         ActivityContext context, ContainerExecutionContext containerExecutionContext = null)
        {
            containerExecutionContext = containerExecutionContext ?? new ContainerExecutionContext
            {
                PayloadStorage = new CrateStorage(Crate.FromContent(string.Empty, new OperationalStateCM()))
            };
            await activity.Run(context, containerExecutionContext);

            return(containerExecutionContext);
        }
예제 #23
0
 private PayloadDTO SerializeResponse(ContainerExecutionContext activityContext)
 {
     return(Mapper.Map <PayloadDTO>(activityContext));
 }
예제 #24
0
        public static CrateStorageDTO CrateStorageDTOResolver(ContainerExecutionContext executionContext)
        {
            var crateManager = ObjectFactory.GetInstance <ICrateManager>();

            return(crateManager.ToDto(executionContext.PayloadStorage));
        }