예제 #1
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");
        }