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)); }
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))); }
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) }); }
public abstract void ApplyDataCreationStrategy(string propertyName, DataCreationStrategy <T> strategy, ViolationType violationType);