Example #1
0
        private static string PasswordGenerator(int minLength, int maxLength,
                                                CharGenerator charGenerator, CharGenerator vowelGenerator, CharGenerator consonantGenerator)
        {
            var length = GetRandomNumber(minLength, maxLength);
            var result = new StringBuilder();

            for (var i = 0; i < length; i++)
            {
                switch (result.Length)
                {
                case 0:
                case 1:
                    result.Append(charGenerator());
                    break;

                default:
                    if (result[result.Length - 1].IsConsonant() && result[result.Length - 2].IsConsonant())
                    {
                        result.Append(vowelGenerator());
                    }
                    else if (result[result.Length - 1].IsVowel() /*&& result[result.Length - 2].IsVowel()*/)
                    {
                        result.Append(consonantGenerator());
                    }
                    else
                    {
                        result.Append(charGenerator());
                    }
                    break;
                }
            }
            return(result.ToString());
        }
Example #2
0
            public static string GetRandomStringByLength(int length)
            {
                var chars = new List <char>();

                for (var i = 0; i < length; i++)
                {
                    chars.Add(CharGenerator.GetRandomChar());
                }

                return(new string(chars.ToArray()));
            }
Example #3
0
        public void CharGenerator_Value_ProvidesMassiveOfCharsInSpecifiedRange()
        {
            int           size    = 1000;
            CharGenerator charGen = new CharGenerator('a', 'c');

            char[] massive = new char[size];
            for (int i = 0; i < size; i++)
            {
                massive[i] = charGen.Value();
            }
            var usedNumbers = massive.Distinct().OrderBy(i => i).ToList();

            Assert.Equal('a', usedNumbers[0]);
            Assert.Equal('b', usedNumbers[1]);
            Assert.Equal('c', usedNumbers[2]);
        }
Example #4
0
        public static AllGenerator Create()
        {
            var emptyCollectionFixture = new Fixture
            {
                RepeatCount = 0
            };
            var methodProxyCalls     = new GenericMethodProxyCalls();
            var fixtureConfiguration = new AutoFixtureConfiguration();
            var fixture                     = fixtureConfiguration.CreateUnconfiguredInstance();
            var collectionGenerator         = new CollectionGenerator(methodProxyCalls);
            var valueGenerator              = new ValueGenerator(fixture);
            var charGenerator               = new CharGenerator(valueGenerator);
            var specificTypeObjectGenerator = new SpecificTypeObjectGenerator(valueGenerator);
            var emptyCollectionGenerator    = new EmptyCollectionGenerator(
                emptyCollectionFixture,
                methodProxyCalls);
            var proxyGenerator      = new ProxyGenerator();
            var proxyBasedGenerator = new ProxyBasedGenerator(
                emptyCollectionFixture,
                methodProxyCalls,
                emptyCollectionGenerator, //TODO make separate chain for this
                proxyGenerator,
                new FakeChainFactory(
                    new CachedReturnValueGeneration(new PerMethodCache <object>()),
                    GlobalNestingLimit.Of(5),
                    proxyGenerator, //TODO get rid of this dependency - its runtime-circular
                    valueGenerator,
                    collectionGenerator));
            var stringGenerator = new StringGenerator(
                charGenerator,
                valueGenerator,
                specificTypeObjectGenerator);
            var numericGenerator = new NumericGenerator(
                valueGenerator);
            var allGenerator = new AllGenerator(valueGenerator,
                                                charGenerator,
                                                specificTypeObjectGenerator,
                                                stringGenerator,
                                                emptyCollectionGenerator,
                                                numericGenerator,
                                                proxyBasedGenerator,
                                                collectionGenerator,
                                                new InvokableGenerator());

            fixtureConfiguration.ApplyTo(fixture, stringGenerator, numericGenerator);
            return(allGenerator);
        }
Example #5
0
        public GeneratePostsIterator(Session session, int seed = 0, int quantity = 100)
        {
            Session  = session;
            Seed     = seed;
            Quantity = quantity;

            Random random = Seed != 0 ? new Random(Seed) : new Random();

            ThreeGen     = new IntegerGenerator(random, 1, 3);
            SixGen       = new IntegerGenerator(random, 1, 6);
            StrLenGen    = new IntegerGenerator(random, 1, 40);
            UpcharGen    = new CharGenerator(random, 'A', 'Z');
            DowncharGen  = new CharGenerator(random, 'a', 'z');
            NumcharGen   = new CharGenerator(random, '0', '9');
            TruthGen     = new BoolGenerator(random);
            NegNumberGen = new DoubleGenerator(random, -10000, -1);
            PosNumberGen = new DoubleGenerator(random, 1, 10000);
            YearGen      = new IntegerGenerator(random, 1900, 2300);
            MonGen       = new IntegerGenerator(random, 1, 12);
            DayGen       = new IntegerGenerator(random, 1, 28);

            NextDate    = TimesCommon.Current.ParseDate(GenerateDate());
            NextAuxDate = TimesCommon.Current.ParseDate(GenerateDate());
        }
Example #6
0
        public Faker(string dirPath)
        {
            List <Assembly> allAssemblies = new List <Assembly>();


            foreach (string dll in Directory.GetFiles(dirPath, "*.dll"))
            {
                allAssemblies.Add(Assembly.LoadFile(dll));
            }

            collectionTypeGenerator = new Dictionary <string, ICollectionGenerator>();

            basicTypeGenerator = new Dictionary <Type, IGenerator>();

            var doubleGenerator = new DoubleGenerator();

            basicTypeGenerator.Add(doubleGenerator.GetGeneratorType(), doubleGenerator);

            var uintGenerator = new UIntGenerator();

            basicTypeGenerator.Add(uintGenerator.GetGeneratorType(), uintGenerator);

            var floatGenerator = new FloatGenerator();

            basicTypeGenerator.Add(floatGenerator.GetGeneratorType(), floatGenerator);

            var charGenerator = new CharGenerator();

            basicTypeGenerator.Add(charGenerator.GetGeneratorType(), charGenerator);

            var stringGenerator = new StringGenerator();

            basicTypeGenerator.Add(stringGenerator.GetGeneratorType(), stringGenerator);

            var longGenerator = new LongGenerator();

            basicTypeGenerator.Add(longGenerator.GetGeneratorType(), longGenerator);

            var datetimeGenerator = new DateGenerator();

            basicTypeGenerator.Add(datetimeGenerator.GetGeneratorType(), datetimeGenerator);

            foreach (var asm in allAssemblies)
            {
                Console.WriteLine(asm.FullName);
                var types = asm.GetTypes().Where(t => t.GetInterfaces().Where(i => i.Equals(typeof(IGenerator))).Any());

                foreach (var type in types)
                {
                    var  plugin = asm.CreateInstance(type.FullName) as IGenerator;
                    Type t      = plugin.GetGeneratorType();
                    if (!basicTypeGenerator.ContainsKey(t))
                    {
                        basicTypeGenerator.Add(plugin.GetGeneratorType(), plugin);
                    }
                }
            }

            var listGenerator = new ListGenerator();

            collectionTypeGenerator.Add(listGenerator.GetGeneratorType().Name, listGenerator);

            recursionList = new List <Type>();
        }