public void CreateItemsWithOneOfTheseChars()
        {
            var strategy = new DataCreationStrategy <Person>();

            var requestedChars = new[] { '%', (char)34, (char)32, '{', '}' };

            strategy.Add(p => p.LastName, new StringStrategy())
            .Length(20)
            .HasOneOfTheseChars(requestedChars);

            var items = Common.CreateItems(100, strategy).ToList();

            Assert.IsTrue(items.All(p => p.LastName.Length == 20));
            Assert.IsTrue(items.All(p => p.LastName.IndexOfAny(requestedChars) >= 0));
        }
        public void CreateItemsWithOneOfTheseValuesByCreatedStrategy()
        {
            // Definiere die Datenstrategy
            var strategy = new DataCreationStrategy <Person>();

            strategy.Add <int, IntegerStrategy>(p => p.Age).OneOfTheseValues(10, 20, 30);

            var people = Common.CreateItems(100, strategy).ToList();

            var template = new[] { 10, 20, 30 };

            Assert.IsTrue(people.All(p => template.Contains(p.Age)));
            Assert.IsTrue(people.Any(p => p.Age == 10));
            Assert.IsTrue(people.Any(p => p.Age == 20));
            Assert.IsTrue(people.Any(p => p.Age == 30));
        }
Exemple #3
0
        public void TestListOfNumbersWithVariableItems()
        {
            var strategy = new DataCreationStrategy <Person>();

            var intstrategy = new IntegerStrategy();

            intstrategy.Value(42);

            var liststrategy = new ListStrategy <int>(intstrategy);

            strategy.Add(p => p.Changes, liststrategy).Min(10).Max(20);

            var items = Common.CreateItems(100, strategy).ToList();

            Assert.IsTrue(items.Select(p => p.Changes.Count).Distinct().ToList().Count == 10);
            Assert.IsTrue(items.All(p => p.Changes.All(c => c == 42)));
        }
Exemple #4
0
        public void TestListOfNumbers()
        {
            var strategy = new DataCreationStrategy <Person>();

            var intstrategy = new IntegerStrategy();

            intstrategy.Value(42);

            var liststrategy = new ListStrategy <int>(intstrategy);

            strategy.Add(p => p.Changes, liststrategy).Amount(249);

            var items = Common.CreateItems(10, strategy).ToList();

            Assert.IsTrue(items.All(p => p.Changes.Count == 249));
            Assert.IsTrue(items.All(p => p.Changes.All(c => c == 42)));
        }
        public void CreateValueConditional()
        {
            DataCreationStrategy <Person> strategyPerson = new DataCreationStrategy <Person>();

            // create default values
            strategyPerson.Add(p => p.Age, new IntegerStrategy()).OneOfTheseValues(30, 31, 32, 33);
            strategyPerson.Add(p => p.IsMember, new BooleanStrategy()).Toggle();

            // apply conditional values
            strategyPerson.When(p => p.Age == 32).Then(p => p.IsMember, new BooleanStrategy()).Value(true);

            // create items
            var items = Common.CreateItems(1000, strategyPerson).ToList();

            // assert data
            Assert.IsTrue(items.Where(p => p.Age == 32).All(p => p.IsMember == true));
            Assert.IsFalse(items.Where(p => p.Age != 32).All(p => p.IsMember == true));
        }
        public void CreateItemsWithStringStrategyOneOfTheseValuesInTwoFields()
        {
            var firstNameTemplates = new[] { "John", "Paul", "George", "Ringo" };
            var lastNameTemplates  = new[] { "Lennon", "McCartney", "Harrison", "Starr" };

            var strategy = new DataCreationStrategy <Person>();

            strategy.Add(p => p.FirstName, new StringStrategy()).OneOfTheseValues(firstNameTemplates);
            strategy.Add(p => p.LastName, new StringStrategy()).OneOfTheseValues(lastNameTemplates);

            var items = Common.CreateItems(100, strategy).ToList();


            Assert.IsTrue(items.All(i => firstNameTemplates.Contains(i.FirstName)));
            Assert.IsTrue(items.All(i => i.FirstName.IsOneOfTheseValues(firstNameTemplates)));

            Assert.IsTrue(items.All(i => lastNameTemplates.Contains(i.LastName)));
            Assert.IsTrue(items.All(i => i.LastName.IsOneOfTheseValues(lastNameTemplates)));
        }
        public TestResult CreateItemsWithComposedStrategy(TestStrategy strategy)
        {
            // define the strategy for Person
            var personStrategy = new DataCreationStrategy <Person>();

            personStrategy.Add(p => p.Age, new IntegerStrategy()).Min(10).Max(100);
            personStrategy.Add(p => p.FirstName, new StringStrategy()).Length(35);
            personStrategy.Add(p => p.LastName, new StringStrategy()).Length(20).Prefix("CC_");

            // add the strategy for adress to the strategy for person
            personStrategy.Add(p => p.HomeAddress, strategy.HomeAddress);
            personStrategy.Add(p => p.BusinessAddress, strategy.BusinessAddress);

            var items = Common.CreateItems(100, personStrategy);

            Assert.IsTrue(items.All(i => i.FirstName.Length == 35));
            Assert.IsTrue(items.All(i => i.LastName.Length == 20));
            Assert.IsTrue(items.All(i => i.LastName.StartsWith("CC_")));

            return(new TestResult {
                Persons = new List <Person>(items)
            });
        }
Exemple #8
0
 public abstract void ApplyDataCreationStrategy(string propertyName, DataCreationStrategy <T> strategy, ViolationType violationType);