Пример #1
0
        /// <summary>
        /// Mains the specified arguments.
        /// </summary>
        /// <param name="args">The arguments.</param>
        /// <returns></returns>
        private static async Task Main(String[] args)
        {
            const Int32 lastClub       = 5;
            const Int32 clubCount      = 1;
            const Int32 playersPerClub = 37;

            // Create the data generator class
            String BaseAddressResolver(String service)
            {
                if (service == "SecurityService")
                {
                    return(Program.SecurityServiceAddress);
                }

                return(Program.BaseAddress);
            }

            IGolfClubClient   golfClubClient   = new GolfClubClient(BaseAddressResolver, Program.HttpClient);
            IPlayerClient     playerClient     = new PlayerClient(BaseAddressResolver, Program.HttpClient);
            ITournamentClient tournamentClient = new TournamentClient(BaseAddressResolver, Program.HttpClient);

            ITestDataGenerator testDataGenerator = new TestDataGenerator(golfClubClient, playerClient, tournamentClient, BaseAddressResolver);

            CancellationToken cancellationToken = new CancellationToken();
            Stopwatch         sw = Stopwatch.StartNew();

            // Get the client token
            Program.accessToken = await testDataGenerator.GetToken(TokenType.Client, "golfhandicap.testdatagenerator", "golfhandicap.testdatagenerator",
                                                                   scopes : new List <String>
            {
                "managementapi"
            });

            Console.WriteLine($"About to create {clubCount} Golf Clubs");
            await Program.CreateGolfClubDatav2(testDataGenerator, clubCount, lastClub, cancellationToken);

            sw.Stop();
            Console.WriteLine($"{clubCount} Golf Clubs Created in {sw.ElapsedMilliseconds} ms");

            Console.WriteLine($"About to create {clubCount * playersPerClub} Players");
            sw = Stopwatch.StartNew();
            await Program.CreatePlayerDatav2(testDataGenerator, lastClub, playersPerClub, cancellationToken);

            sw.Stop();
            Console.WriteLine($"Created {clubCount * playersPerClub} Players in {sw.ElapsedMilliseconds} ms");

            Console.WriteLine("About to create Tournament Data");
            sw = Stopwatch.StartNew();
            await Program.CreateTournamentDatav2(testDataGenerator, cancellationToken);

            sw.Stop();
            Console.WriteLine($"Created Tournament Data in {sw.ElapsedMilliseconds} ms");

            Console.WriteLine("Process Completed");
        }
Пример #2
0
        public async Task GolfClubClient_ProduceTournamentResult_TournamentResultIsProduced()
        {
            // 1. Arrange
            HttpClient            client         = this.WebApplicationFactory.AddGolfClubAdministrator().CreateClient();
            Func <String, String> resolver       = api => "http://localhost";
            IGolfClubClient       golfClubClient = new GolfClubClient(resolver, client);

            String token =
                "eyJhbGciOiJSUzI1NiIsImtpZCI6ImVhZDQyNGJjNjI5MzU0NGM4MGFmZThhMDk2MzEyNjU2IiwidHlwIjoiSldUIn0.eyJuYmYiOjE1NzAyODk3MDksImV4cCI6MTU3MDI5MzMwOSwiaXNzIjoiaHR0cDovLzE5Mi4xNjguMS4xMzI6NTAwMSIsImF1ZCI6WyJodHRwOi8vMTkyLjE2OC4xLjEzMjo1MDAxL3Jlc291cmNlcyIsIm1hbmFnZW1lbnRhcGkiLCJzZWN1cmlydHlzZXJ2aWNlYXBpIl0sImNsaWVudF9pZCI6ImdvbGZoYW5kaWNhcC50ZXN0ZGF0YWdlbmVyYXRvciIsInNjb3BlIjpbIm1hbmFnZW1lbnRhcGkiLCJzZWN1cmlydHlzZXJ2aWNlYXBpIl19.vLfs2bOMXshW93nw5TTOqd6NPGNYpcrhcom8yZoYc9WGSuYH48VqM5BdbodEukNNJmgbV9wUVgoj1uGztlFfHGFA_q6IQfd3xZln_LIxju6ZNZs8qUyRXDTGxu0dlfF8STLfBUq469SsY9eNi1hBYFyNxl963OfKqDSHAdeBg9yNlwnbky1Tnsxobu9W33fLcjH0KoutlwTFV51UFUEKCBk0w1zsjaDVZacETn74t56y0CvMS7ZSN2_yyunq4JvoUsh3xM5lQ-gl23eQyo6l4QE4wukCS7U_Zr2dg8-EF63VKiCH-ZD49M76TD9kIIge-XIgHqa2Xf3S-FpLxXfEqw";

            // 2. Act
            await golfClubClient.ProduceTournamentResult(token, TestData.GolfClubId, TestData.TournamentId, CancellationToken.None);
        }