public void TestDateTimeFormatterCase1() { // //Arrange // var testRow = 100; //because random result, need more record to ensure it correct var format = @"insert into TableA \(\[ColumnA\]\) values" + @"(" + @"\s*\('(2017-01-02|2017-01-09|2017-01-16|2017-01-23|2017-01-30) ([0][9]|[1][0-8]):([0-5][0-9]):([0-5][0-9])'\),*" + @"){" + testRow + "}" + @";" + @"\s+GO" ; var config = new GenerateConfig[] { new GenerateConfig { TableName = "TableA", ColumnName = "ColumnA", DataType = "varchar", GenerateFormat = @"{dateTime|[\{ DayRange: '2017-01-01~2017-01-31',TimeRangeOfWeekDay:['mon:09:00:00~18:00:00']\} ]}", GenerateRecordCount = testRow } }; // //Act // var result = SQLGenerator.GenerateInsertStatement(new MSSQLBuilder(), config).ToString(); // //Assert // Assert.IsTrue( Regex.Match(result, format.ToString()).Success, "Format: \"{0}\", Actuals: \"{1}\"", format, result); }
public void TestDictionaryFormatterCase3() { // //Arrange // var testRow = 1; var format = @"insert into TableA \(\[ColumnA\]\) values\s+\('Dear {abc} \w+ \w+'\)" + @";" + @"\s+GO" ; var config = new GenerateConfig[] { new GenerateConfig { TableName = "TableA", ColumnName = "ColumnA", DataType = "varchar", GenerateFormat = "Dear \\{abc\\} { dict|name:'firstNameDict',field:'Eng' } { dict|name:'LastNameDict',field:'Eng' }", GenerateRecordCount = testRow } }; // //Act // var result = SQLGenerator.GenerateInsertStatement(new MSSQLBuilder(), config).ToString(); // //Assert // Assert.IsTrue( Regex.Match(result, format).Success, "Format: \"{0}\", Actuals: \"{1}\"", format, result); }
public void TestDictionaryFormatterCase6() { // //Arrange // var testRow = 2; var format = @"insert into TableA \(\[ColumnA\]\) values" + @"\s+\('(\w+)'\)," + @"\s+\('(\w+)'\)" + @";" + @"\s+GO" ; var config = new GenerateConfig[] { new GenerateConfig { TableName = "TableA", ColumnName = "ColumnA", DataType = "varchar", GenerateFormat = "{ dict|name:'firstNameDict',field:'Eng' }", GenerateRecordCount = testRow } }; // //Act // var result = SQLGenerator.GenerateInsertStatement(new MSSQLBuilder(), config).ToString(); // //Assert // Assert.AreNotEqual( Regex.Match(result, format).Groups[1].Value, Regex.Match(result, format).Groups[2].Value, "Format: \"{0}\", Actuals: \"{1}\"", format, result); }
public void TestSQLGeneratorCase1() { // //Arrange // var format = @"use \[MyDB\];" + @"\s+GO" + @"\s+insert into TableA \(\[ColumnA\]\) values" + @"\s+\('abc'\)," + @"\s+\('abc'\)" + @";" + @"\s+GO" + @"\s+use \[MyDB\];" + @"\s+GO" + @"\s+set IDENTITY_INSERT TableB on;" + @"\s+GO" + @"\s+insert into TableB \(\[ColumnB\]\) values" + @"\s+\('def'\)," + @"\s+\('def'\)," + @"\s+\('def'\)" + @";" + @"\s+GO" + @"\s+set IDENTITY_INSERT TableB off;" + @"\s+GO" ; var config = new GenerateConfig[] { new GenerateConfig { DatabaseName = "MyDB", TableName = "TableA", ColumnName = "ColumnA", DataType = "varchar", GenerateFormat = @"abc", GenerateRecordCount = 2 }, new GenerateConfig { DatabaseName = "MyDB", TableName = "TableB", ColumnName = "ColumnB", DataType = "varchar", GenerateFormat = @"def", GenerateRecordCount = 3, IdentityInsert = true } }; // //Act // var result = SQLGenerator.GenerateInsertStatement(new MSSQLBuilder(), config).ToString(); // //Assert // Assert.IsTrue( Regex.Match(result, format.ToString()).Success, "Format: \"{0}\", Actuals: \"{1}\"", format, result); }
public void TestReferenceColumnFormatterCase2() { // //Arrange // var testRow = 2; var format = @"insert into Staff \(\[Id\], \[FirstName\], \[LastName\], \[FullName\]\) values" + @"\s*\('E001', 'Benny001', 'Leung001', 'Benny001 Leung001'\),*" + @"\s*\('E002', 'Benny002', 'Leung002', 'Benny002 Leung002'\),*" + @";" + @"\s+GO" ; var config = new GenerateConfig[] { new GenerateConfig { TableName = "Staff", ColumnName = "Id", DataType = "varchar", GenerateFormat = @"E{seq|start:1,padding:'\{0:000\}'}", GenerateRecordCount = testRow }, new GenerateConfig { TableName = "Staff", ColumnName = "FirstName", DataType = "varchar", GenerateFormat = @"Benny{seq|start:1,padding:'\{0:000\}'}", GenerateRecordCount = testRow }, new GenerateConfig { TableName = "Staff", ColumnName = "LastName", DataType = "varchar", GenerateFormat = @"Leung{seq|start:1,padding:'\{0:000\}'}", GenerateRecordCount = testRow }, new GenerateConfig { TableName = "Staff", ColumnName = "FullName", DataType = "varchar", GenerateFormat = @"{ref|table:'Staff',column:'FirstName'} {ref|table:'Staff',column:'LastName'}", GenerateRecordCount = testRow }, }; // //Act // var result = SQLGenerator.GenerateInsertStatement(new MSSQLBuilder(), config).ToString(); // //Assert // Assert.IsTrue( Regex.Match(result, format.ToString()).Success, "Format: \"{0}\", Actuals: \"{1}\"", format, result); }
public void TestReferenceColumnFormatterCase3() { // //Arrange // var testRow = 1; var format = @"insert into StaffLeave \(\[Id\], \[StartDate\], \[EndDate\], \[DayTaken\]\) values" + @"\s*\('L001', '2017-01-01 00:00:00', '2017-01-02 00:00:00', '1'\),*" + @";" + @"\s+GO" ; var config = new GenerateConfig[] { new GenerateConfig { TableName = "StaffLeave", ColumnName = "Id", DataType = "varchar", GenerateFormat = @"L{seq|start:1,padding:'\{0:000\}'}", GenerateRecordCount = testRow }, new GenerateConfig { TableName = "StaffLeave", ColumnName = "StartDate", DataType = "varchar", GenerateFormat = @"2017-01-01 00:00:00", GenerateRecordCount = testRow }, new GenerateConfig { TableName = "StaffLeave", ColumnName = "EndDate", DataType = "varchar", GenerateFormat = @"{ref|table:'StaffLeave',column:'StartDate',converterName:'DateTimeConverter',converterParams:['AddDays', 1]}", GenerateRecordCount = testRow }, new GenerateConfig { TableName = "StaffLeave", ColumnName = "DayTaken", DataType = "varchar", GenerateFormat = @"1", GenerateRecordCount = testRow }, }; // //Act // var result = SQLGenerator.GenerateInsertStatement(new MSSQLBuilder(), config).ToString(); // //Assert // Assert.IsTrue( Regex.Match(result, format.ToString()).Success, "Format: \"{0}\", Actuals: \"{1}\"", format, result); }
public void TestSequentialNumberFormatterCase1() { // //Arrange // var testRow = 4; var format = @"insert into TableA \(\[ColumnA\]\) values" + @"\s+\('abc 010 def'\)," + @"\s+\('abc 011 def'\)," + @"\s+\('abc 012 def'\)," + @"\s+\('abc 010 def'\)" + @";" + @"\s+GO" ; var config = new GenerateConfig[] { new GenerateConfig { TableName = "TableA", ColumnName = "ColumnA", DataType = "varchar", GenerateFormat = @"abc {seq|start:10,end:12,padding:'\{0:000\}'} def", GenerateRecordCount = testRow } }; // //Act // var result = SQLGenerator.GenerateInsertStatement(new MSSQLBuilder(), config).ToString(); // //Assert // Assert.IsTrue( Regex.Match(result, format).Success, "Format: \"{0}\", Actuals: \"{1}\"", format, result); }
public void TestReferenceColumnFormatterCase1() { // //Arrange // var testRow = 2; var format = @"insert into Staff \(\[Id\]\) values" + @"\s*\('E001'\),*" + @"\s*\('E002'\),*" + @";" + @"\s+GO" + @"\s*insert into LeaveType \(\[Id\]\) values" + @"\s*\('L001'\),*" + @"\s*\('L002'\),*" + @";" + @"\s+GO" + @"\s*insert into StaffLeave \(\[Id\], \[StaffId\], \[LeaveId\]\) values" + @"\s*\('1', 'E00(1|2)', 'L00(1|2)'\),*" + @"\s*\('2', 'E00(1|2)', 'L00(1|2)'\),*" + @";" + @"\s+GO" ; var config = new GenerateConfig[] { new GenerateConfig { TableName = "Staff", ColumnName = "Id", DataType = "varchar", GenerateFormat = @"E{seq|start:1,padding:'\{0:000\}'}", GenerateRecordCount = testRow }, new GenerateConfig { TableName = "StaffLeave", ColumnName = "Id", DataType = "varchar", GenerateFormat = @"{seq|start:1}", GenerateRecordCount = testRow }, new GenerateConfig { TableName = "StaffLeave", ColumnName = "StaffId", DataType = "varchar", GenerateFormat = @"{ref|table:'Staff',column:'Id'}", GenerateRecordCount = testRow }, new GenerateConfig { TableName = "StaffLeave", ColumnName = "LeaveId", DataType = "varchar", GenerateFormat = @"{ref|table:'LeaveType',column:'Id'}", GenerateRecordCount = testRow }, new GenerateConfig { TableName = "LeaveType", ColumnName = "Id", DataType = "varchar", GenerateFormat = @"L{seq|start:1,padding:'\{0:000\}'}", GenerateRecordCount = testRow }, }; // //Act // var result = SQLGenerator.GenerateInsertStatement(new MSSQLBuilder(), config).ToString(); // //Assert // Assert.IsTrue( Regex.Match(result, format.ToString()).Success, "Format: \"{0}\", Actuals: \"{1}\"", format, result); }