Пример #1
0
 Context StringDomainContext(bool useDefaults, int seed)
 {
     return(c => c
            .Given("string base domain", x => TestDataDomain = configurator => configurator.UseDefaults(useDefaults).UseRandom(new DefaultRandom(seed)))
            .Given("string evolutionary domain", x => EvolutionaryDomain = configurator => configurator.AddRule(new StringMarryRule()))
            .Given(DataGeneratorContext())
            .Given(StringInitialDataContext()));
 }
        /// <summary>
        /// Creates a test data generator for the given domain
        /// </summary>
        /// <param name="testDataDomainConfiguration">the domain, containing all relevant information for the test data generation</param>
        /// <returns>the final compound value provider that can be used for data generation</returns>
        public static ITestDataGenerator Create(TestDataDomainConfiguration testDataDomainConfiguration = null)
        {
            ChainConfigurator chainConfigurator = new DomainConfigurator();

            if (testDataDomainConfiguration != null)
            {
                chainConfigurator = (ChainConfigurator)testDataDomainConfiguration((DomainConfigurator)chainConfigurator);
            }

            return(chainConfigurator.Build());
        }
Пример #3
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)));
 }
Пример #4
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)));
 }
Пример #6
0
        /// <summary>
        /// Creates an evolutionary data generator for the given domain
        /// </summary>
        /// <param name="testDataDomainConfiguration">the domain, containing all relevant imformation for the test data generation</param>
        /// <param name="evolutionaryDomainConfiguration">the domain, containing all relevant information for the evolutionary generation</param>
        /// <returns>the final test data generator that can be used for data generation</returns>
        public static RuleBasedDataGenerator Create(TestDataDomainConfiguration testDataDomainConfiguration, [CanBeNull] EvolutionaryDomainConfiguration evolutionaryDomainConfiguration)
        {
            var testDataGenerator = TestDataGeneratorFactory.Create(testDataDomainConfiguration);

            var evolutionaryDomainConfigurator = new RuleBasedDataGeneratorConfigurator();

            if (evolutionaryDomainConfiguration != null)
            {
                evolutionaryDomainConfigurator = (RuleBasedDataGeneratorConfigurator)evolutionaryDomainConfiguration(evolutionaryDomainConfigurator);
            }

            var ruleSet = evolutionaryDomainConfigurator.Build();

            return(new RuleBasedDataGenerator(testDataGenerator, ruleSet));
        }
Пример #7
0
 Context PersonDomainContext(int seed = 0, bool useDefaults = true)
 {
     return(c => c
            .Given("person test domain", x => TestDataDomain = configurator => configurator
                                                               //
                                                               .UseDefaults(useDefaults).UseRandom(new DefaultRandom(seed))
                                                               //
                                                               .For <Gender> ().AddProvider(context => (Gender)(context.Random.Next(0, 2))))
            .Given("person evolution domain", x => EvolutionaryDomain = configurator => configurator
                                                                        //
                                                                        .AddGlobalRule(new WorldRule())
                                                                        .AddRule(new ProcreationRule()).AddRule(new AgingRule()))
            .Given(DataGeneratorContext())
            .Given(PersonInitialDataContext()));
 }
 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)));
 }
 Context ConfigurationContext(TestDataDomainConfiguration config)
 {
     return(c => c
            .Given("domain with invalid configuration", x => { TestDataDomainConfiguration = config; })
            .Given(TestDataGeneratorContext(catchExceptions: true)));
 }
 Context ConfigurationContext(TestDataDomainConfiguration config)
 {
     return(c => c
            .Given("domain with valid configuration", x => { TestDataDomainConfiguration = config; })
            .Given(TestDataGeneratorContext()));
 }