public void RandomPatternModel_PatternNotFound_Throws() { // Given var info = new DataGenerationInfo { RowsToGenerate = 10 }; info.Columns.Add(new RandomPatternModel(_customPatternProviderMock.Object) { Name = "testColumn", Template = "{abc}" }); _customPatternProviderMock.Setup(p => p.GetDefaultPatterns()).Returns(default(IDictionary <string, string>)); _serviceLocatorMock.Setup(l => l.GetService(It.IsAny <Type>())) .Returns(new GeneratorRandomPattern(_customPatternProviderMock.Object)); // When void whenDelegate() { _dataGeneratorDataSet.Generate(info); } // Then Assert.ThrowsException <InvalidOperationException>(whenDelegate); }
public void TemplateModel_Inline_Generates() { // Given var content = new List <object> { "red", "green", "blue" }; var sources = new List <ItemSourceModel> { new InlineSourceModel { Name = "color", Content = content } }; var info = new DataGenerationInfo { RowsToGenerate = 10, Sources = sources }; info.Columns.Add(new TemplateModel(_defaultSourceProvider) { Name = "testColumn", Template = "{color}" }); SetupServiceLocator(); // When var result = _dataGeneratorDataSet.Generate(info); // Then Assert.AreEqual(1, result.Tables.Count); Assert.AreEqual(10, result.Tables[0].Rows.Count); var expectedList = content.Select(c => c.ToString()).ToList(); UtilAssert.AssertStringsInList(result.Tables[0], "testColumn", expectedList); }
public void RandomPatternModel_UsesDefaultPatterns() { // Given var info = new DataGenerationInfo { RowsToGenerate = 10 }; info.Columns.Add(new RandomPatternModel(_customPatternProviderMock.Object) { Name = "testColumn", Template = "{uc}{d}{lc}" }); _customPatternProviderMock .Setup(p => p.GetDefaultPatterns()) .Returns(new Dictionary <string, string> { { "uc", "ABCDEFGHIJKLMNOPQRSTUVWXYZ" }, { "lc", "abcdefghijklmnopqrstuvwxyz" }, { "d", "0123456789" } }); _serviceLocatorMock.Setup(l => l.GetService(It.IsAny <Type>())) .Returns(new GeneratorRandomPattern(_customPatternProviderMock.Object)); // When var result = _dataGeneratorDataSet.Generate(info); // Then Assert.AreEqual(1, result.Tables.Count); Assert.AreEqual(10, result.Tables[0].Rows.Count); UtilAssert.AssertStringLength(result.Tables[0], "testColumn", 3, 3); UtilAssert.AssertIndexContains(result.Tables[0], "testColumn", 0, "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); UtilAssert.AssertIndexContains(result.Tables[0], "testColumn", 1, "0123456789"); UtilAssert.AssertIndexContains(result.Tables[0], "testColumn", 2, "abcdefghijklmnopqrstuvwxyz"); }
public void TemplateModel_FileWithFileNotFound_Throws() { // Given var sources = new List <ItemSourceModel> { new FileSourceModel { Name = "color", Path = "C:\\file-not-found.txt" } }; var info = new DataGenerationInfo { RowsToGenerate = 10, Sources = sources }; info.Columns.Add(new TemplateModel(_defaultSourceProvider) { Name = "testColumn", Template = "{color}" }); // When void whenDelegate() { _dataGeneratorDataSet.Generate(info); } // Then Assert.ThrowsException <InvalidOperationException>(whenDelegate); }
public void TemplateModel_QueryWithNoProviderType_Throws() { // Given var sources = new List <ItemSourceModel> { new QuerySourceModel { Name = "color", // Missing providerType ConnectionString = "asd", Query = "SELECT someColumn FROM someTable" } }; var info = new DataGenerationInfo { RowsToGenerate = 10, Sources = sources }; info.Columns.Add(new TemplateModel(_defaultSourceProvider) { Name = "testColumn", Template = "{color}" }); // When void whenDelegate() { _dataGeneratorDataSet.Generate(info); } // Then Assert.ThrowsException <InvalidOperationException>(whenDelegate); }
public void DateTimeRangeModel_CorrectLimits_Generates() { // Given var info = new DataGenerationInfo { RowsToGenerate = 10 }; DateTime minDate = new(1980, 1, 1); DateTime maxDate = new(1989, 12, 31); var minTime = DateTime.Today.AddHours(4); var maxTime = DateTime.Today.AddHours(5); info.Columns.Add(new DateTimeRangeModel { Name = "testColumn", MinDate = minDate, MaxDate = maxDate, MinTime = minTime, MaxTime = maxTime }); // When var result = _dataGeneratorDataSet.Generate(info); // Then Assert.AreEqual(1, result.Tables.Count); Assert.AreEqual(10, result.Tables[0].Rows.Count); UtilAssert.AssertDateInRange(result.Tables[0], "testColumn", minDate, maxDate); }
public void TemplateModel_InlineWithEmptyContent_Throws() { // Given var sources = new List <ItemSourceModel> { new InlineSourceModel { Name = "color", Content = null } }; var info = new DataGenerationInfo { RowsToGenerate = 10, Sources = sources }; info.Columns.Add(new TemplateModel(_defaultSourceProvider) { Name = "testColumn", Template = "{color}" }); // When void whenDelegate() { _dataGeneratorDataSet.Generate(info); } // Then Assert.ThrowsException <InvalidOperationException>(whenDelegate); }
public void RandomPatternModel_UsesProvidedPatterns() { // Given var info = new DataGenerationInfo { RowsToGenerate = 10 }; var patterns = new Dictionary <string, string> { { "odd", "13579" }, { "even", "02468" }, { "vowel", "aeiou" } }; info.Columns.Add(new RandomPatternModel(_customPatternProviderMock.Object) { Name = "testColumn", Template = "{odd}{vowel}{even}", Patterns = patterns }); _customPatternProviderMock.Setup(p => p.GetDefaultPatterns()).Returns(default(IDictionary <string, string>)); _serviceLocatorMock.Setup(l => l.GetService(It.IsAny <Type>())) .Returns(new GeneratorRandomPattern(_customPatternProviderMock.Object)); // When var result = _dataGeneratorDataSet.Generate(info); // Then Assert.AreEqual(1, result.Tables.Count); Assert.AreEqual(10, result.Tables[0].Rows.Count); UtilAssert.AssertStringLength(result.Tables[0], "testColumn", 3, 3); UtilAssert.AssertIndexContains(result.Tables[0], "testColumn", 0, "13579"); UtilAssert.AssertIndexContains(result.Tables[0], "testColumn", 1, "aeiou"); UtilAssert.AssertIndexContains(result.Tables[0], "testColumn", 2, "02468"); }
public void DateTimeRangeModel_InvalidDateLimits_Throws() { // Given var info = new DataGenerationInfo { RowsToGenerate = 10 }; DateTime minDate = new(1990, 1, 1); DateTime maxDate = new(1989, 12, 31); var minTime = DateTime.Today.AddHours(4); var maxTime = DateTime.Today.AddHours(5); info.Columns.Add(new DateTimeRangeModel { Name = "testColumn", MinDate = minDate, MaxDate = maxDate, MinTime = minTime, MaxTime = maxTime }); // When void whenDelegate() { _dataGeneratorDataSet.Generate(info); } // Then Assert.ThrowsException <InvalidOperationException>(whenDelegate); }
public void GuidModel() { // Given var info = new DataGenerationInfo { RowsToGenerate = 10 }; info.Columns.Add(new GuidModel { Name = "testColumn" }); // When var result = _dataGeneratorDataSet.Generate(info); // Then Assert.AreEqual(1, result.Tables.Count); Assert.AreEqual(10, result.Tables[0].Rows.Count); }
public void TemplateModel_FileWithJsonArrayOfObjects_Generates() { // Given var filePath = Path.Combine(Environment.CurrentDirectory, "Resources", "Content", "Animals_ArrayOfObjects.txt"); var sources = new List <ItemSourceModel> { new FileSourceModel { Name = "animal", Path = filePath, Format = ItemSourceFormat.JsonArrayOfObjects, Props = new Dictionary <string, string> { { "propertyName", "name" } } } }; var info = new DataGenerationInfo { RowsToGenerate = 10, Sources = sources }; info.Columns.Add(new TemplateModel(_defaultSourceProvider) { Name = "testColumn", Template = "{animal}" }); SetupServiceLocator(); // When var result = _dataGeneratorDataSet.Generate(info); // Then var content = new List <string> { "Dog", "Cat", "Horse", "Elephant", "Giraffe", "Mouse", "Rabbit" }; Assert.AreEqual(1, result.Tables.Count); Assert.AreEqual(10, result.Tables[0].Rows.Count); var expectedList = content.Select(c => c.ToString()).ToList(); UtilAssert.AssertStringsInList(result.Tables[0], "testColumn", expectedList); }
public void TemplateModel_Query_Generates() { // Given var sqliteFilePath = Path.Combine(Environment.CurrentDirectory, "Resources", "Content", "LeftwareToolsTest.db"); var sources = new List <ItemSourceModel> { new QuerySourceModel { Name = "animal", ProviderType = DatabaseEngine.Sqlite, ConnectionString = $"Data Source={sqliteFilePath};Version=3;", Query = "SELECT name FROM animal" } }; var info = new DataGenerationInfo { RowsToGenerate = 10, Sources = sources }; info.Columns.Add(new TemplateModel(_defaultSourceProvider) { Name = "testColumn", Template = "{animal}" }); SetupServiceLocator(); // When var result = _dataGeneratorDataSet.Generate(info); // Then var content = new List <string> { "Dog", "Cat", "Horse", "Elephant", "Giraffe", "Mouse", "Rabbit" }; Assert.AreEqual(1, result.Tables.Count); Assert.AreEqual(10, result.Tables[0].Rows.Count); var expectedList = content.Select(c => c.ToString()).ToList(); UtilAssert.AssertStringsInList(result.Tables[0], "testColumn", expectedList); }
public void IntegerRangeModel_CorrectLimits_Generates() { // Given var info = new DataGenerationInfo { RowsToGenerate = 10 }; info.Columns.Add(new IntegerRangeModel { Name = "testColumn", Min = 5, Max = 15 }); // When var result = _dataGeneratorDataSet.Generate(info); // Then Assert.AreEqual(1, result.Tables.Count); Assert.AreEqual(10, result.Tables[0].Rows.Count); UtilAssert.AssertIntegerInRange(result.Tables[0], "testColumn", 5, 15); }
public void DoubleRangeModel_CorrectLimits_Generates() { // Given var info = new DataGenerationInfo { RowsToGenerate = 10 }; info.Columns.Add(new DoubleRangeModel { Name = "testColumn", Min = 1.0, Max = 99.9 }); // When var result = _dataGeneratorDataSet.Generate(info); // Then Assert.AreEqual(1, result.Tables.Count); Assert.AreEqual(10, result.Tables[0].Rows.Count); UtilAssert.AssertDoubleInRange(result.Tables[0], "testColumn", 1.0, 99.9); }
public void IntegerRangeModel_InvalidLimits_Throws() { // Given var info = new DataGenerationInfo { RowsToGenerate = 10 }; info.Columns.Add(new IntegerRangeModel { Name = "testColumn" }); // When void whenDelegate() { _dataGeneratorDataSet.Generate(info); } // Then Assert.ThrowsException <InvalidOperationException>(whenDelegate); }
public void RandomCharsModel_Correct_Generates() { // Given var info = new DataGenerationInfo { RowsToGenerate = 10 }; info.Columns.Add(new RandomCharsModel { Name = "testColumn", AllowedChars = "abcde", MinLength = 5, MaxLength = 10 }); // When var result = _dataGeneratorDataSet.Generate(info); // Then Assert.AreEqual(1, result.Tables.Count); Assert.AreEqual(10, result.Tables[0].Rows.Count); UtilAssert.AssertChars(result.Tables[0], "testColumn", "abcde", "ABCqwr123"); }
public void Model_WithoutName_Fails() { // Given var info = new DataGenerationInfo { RowsToGenerate = 10 }; info.Columns.Add(new GuidModel { Name = null }); // When void whenDelegate() { _dataGeneratorDataSet.Generate(info); } // Then Assert.ThrowsException <InvalidOperationException>(whenDelegate); }
public void RandomCharsModel_NoLengths_Throws() { // Given var info = new DataGenerationInfo { RowsToGenerate = 10 }; info.Columns.Add(new RandomCharsModel { Name = "testColumn", AllowedChars = "abcde" }); // When void whenDelegate() { _dataGeneratorDataSet.Generate(info); } // Then Assert.ThrowsException <InvalidOperationException>(whenDelegate); }
public override void Execute(IDictionary <string, object> input) { var columnList = input["columns"] as List <ColumnModel>; var sourceList = input["sources"] as List <ItemSourceModel>; var file = input.Get <string>(FILE); var obj = new DataGenerationInfo { Columns = columnList, Sources = sourceList, RowsToGenerate = 1000 }; var jss = new JsonSerializerSettings { Formatting = Formatting.Indented, ContractResolver = new DefaultContractResolver { NamingStrategy = new CamelCaseNamingStrategy() } }; var json = JsonConvert.SerializeObject(obj, jss); File.WriteAllText(file, json); }
public void TemplateModel_NoInput_Throws() { // Given var info = new DataGenerationInfo { RowsToGenerate = 10 }; info.Columns.Add(new TemplateModel(_defaultSourceProvider) { Name = "testColumn" }); // When void whenDelegate() { _dataGeneratorDataSet.Generate(info); } // Then Assert.ThrowsException <InvalidOperationException>(whenDelegate); }
public void TemplateModel_MultipleDefaultSources_Generates() { // Given var info = new DataGenerationInfo { RowsToGenerate = 10 }; info.Columns.Add(new TemplateModel(_defaultSourceProvider) { Name = "testColumn", Template = "{names-male|names-female} {surnames}" }); SetupServiceLocator(); // When var result = _dataGeneratorDataSet.Generate(info); // Then Assert.AreEqual(1, result.Tables.Count); Assert.AreEqual(10, result.Tables[0].Rows.Count); UtilAssert.AssertStringsNotInList(result.Tables[0], "testColumn", new[] { "--ND--" }); }
public void RandomPatternModel_NoInput_Throws() { // Given var info = new DataGenerationInfo { RowsToGenerate = 10 }; info.Columns.Add(new RandomPatternModel(_customPatternProviderMock.Object) { Name = "testColumn" }); _customPatternProviderMock.Setup(p => p.GetDefaultPatterns()).Returns(default(IDictionary <string, string>)); // When void whenDelegate() { _dataGeneratorDataSet.Generate(info); } // Then Assert.ThrowsException <InvalidOperationException>(whenDelegate); }