public void ShouldOutputFakeTableWithInserts() { string selectedText = "MYDB.MySchema.MockingTable"; var actual = TsqltManager.GetFakeTableStatement(selectedText); string expected = "EXEC [MYDB].tSQLt.FakeTable 'MySchema.MockingTable';"; Assert.That(actual, Is.Not.Null.And.Not.Empty); Assert.That(actual, Is.EqualTo(expected)); }
public void ShouldOutputDefaultSchemaWhenNoSchemaSpecified() { string selectedText = "MockingTable"; var actual = TsqltManager.GetFakeTableStatement(selectedText); string expected = "EXEC tSQLt.FakeTable 'dbo.MockingTable';"; Assert.That(actual, Is.Not.Null.And.Not.Empty); Assert.That(actual, Is.EqualTo(expected)); }
public void ShouldMockAllObjectDependencies() { var token = new CancellationTokenSource().Token; var service = new ObjectDependencyService(); var options = new PeterHenell.SSMS.Plugins.Utils.TsqltManager.MockOptionsDictionary(); options.EachColumnInSelectOnNewRow = false; options.EachColumnInValuesOnNewRow = false; var meta = ObjectMetadata.FromQualifiedString("ETL.fillCountry"); var deps = service.GetDependencies(meta, GetLocalConnection(), token); var res = TsqltManager.MockAllDependencies(token, options, GetLocalConnection(), deps); Console.WriteLine(res.ToString()); }
public void ShouldMockHierarchialIDValues() { // Due to bug var token = new CancellationTokenSource().Token; var service = new ObjectDependencyService(); var options = new PeterHenell.SSMS.Plugins.Utils.TsqltManager.MockOptionsDictionary(); options.EachColumnInSelectOnNewRow = false; options.EachColumnInValuesOnNewRow = false; var meta = ObjectMetadata.FromQualifiedString("REPORT.70_getShortRiskDetailed_IRT"); var deps = service.GetDependencies(meta, GetLocalConnection(), token); var res = TsqltManager.MockAllDependencies(token, options, GetLocalConnection(), deps); Console.WriteLine(res.ToString()); }
public override void ExecuteCommand(System.Threading.CancellationToken token) { var selectedText = ShellManager.GetSelectedText(); var options = new PeterHenell.SSMS.Plugins.Utils.TsqltManager.MockOptionsDictionary(); options.EachColumnInSelectOnNewRow = false; options.EachColumnInValuesOnNewRow = false; var connectionString = ConnectionManager.GetConnectionStringForCurrentWindow(); var meta = ObjectMetadata.FromQualifiedString(selectedText); var service = new ObjectDependencyService(); var dependencies = service.GetDependencies(meta, connectionString, token); var superMockingString = TsqltManager.MockAllDependencies(token, options, connectionString, dependencies); ShellManager.AppendToEndOfSelection(superMockingString); }
public void ShouldGenerateInsertIntoMockTable() { var meta = ObjectMetadata.FromQualifiedString("msdb.[dbo].[syscategories]"); ObjectMetadataAccess da = new ObjectMetadataAccess(GetLocalConnection()); var token = new CancellationTokenSource().Token; var table = da.SelectTopNFrom(meta, token); var actual = TsqltManager.GenerateInsertFor(table, meta); var expected = @"INSERT INTO [msdb].[dbo].[syscategories] ( [category_id], [category_class], [category_type], [name] ) " + "VALUES\t(0, 1, 1, '[Uncategorized (Local)]');"; Console.WriteLine(expected); Console.WriteLine(actual); Assert.That(actual, Is.EqualTo(expected)); }
public override void ExecuteCommand(CancellationToken token) { var options = new PeterHenell.SSMS.Plugins.Utils.TsqltManager.MockOptionsDictionary(); var ok = new Action <string, PeterHenell.SSMS.Plugins.Utils.TsqltManager.MockOptionsDictionary>((result, checkedOptions) => { int numRows = 0; if (!int.TryParse(result, out numRows)) { ShellManager.ShowMessageBox("Please input a valid number"); return; } else { if (numRows <= 0) { numRows = 0; } else if (numRows > 1000) { numRows = 1000; } } var selectedText = ShellManager.GetSelectedText(); StringBuilder sb = new StringBuilder(); var connectionString = ConnectionManager.GetConnectionStringForCurrentWindow(); var meta = ObjectMetadata.FromQualifiedString(selectedText); sb.AppendLine(TsqltManager.MockTableWithRows(token, options, numRows, meta, connectionString)); ShellManager.ReplaceSelectionWith(sb.ToString()); }); var diagManager = new DialogManager.InputWithCheckboxesDialogManager <PeterHenell.SSMS.Plugins.Utils.TsqltManager.MockOptionsDictionary>(); diagManager.Show("How many rows to select? (0=max)", "1", options, ok, cancelCallback); }
public override void ExecuteCommand(CancellationToken token) { var options = new MockOptionsDictionary(); var ok = new Action <string, MockOptionsDictionary>((result, checkedOptions) => { int numRows = 0; if (!int.TryParse(result, out numRows)) { ShellManager.ShowMessageBox("Please input a valid number"); return; } else { if (numRows <= 0) { numRows = 0; } else if (numRows > 1000) { numRows = 1000; } } string selectedText = ShellManager.GetSelectedText(); var sb = new StringBuilder(); using (var ds = new DataSet()) { QueryManager.Run(ConnectionManager.GetConnectionStringForCurrentWindow(), token, (queryManager) => { queryManager.Fill(string.Format("SET ROWCOUNT {0}; {1}", numRows, selectedText), ds); }); if (ds.Tables.Count == 1) { sb.AppendDropTempTableIfExists("#Actual"); sb.AppendLine(); sb.AppendDropTempTableIfExists("#Expected"); sb.AppendLine(); sb.AppendTempTablesFor(ds.Tables[0], "#Actual"); sb.Append("INSERT INTO #Actual"); ShellManager.AddTextToTopOfSelection(sb.ToString()); sb.Clear(); sb.AppendColumnNameList(ds.Tables[0]); ShellManager.AppendToEndOfSelection( string.Format("{0}SELECT {1}INTO #Expected{0}FROM #Actual{0}WHERE 1=0;{0}", Environment.NewLine, sb.ToString()) ); ShellManager.AppendToEndOfSelection( TsqltManager.GenerateInsertFor(ds.Tables[0], ObjectMetadata.FromQualifiedString("#Expected"), false, false)); } else { return; } } //var meta = ObjectMetadata.FromQualifiedString(selectedText); //ObjectMetadataAccess da = new ObjectMetadataAccess(ConnectionManager.GetConnectionStringForCurrentWindow()); //var table = da.SelectTopNFrom(meta, numRows); //StringBuilder sb = new StringBuilder(); //sb.Append(TsqltManager.GetFakeTableStatement(selectedText)); //sb.AppendLine(); //sb.Append(TsqltManager.GenerateInsertFor(table, meta, options.EachColumnInSelectOnNewRow, options.EachColumnInValuesOnNewRow)); //shellManager.ReplaceSelectionWith(sb.ToString()); }); var diagManager = new DialogManager.InputWithCheckboxesDialogManager <MockOptionsDictionary>(); diagManager.Show("How many rows to select? (0=max)", "1", options, ok, cancelCallback); }