private IEnumerable <MetadataObjectContext> GetMetadataContexts(
            IKey baseKey,
            IList <IFastMemberWithValues> dependendArguments,
            object[][] ctorValuesCollections,
            IReadOnlyList <int> sortedToUnsorted,
            ITestDataGenerator testDataGenerator)
        {
            var dependendArgumentMapping = new List <Tuple <int, IKey> >();

            for (var i = 0; i < dependendArguments.Count; i++)
            {
                var argument      = dependendArguments[i];
                var argumentKey   = baseKey.CreateKey(argument);
                var argumentIndex = sortedToUnsorted[i];

                dependendArgumentMapping.Add(new Tuple <int, IKey> (argumentIndex, argumentKey));
            }

            foreach (var valueCollection in ctorValuesCollections)
            {
                var context = new MetadataObjectContext(testDataGenerator);
                foreach (var dependendArgument in dependendArgumentMapping)
                {
                    context.Add(dependendArgument.Item2, valueCollection[dependendArgument.Item1]);
                }

                yield return(context);
            }
        }
Пример #2
0
        private void CreateAndAssignAuto(object suite, ITestDataGenerator generator, AutoDataAttribute attribute, FieldInfo field)
        {
            var autoData = this.InvokeGenericMethod("CreateAutoData", new object[] { generator, attribute.MaxRecursionDepth }, new[] { field.FieldType });

            attribute.CurrentSuite = suite;
            attribute.Mutate(autoData);

            field.SetValue(suite, autoData);
        }
Пример #3
0
        internal RuleBasedDataGenerator(ITestDataGenerator testDataGenerator, RuleSet ruleSet)
        {
            ArgumentUtility.CheckNotNull("testDataGenerator", testDataGenerator);

            TestDataGenerator   = testDataGenerator;
            _random             = testDataGenerator.Random;
            _ruleSet            = ruleSet;
            InitialDataProvider = new InitialDataProvider(new GeneratorDataProvider());
        }
Пример #4
0
 public TestFileGenerator(ILogger <TestFileGenerator> logger, ITestDataGenerator testDataGenerator,
                          IFileSaver fileSaver, IFilenameGenerator filenameGenerator, IOptionsSnapshot <GeneratorConfiguration> options)
 {
     _logger                 = logger;
     _testDataGenerator      = testDataGenerator;
     _fileSaver              = fileSaver;
     _filenameGenerator      = filenameGenerator;
     _generatorConfiguration = options.Value;
 }
Пример #5
0
        /// <summary>
        /// Creates the player datav2.
        /// </summary>
        /// <param name="testDataGenerator">The test data generator.</param>
        /// <param name="numberPlayersPerClub">The number players per club.</param>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <returns></returns>
        private static async Task CreatePlayerDatav2(ITestDataGenerator testDataGenerator,
                                                     Int32 lastClub,
                                                     Int32 numberPlayersPerClub,
                                                     CancellationToken cancellationToken)
        {
            Int32 clubCounter = lastClub + 1;

            foreach (GolfClubDetails golfClubDetails in Program.GolfClubs)
            {
                for (Int32 i = 0; i < numberPlayersPerClub; i++)
                {
                    RegisterPlayerRequest registerPlayerRequest = new RegisterPlayerRequest
                    {
                        DateOfBirth   = DateTime.Now.AddYears(-30),
                        EmailAddress  = $"player{i}.{clubCounter}@testplayer.co.uk",
                        ExactHandicap = i,
                        GivenName     = $"Club {clubCounter}",
                        Gender        = "M",
                        FamilyName    = $"Test Player {i}",
                        MiddleName    = null
                    };

                    RegisterPlayerResponse registerPlayerResponse = await testDataGenerator.RegisterPlayer(registerPlayerRequest, cancellationToken);

                    Console.WriteLine($"Created Player {registerPlayerRequest.GivenName} {registerPlayerRequest.FamilyName}");

                    //String token = await testDataGenerator.GetToken(TokenType.Password,
                    //                                                "developerClient",
                    //                                                "developerClient",
                    //                                                registerPlayerRequest.EmailAddress,
                    //                                                "123456",
                    //                                                new List<String>
                    //                                                {
                    //                                                    "openid",
                    //                                                    "profile",
                    //                                                    "managementapi"
                    //                                                });

                    await testDataGenerator.RequestClubMembership(Program.accessToken, registerPlayerResponse.PlayerId, golfClubDetails.GolfClubId, cancellationToken);

                    Console.WriteLine($"Player {registerPlayerRequest.GivenName} {registerPlayerRequest.FamilyName} membership requested");

                    Program.Players.Add(new PlayerDetails
                    {
                        GolfClubId      = golfClubDetails.GolfClubId,
                        PlayerId        = registerPlayerResponse.PlayerId,
                        PlayingHandicap = Convert.ToInt32(registerPlayerRequest.ExactHandicap),                     // TODO: Rounding
                        EmailAddress    = registerPlayerRequest.EmailAddress
                    });
                }

                clubCounter++;
            }
        }
