public void ThenLeftPaneOfUmbrellaUIIsEmpty()
        {
            var n = new AdminCompanySettingsUmbrella(TestSetup.Driver)
                    .GetCandidateChildren()
                    .Length();

            n.ShouldBe(0);
        }
        public void ThenRightPaneOfUmbrellaUIIsEmpty()
        {
            var n = new AdminCompanySettingsUmbrella(TestSetup.Driver)
                    .GetDefinitionChildren()
                    .Length();

            n.ShouldBe(0);
        }
        public void WhenSelectSomeUmbrellaChildren()
        {
            var selected = new AdminCompanySettingsUmbrella(TestSetup.Driver)
                           .GetDefinitionChildren()
                           .Filter(s => new Random().NextDouble() > 0.45);

            new AdminCompanySettingsUmbrella(TestSetup.Driver)
            .SelectCandidatesToRemove(selected);
        }
        public void ThenReportedNumberOfSelectedCandidatesIsCorrect()
        {
            var selectedCandidates = new AdminCompanySettingsUmbrella(TestSetup.Driver)
                                     .GetSelectedCandidateChildren();
            var n = new AdminCompanySettingsUmbrella(TestSetup.Driver)
                    .GetDisplayedNumberOfSelectedCandidates();

            selectedCandidates.Length().ShouldBe(n);
        }
        public void WhenAddSomeUmbrellaChildren()
        {
            var selected = new AdminCompanySettingsUmbrella(TestSetup.Driver)
                           .GetCandidateChildren()
                           .Filter(s => new Random().NextDouble() > 0.45);

            new AdminCompanySettingsUmbrella(TestSetup.Driver)
            .SelectCandidates(selected)
            .ClickAddButton();
        }
        public void ThenThereIsAnUnselectedCandidate(string accountId)
        {
            var candidates = new AdminCompanySettingsUmbrella(TestSetup.Driver)
                             .GetCandidateChildren();
            var selectedCandidates = new AdminCompanySettingsUmbrella(TestSetup.Driver)
                                     .GetSelectedCandidateChildren();
            var unselected = candidates.Except(selectedCandidates);

            unselected.Length().ShouldBeGreaterThanOrEqualTo(1);
            unselected.ShouldContain(accountId);
        }
        public void ThenAllCandidateCheckboxesAreChecked()
        {
            var n = new AdminCompanySettingsUmbrella(TestSetup.Driver)
                    .GetCandidateChildren()
                    .Length();

            new AdminCompanySettingsUmbrella(TestSetup.Driver)
            .GetSelectedCandidateChildren()
            .Length()
            .ShouldBe(n);
        }
        public void ThenGetUmbrellaCallReflectsTheChanges()
        {
            var baseurl      = TestSetup.Config.datahubUmbrellaApi.baseurl;
            var api          = new DefaultApi(baseurl);
            var imisId       = new MainPage(TestSetup.Driver).GetAccountId();
            var res          = api.GetUmbrellaWithHttpInfo(imisId);
            var persistedIds = ((UmbrellaDefinitionResponse)res.Content)
                               .Children
                               .Map((child) => child.ChildAccountID);

            var uiIds = new AdminCompanySettingsUmbrella(TestSetup.Driver)
                        .GetDefinitionChildren();

            Set.createRange(persistedIds)
            .Equals(Set.createRange(uiIds))
            .ShouldBe(true);
        }
        public void ThenContentOfTheLeftPaneIsCorrect()
        {
            var baseurl      = TestSetup.Config.datahubUmbrellaApi.baseurl;
            var api          = new DefaultApi(baseurl);
            var imisId       = new MainPage(TestSetup.Driver).GetAccountId();
            var res          = api.GetUmbrellaWithHttpInfo(imisId);
            var persistedIds = ((UmbrellaDefinitionResponse)res.Content)
                               .Children
                               .Map((child) => child.ChildAccountID);

            var res2       = api.GetUmbrellaCandidatesWithHttpInfo(imisId);
            var candidates = ((UmbrellaDefinitionResponse)res2.Content)
                             .Children
                             .Map(child => child.ChildAccountID)
                             .Except(persistedIds);

            var candidates2 = new AdminCompanySettingsUmbrella(TestSetup.Driver)
                              .GetCandidateChildren();

            candidates.Length().ShouldBe(candidates2.Length());
            candidates.Except(candidates2).ShouldBeEmpty();
        }