public async Task Setup()
        {
            ConfigurationHelper.Initialise(TestContext.CurrentContext.TestDirectory);
            DbHelper.ClearDb();
            IdentityHelpers.ClearAll();

            //todo: allow other actors (types of provider)
            //var providerActor = (ProviderActor)TestContext.CurrentContext.Test.Arguments.GetValue(0);
            var provider = Actors.Provider.Create();


            await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);

            var launchOptions = new LaunchOptions
            {
                Headless          = false,
                IgnoreHTTPSErrors = true,
                //SlowMo = 10
            };

            Console.WriteLine("Launching browser...");

            Browser = await Puppeteer.LaunchAsync(launchOptions);

            var context = Browser.DefaultContext;

            Page = await context.NewPageAsync();

            var url = LaunchPage.Url.Replace("{providerId}", provider.ProviderId.ToString());

            Console.WriteLine($"Opening {url}");
            var response = await Page.GoToAsync(url);

            //Realm selection
            await Page.ClickOn(LaunchPage.Realm);

            await Page.WaitForNavigationAsync();

            await Page.TypeInputAsync(LaunchPage.Username, provider.Username);

            await Page.TypeInputAsync(LaunchPage.Password, provider.Password);

            Console.Write("Signing in... ");
            await Page.Keyboard.DownAsync("Enter"); //hit enter, rather than click button

            await Page.WaitForSelectorAsync(".govuk-header");

            //await Page.WaitForNavigationAsync();
            Console.WriteLine("Complete");
        }
        static void Main(string[] args)
        {
            ConfigurationHelper.Initialise(Directory.GetCurrentDirectory());

            System.Console.ForegroundColor = ConsoleColor.Cyan;
            System.Console.WriteLine("Commitments Test Data Generator");
            System.Console.WriteLine();
            System.Console.ForegroundColor = ConsoleColor.White;

            var scenarios = Scenarios.GetScenarios();

            while (true)
            {
                var count = 0;
                foreach (var scenario in scenarios)
                {
                    System.Console.WriteLine($"{count}: {scenario.Title}");
                    count++;
                }

                System.Console.WriteLine();
                System.Console.Write("Select scenario (enter quits): ");

                var stringInput = System.Console.ReadLine();
                if (string.IsNullOrWhiteSpace(stringInput))
                {
                    break;
                }

                var input = Convert.ToInt32(stringInput);

                var selected = scenarios[input];

                DbHelper.ClearDb();
                IdentityHelpers.ClearAll();
                selected.Action.Invoke();

                System.Console.ForegroundColor = ConsoleColor.Green;
                System.Console.WriteLine("Scenario created");
                System.Console.WriteLine();
                System.Console.ForegroundColor = ConsoleColor.White;
                System.Console.WriteLine("Press a key...");
                System.Console.ReadKey();
                System.Console.WriteLine();
            }
        }
Example #3
0
        public async Task Setup()
        {
            ConfigurationHelper.Initialise(TestContext.CurrentContext.TestDirectory);
            DbHelper.ClearDb();
            IdentityHelpers.ClearAll();

            var employerActor = (EmployerActor)TestContext.CurrentContext.Test.Arguments.GetValue(0);

            var employer = Actors.Employer.Create(employerActor);

            await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);

            var launchOptions = new LaunchOptions
            {
                Headless          = false,
                IgnoreHTTPSErrors = true,
                //SlowMo = 10
            };

            Console.WriteLine("Launching browser...");

            Browser = await Puppeteer.LaunchAsync(launchOptions);

            var context = Browser.DefaultContext;

            Page = await context.NewPageAsync();

            var url = LaunchPage.Url.Replace("{accountId}", employer.EncodedAccountId);

            Console.WriteLine($"Opening {url}");
            var response = await Page.GoToAsync(url);

            await Page.TypeInputAsync(LaunchPage.EmailAddress, employer.Username);

            await Page.TypeInputAsync(LaunchPage.Password, employer.Password);

            Console.Write("Signing in... ");
            await Page.ClickOn(LaunchPage.SignIn);

            await Page.WaitForNavigationAsync();

            Console.WriteLine("Complete");
        }