Пример #6
0
 Context BaseContext(int seed)
 {
     return
         (c => c
          .Given("Empty domain with attribute based value provider", x =>
                 TestDataDomainConfiguration = (context => context
                                                .UseDefaults(false)
                                                .UseRandom(new DefaultRandom(seed))
                                                .For <ClassWithMultipleAttributes>().AddProvider(new DefaultInstanceValueProvider <ClassWithMultipleAttributes>())
                                                .For <ClassWithMultipleAttributes>().Select(cwma => cwma.Country).AddProvider(new CountryCityProvider())))
          .Given("TestDataGenerator", x => TestDataGenerator = TestDataGeneratorFactory.Create(TestDataDomainConfiguration)));
 }
Пример #7
0
 Context BaseContext(int seed)
 {
     return
         (c => c
          .Given("Empty domain with date range value provider", x =>
                 TestDataDomainConfiguration = (context => context
                                                .UseDefaults(false)
                                                .UseRandom(new DefaultRandom(seed))
                                                .For <ClassWithDateRange>().AddProvider(new DefaultInstanceValueProvider <ClassWithDateRange>())
                                                .For <ClassWithDateRange>().Select(cwdr => cwdr.BirthDate).AddProvider(new DateGenerator())))
          .Given("TestDataGenerator", x => TestDataGenerator = TestDataGeneratorFactory.Create(TestDataDomainConfiguration)));
 }
 Context BaseContext()
 {
     return
         (c => c
          .Given("{0,2,1}", x => InputList = new List <int> {
         0, 2, 1
     })
          .Given("Empty domain with value provider", x =>
                 TestDataDomainConfiguration = (context => context
                                                .UseDefaults(false)
                                                .UseRandom(Random)
                                                .For <string> ().AddProvider(new ChooseSingleItemValueProvider <int, string> (InputList, item => item.ToString()))))
          .Given("TestDataGenerator", x => TestDataGenerator = TestDataGeneratorFactory.Create(TestDataDomainConfiguration)));
 }
Пример #9
0
 protected internal ValueProviderObjectContext(
     ITestDataGenerator testDataGenerator,
     Func <object, object> getPreviousValue,
     Type targetValueType,
     AdvancedContext advanced,
     [CanBeNull] IFastMemberWithValues member)
 {
     TestDataGenerator = testDataGenerator;
     Random            = testDataGenerator.Random;
     GetPreviousValue  = getPreviousValue;
     TargetValueType   = targetValueType;
     Advanced          = advanced;
     Member            = member;
 }
 Context BaseContext()
 {
     return
         (c =>
          c
          .Given("{0,1,2,3}", x => InputList = new List <int> {
         0, 1, 2, 3
     })
          .Given("min: 2", x => MinItems = 2)
          .Given("max: 4", x => MaxItems = 4)
          .Given("Empty domain with value provider",
                 x =>
                 TestDataDomainConfiguration =
                     (context =>
                      context.UseDefaults(false)
                      .UseRandom(Random)
                      .For <IList <string> > ()
                      .AddProvider(new ChooseMultipleDistinctItemsValueProvider <int, string> (InputList, MinItems, MaxItems,
                                                                                               conversionFunc: item => item.ToString()))))
          .Given("TestDataGenerator", x => TestDataGenerator = TestDataGeneratorFactory.Create(TestDataDomainConfiguration)));
 }
