public async Task Monitor_Form_Responses_Initial_Configuration_Check_CM_Structure()
        {
            //Arrange
            var configureUrl = GetTerminalConfigureUrl();

            var requestActivityDTO = HealthMonitor_FixtureData.Monitor_Form_Responses_v1_InitialConfiguration_Fr8DataDTO();

            //Act
            var responseActivityDTO =
                await HttpPostAsync <Fr8DataDTO, ActivityDTO>(
                    configureUrl,
                    requestActivityDTO
                    );

            //Assert
            var crateStorage = Crate.FromDto(responseActivityDTO.CrateStorage);
            var standardConfigurationControlsCM = crateStorage.CrateContentsOfType <StandardConfigurationControlsCM>().SingleOrDefault();
            var eventSubscriptionCM             = crateStorage.CrateContentsOfType <EventSubscriptionCM>().SingleOrDefault();

            Assert.IsNotNull(standardConfigurationControlsCM, "ActivityDTO storage doesn't contain crate with Standard Configuration Controls.");
            Assert.IsNotNull(eventSubscriptionCM, "ActivityDTO storage doesn't contain crate with Event Subscription.");
            var dropdown = standardConfigurationControlsCM.Controls.FirstOrDefault(s => s.GetType() == typeof(DropDownList));

            Assert.IsNotNull(dropdown, "No Drop Down List Box in the Controls");
            Assert.AreEqual("Selected_Google_Form", dropdown.Name, "The Drop Down List Box control has incorrect Name value.");
            Assert.AreEqual(1, crateStorage.Count(s => s.Label == "Standard Event Subscriptions"), "Number of the crates with Standard Event Subscription is not one.");
        }
        public async Task Monitor_Form_Responses_Initial_Configuration_Check_Crate_Structure()
        {
            //Arrange
            var configureUrl = GetTerminalConfigureUrl();

            var dataDTO = HealthMonitor_FixtureData.Monitor_Form_Responses_v1_InitialConfiguration_Fr8DataDTO();

            //Act
            var responseActivityDTO =
                await HttpPostAsync <Fr8DataDTO, ActivityDTO>(
                    configureUrl,
                    dataDTO
                    );

            //Assert
            Assert.NotNull(responseActivityDTO, "Call to Initial configuration to " + ActivityName + " returns null.");
            Assert.NotNull(responseActivityDTO.CrateStorage, "Call to Initial configuration to " + ActivityName + " returns ActivityDTO with no CrateStorage.");

            var crateStorage = Crate.FromDto(responseActivityDTO.CrateStorage);

            Assert.AreEqual(3, crateStorage.Count);
            Assert.IsNotNull(crateStorage.FirstCrateOrDefault <CrateDescriptionCM>(x => x.Label == CrateSignaller.RuntimeCrateDescriptionsCrateLabel), "ActivityDTO storage doesn't contain crate with Runtime Crates Descriptions.");
            Assert.IsNotNull(crateStorage.CrateContentsOfType <StandardConfigurationControlsCM>().SingleOrDefault(), "ActivityDTO storage doesn't contain crate with Standard Configuration Controls.");
            Assert.IsNotNull(crateStorage.CrateContentsOfType <EventSubscriptionCM>().SingleOrDefault(), "ActivityDTO storage doesn't contain crate with Event Subscription.");
        }
        public async Task Monitor_Form_Responses_Initial_Configuration_Check_Source_Fields()
        {
            //Arrange
            var configureUrl = GetTerminalConfigureUrl();

            var dataDTO = HealthMonitor_FixtureData.Monitor_Form_Responses_v1_InitialConfiguration_Fr8DataDTO();

            //Act
            var responseActivityDTO =
                await HttpPostAsync <Fr8DataDTO, ActivityDTO>(
                    configureUrl,
                    dataDTO
                    );

            //Assert
            var crateStorage = Crate.FromDto(responseActivityDTO.CrateStorage);
            var controls     = crateStorage.FirstCrateOrDefault <StandardConfigurationControlsCM>()?.Content;

            Assert.IsNotNull(controls, "Controls crate is missing");
            var control = controls.Controls.FirstOrDefault(x => x.Name == "Selected_Google_Form") as DropDownList;

            Assert.IsNotNull(control, "Select Form control is missing");
            Assert.Greater(control.ListItems.Count, 0, "No Google form were loaded into DDLB control");
        }