Пример #11
0
        /// <summary>
        /// Creates the golf club datav2.
        /// </summary>
        /// <param name="testDataGenerator">The test data generator.</param>
        /// <param name="numberOfGolfClubs">The number of golf clubs.</param>
        /// <param name="lastClubCount">The last club count.</param>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <returns></returns>
        private static async Task CreateGolfClubDatav2(ITestDataGenerator testDataGenerator,
                                                       Int32 numberOfGolfClubs,
                                                       Int32 lastClubCount,
                                                       CancellationToken cancellationToken)
        {
            List <Task> tasks      = new List <Task>();
            Int32       startIndex = 0 + lastClubCount;
            Int32       endIndex   = numberOfGolfClubs + lastClubCount;

            for (Int32 i = startIndex; i < endIndex; i++)
            {
                RegisterClubAdministratorRequest registerClubAdministratorRequest = new RegisterClubAdministratorRequest
                {
                    EmailAddress    = $"clubadministrator@testgolfclub{i}.co.uk",
                    ConfirmPassword = "******",
                    Password        = "******",
                    TelephoneNumber = "1234567890",
                    FamilyName      = $"Admin {i}",
                    GivenName       = "Club"
                };

                await testDataGenerator.RegisterGolfClubAdministrator(registerClubAdministratorRequest, cancellationToken);

                String clubAdministratorToken = await testDataGenerator.GetToken(TokenType.Password,
                                                                                 "developerClient",
                                                                                 "developerClient",
                                                                                 registerClubAdministratorRequest.EmailAddress,
                                                                                 registerClubAdministratorRequest.Password,
                                                                                 new List <String>
                {
                    "openid",
                    "profile",
                    "managementapi"
                });

                CreateGolfClubRequest createGolfClubRequest = new CreateGolfClubRequest
                {
                    AddressLine1    = "Address Line 1",
                    AddressLine2    = "Address Line 2",
                    EmailAddress    = $"contactus@testgolfclub{i}.co.uk",
                    TelephoneNumber = "1234567890",
                    Name            = $"Test Golf Club {i}",
                    PostalCode      = "TE57 1NG",
                    Region          = "TestRegion",
                    Town            = "TestTown",
                    Website         = string.Empty
                };

                CreateGolfClubResponse createGolfClubResponse = await testDataGenerator.CreateGolfClub(clubAdministratorToken, createGolfClubRequest, cancellationToken);

                await testDataGenerator.AddMeasuredCourseToGolfClub(Program.accessToken, createGolfClubResponse.GolfClubId, Program.AddMeasuredCourseToClubRequest, cancellationToken);

                AddTournamentDivisionToGolfClubRequest division1 = new AddTournamentDivisionToGolfClubRequest
                {
                    Division      = 1,
                    StartHandicap = -10,
                    EndHandicap   = 7
                };
                await testDataGenerator.AddTournamentDivision(Program.accessToken, createGolfClubResponse.GolfClubId, division1, cancellationToken);

                AddTournamentDivisionToGolfClubRequest division2 = new AddTournamentDivisionToGolfClubRequest
                {
                    Division      = 2,
                    StartHandicap = 6,
                    EndHandicap   = 12
                };
                await testDataGenerator.AddTournamentDivision(Program.accessToken, createGolfClubResponse.GolfClubId, division2, cancellationToken);

                AddTournamentDivisionToGolfClubRequest division3 = new AddTournamentDivisionToGolfClubRequest
                {
                    Division      = 3,
                    StartHandicap = 13,
                    EndHandicap   = 21
                };
                await testDataGenerator.AddTournamentDivision(Program.accessToken, createGolfClubResponse.GolfClubId, division3, cancellationToken);

                AddTournamentDivisionToGolfClubRequest division4 = new AddTournamentDivisionToGolfClubRequest
                {
                    Division      = 4,
                    StartHandicap = 22,
                    EndHandicap   = 28
                };
                await testDataGenerator.AddTournamentDivision(Program.accessToken, createGolfClubResponse.GolfClubId, division4, cancellationToken);

                Program.GolfClubs.Add(new GolfClubDetails
                {
                    AdminEmailAddress = registerClubAdministratorRequest.EmailAddress,
                    AdminPassword     = registerClubAdministratorRequest.Password,
                    GolfClubId        = createGolfClubResponse.GolfClubId,
                    MeasuredCourseId  = Program.AddMeasuredCourseToClubRequest.MeasuredCourseId,
                    GolfClubName      = createGolfClubRequest.Name
                });
            }
        }
 internal CompoundRuleExecutionContext(CompoundRuleInput inputData, ITestDataGenerator testDataGenerator, IReadableWorld world)
     : base(testDataGenerator, world)
 {
     InputData = inputData;
 }
Пример #13
0
 private object CreateAutoData <T> (ITestDataGenerator generator, int maxRecursionDepth)
 {
     return(generator.Create <T>(maxRecursionDepth));
 }
Пример #14
0
 public CycleDataMatrix()
 {
     //初始化矩阵
     Matrix             = new AzimuthCell[AzimuthCellCount];
     _testDataGenerator = new TargetSimulator(new AngleArea(20, 25));
 }
Пример #15
0
 private object CreateAutoData <T> (ITestDataGenerator generator, FieldInfo field, int maxRecursionDepth)
 {
     return(generator.Create <T>(maxRecursionDepth, _reflectionUtility.GetFieldInfo(field)));
 }
Пример #16
0
 internal SimpleRuleExecutionContext(ITestDataGenerator testDataGenerator, IReadableWorld world, RuleValue <T> input)
     : base(testDataGenerator, world)
 {
     Input = input;
 }
Пример #17
0
 public MetadataObjectContext(ITestDataGenerator testDataGenerator)
 {
     TestDataGenerator = testDataGenerator;
     _valueMapping     = new Dictionary <IKey, object>();
 }
Пример #18
0
        /// <summary>
        /// Creates the tournament datav2.
        /// </summary>
        /// <param name="testDataGenerator">The test data generator.</param>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <returns></returns>
        private static async Task CreateTournamentDatav2(ITestDataGenerator testDataGenerator,
                                                         CancellationToken cancellationToken)
        {
            foreach (GolfClubDetails golfClubDetails in Program.GolfClubs)
            {
                List <CreateTournamentRequest> requests = Program.GetCreateTournamentRequests(golfClubDetails.MeasuredCourseId);

                //String passwordToken = testDataGenerator.GetToken(golfClubDetails.AdminEmailAddress);

                foreach (CreateTournamentRequest createTournamentRequest in requests)
                {
                    CreateTournamentResponse createTournamentResponse =
                        await testDataGenerator.CreateTournament(Program.accessToken, golfClubDetails.GolfClubId, createTournamentRequest, cancellationToken);

                    Console.WriteLine($"Tournament {createTournamentRequest.Name} created for Club {golfClubDetails.GolfClubName}");

                    // Get the players for this club
                    List <PlayerDetails> playerList = Program.Players.Where(p => p.GolfClubId == golfClubDetails.GolfClubId).ToList();

                    foreach (PlayerDetails player in playerList)
                    {
                        Int32 counter = 0;

                        ScoreResult scoreResult = ScoreResult.Under;
                        if (counter == 0)
                        {
                            scoreResult = ScoreResult.Under;
                            counter++;
                        }
                        else if (counter == 1)
                        {
                            scoreResult = ScoreResult.Buffer;
                            counter++;
                        }
                        else
                        {
                            scoreResult = ScoreResult.Over;
                            counter     = 0;
                        }

                        RecordPlayerTournamentScoreRequest recordPlayerTournamentScoreRequest = new RecordPlayerTournamentScoreRequest
                        {
                            PlayingHandicap = player.PlayingHandicap,
                            HoleScores      =
                                Program.GetHoleScores(player.PlayingHandicap, scoreResult)
                        };

                        //String playerPasswordToken = testDataGenerator.GetToken(player.EmailAddress);

                        await testDataGenerator.SignUpPlayerForTournament(Program.accessToken, player.PlayerId, createTournamentResponse.TournamentId, cancellationToken);

                        await testDataGenerator.RecordPlayerScore(Program.accessToken,
                                                                  player.PlayerId,
                                                                  createTournamentResponse.TournamentId,
                                                                  recordPlayerTournamentScoreRequest,
                                                                  cancellationToken);

                        Console.WriteLine($"Tournament Score Recorded for Player {player.EmailAddress} for Tournament {createTournamentRequest.Name} at Golf Club {golfClubDetails.GolfClubName}");
                    }
                }
            }
        }
Пример #19
0
 internal RuleExecutionContext(ITestDataGenerator testDataGenerator, IReadableWorld world)
 {
     TestDataGenerator = testDataGenerator;
     World             = world;
 }