From bfe86dccf1294bd615c97f083a0b3a83453f4295 Mon Sep 17 00:00:00 2001 From: Liz Baron <10554+lizbaron@users.noreply.github.com> Date: Sat, 1 Jan 2022 08:39:28 -0500 Subject: [PATCH 1/7] Draft of ReleaseNotes.txt --- Build/ReleaseNotes.txt | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/Build/ReleaseNotes.txt b/Build/ReleaseNotes.txt index ff0063220..8cb0a1ba9 100644 --- a/Build/ReleaseNotes.txt +++ b/Build/ReleaseNotes.txt @@ -4,12 +4,42 @@ An online version of these release notes is available at: http://tsqlt.org/category/release-notes/ - --------------------------- Release: VLATEST-BUILD-NUMBER BUG FIXES: +N/A + +NEW FEATURES: + +1. SpyProcedure has a new optional parameter, @CallOriginal +2. SpyProcedure provides the variable @SpyProcedureOriginalObjectName within the CommandToExecute +3. NoTransaction annotation + + --[@tSQLt:NoTransaction](@CleanUpProcedureName) <-- Executes the test outside of a transaction. If a @CleanUpProcedureName is specified, it will be executed after the test completes. + +4. UndoTestDoubles +5. FakeFunction allows FakeDataSource to be a "VALUES" clause. + +MISCELLANEOUS: + +1. Reduced the complexity of building and testing tSQLt. +2. Removed dependency on Private_NullCellTable table +3. Installation of tSQLt can handle more edge cases +4. Standardized error messages +5. For tSQLt contributors: New build target 'tSQLtOnly', which skips Facade validation steps + +TODO +make UndoSingleTestDouble private +clean up line 134 tSQLt.class.sql + + +--------------------------- +Release: V1.0.7950.1808 + +BUG FIXES: + 1. Removed unexpected facade objects (aka ufos) from tSQLt dacpacs. NEW FEATURES: From 866aa547283d61bd40cd06ee23b997be41dfbf2e Mon Sep 17 00:00:00 2001 From: Liz Baron <10554+lizbaron@users.noreply.github.com> Date: Sun, 2 Jan 2022 16:51:48 -0500 Subject: [PATCH 2/7] wordsmithing ReleaseNotes.txt and deleted extraneous comments --- Build/ReleaseNotes.txt | 16 ++++++---------- Source/tSQLt.class.sql | 3 --- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/Build/ReleaseNotes.txt b/Build/ReleaseNotes.txt index 8cb0a1ba9..3cc464a72 100644 --- a/Build/ReleaseNotes.txt +++ b/Build/ReleaseNotes.txt @@ -15,25 +15,21 @@ NEW FEATURES: 1. SpyProcedure has a new optional parameter, @CallOriginal 2. SpyProcedure provides the variable @SpyProcedureOriginalObjectName within the CommandToExecute -3. NoTransaction annotation - - --[@tSQLt:NoTransaction](@CleanUpProcedureName) <-- Executes the test outside of a transaction. If a @CleanUpProcedureName is specified, it will be executed after the test completes. - -4. UndoTestDoubles -5. FakeFunction allows FakeDataSource to be a "VALUES" clause. +3. NoTransaction test annotation --[@tSQLt:NoTransaction](@CleanUpProcedureName) + This annotation causes the test to be executed outside of a transaction. The @CleanUpProcedureName procedure is executed after the test completes. +4. UndoTestDoubles, useful when test double procedures like tSQLt.FakeTable are executed outside of a transaction +5. FakeFunction allows FakeDataSource to be a "VALUES" clause MISCELLANEOUS: -1. Reduced the complexity of building and testing tSQLt. +1. Reduced the complexity of building and testing tSQLt 2. Removed dependency on Private_NullCellTable table 3. Installation of tSQLt can handle more edge cases 4. Standardized error messages 5. For tSQLt contributors: New build target 'tSQLtOnly', which skips Facade validation steps -TODO +TODO <-- START HERE make UndoSingleTestDouble private -clean up line 134 tSQLt.class.sql - --------------------------- Release: V1.0.7950.1808 diff --git a/Source/tSQLt.class.sql b/Source/tSQLt.class.sql index cbd5533f3..69012dd19 100644 --- a/Source/tSQLt.class.sql +++ b/Source/tSQLt.class.sql @@ -131,9 +131,6 @@ RETURN AND LE.LoginTime = ES.login_time WHERE ES.session_id = @@SPID; GO -/*-- -IF(LTRIM(ISNULL(@TestName,'')) = '') ---*/ CREATE PROCEDURE tSQLt.Private_SaveTestNameForSession @TestName NVARCHAR(MAX) From 6670c8e6165cea35d9ddab8dce97a69dceb1892b Mon Sep 17 00:00:00 2001 From: Liz Baron <10554+lizbaron@users.noreply.github.com> Date: Mon, 3 Jan 2022 06:39:07 -0500 Subject: [PATCH 3/7] Made UndoSingleTestDouble private; updated ReleaseNotes.txt --- Build/ReleaseNotes.txt | 3 - Source/BuildOrder.txt | 2 +- Source/Source.ssmssqlproj | 66 +++++++++++-------- ...SQLt.Private_UndoSingleTestDouble.ssp.sql} | 4 +- Tests/Tests.ssmssqlproj | 12 +++- Tests/UndoTestDoublesTests.class.sql | 2 +- 6 files changed, 54 insertions(+), 35 deletions(-) rename Source/{tSQLt.UndoSingleTestDouble.ssp.sql => tSQLt.Private_UndoSingleTestDouble.ssp.sql} (65%) diff --git a/Build/ReleaseNotes.txt b/Build/ReleaseNotes.txt index 3cc464a72..bfb68d7e4 100644 --- a/Build/ReleaseNotes.txt +++ b/Build/ReleaseNotes.txt @@ -28,9 +28,6 @@ MISCELLANEOUS: 4. Standardized error messages 5. For tSQLt contributors: New build target 'tSQLtOnly', which skips Facade validation steps -TODO <-- START HERE -make UndoSingleTestDouble private - --------------------------- Release: V1.0.7950.1808 diff --git a/Source/BuildOrder.txt b/Source/BuildOrder.txt index df1c46aeb..6e0271bb4 100644 --- a/Source/BuildOrder.txt +++ b/Source/BuildOrder.txt @@ -119,6 +119,6 @@ tSQLt.(at)tSQLt_NoTransaction.sfn.sql tSQLt.RemoveExternalAccessKey.ssp.sql tSQLt.InstallExternalAccessKey.ssp.sql tSQLt.Private_InstallationInfo.sfn.sql -tSQLt.UndoSingleTestDouble.ssp.sql +tSQLt.Private_UndoSingleTestDouble.ssp.sql tSQLt.UndoTestDoubles.ssp.sql tSQLt._Footer.sql \ No newline at end of file diff --git a/Source/Source.ssmssqlproj b/Source/Source.ssmssqlproj index 85f3316e9..16b62a88c 100644 --- a/Source/Source.ssmssqlproj +++ b/Source/Source.ssmssqlproj @@ -2,8 +2,7 @@ - - + @@ -20,6 +19,9 @@ ExecutePrepareServer.sql + + + Run_Methods.sql @@ -209,9 +211,15 @@ tSQLt.PrepareServer.ssp.sql + + + tSQLt.Private_AssertNoSideEffects.ssp.sql + + + tSQLt.Private_AssertNoSideEffects_GenerateCommand.sfn.sql @@ -227,6 +235,9 @@ tSQLt.Private_CleanUp.ssp.sql + + + tSQLt.Private_CleanUpCmdHandler.ssp.sql @@ -392,6 +403,9 @@ tSQLt.Private_HostPlatform.svw.sql + + + tSQLt.Private_Init.ssp.sql @@ -442,6 +456,24 @@ tSQLt.Private_NewTestClassList.tbl.sql + + + + + tSQLt.Private_NoTransactionHandleTable.ssp.sql + + + + + + tSQLt.Private_NoTransactionTableAction.view.sql + + + + + + tSQLt.Private_NoTransactionHandleTables.ssp.sql + @@ -502,24 +534,6 @@ tSQLt.Private_ResetNewTestClassList.ssp.sql - - - - - tSQLt.Private_NoTransactionHandleTable.ssp.sql - - - - - - tSQLt.Private_NoTransactionTableAction.view.sql - - - - - - tSQLt.Private_NoTransactionHandleTables.ssp.sql - @@ -580,6 +594,12 @@ tSQLt.Private_SysTypes.svw.sql + + + + + tSQLt.Private_UndoSingleTestDouble.ssp.sql + @@ -712,12 +732,6 @@ tSQLt.Tests.view.sql - - - - - tSQLt.UndoSingleTestDouble.ssp.sql - diff --git a/Source/tSQLt.UndoSingleTestDouble.ssp.sql b/Source/tSQLt.Private_UndoSingleTestDouble.ssp.sql similarity index 65% rename from Source/tSQLt.UndoSingleTestDouble.ssp.sql rename to Source/tSQLt.Private_UndoSingleTestDouble.ssp.sql index 281d8eeac..068aa8f5e 100644 --- a/Source/tSQLt.UndoSingleTestDouble.ssp.sql +++ b/Source/tSQLt.Private_UndoSingleTestDouble.ssp.sql @@ -1,8 +1,8 @@ -IF OBJECT_ID('tSQLt.UndoSingleTestDouble') IS NOT NULL DROP PROCEDURE tSQLt.UndoSingleTestDouble; +IF OBJECT_ID('tSQLt.Private_UndoSingleTestDouble') IS NOT NULL DROP PROCEDURE tSQLt.Private_UndoSingleTestDouble; GO ---Build+ GO -CREATE PROCEDURE tSQLt.UndoSingleTestDouble +CREATE PROCEDURE tSQLt.Private_UndoSingleTestDouble @SchemaName NVARCHAR(MAX), @ObjectName NVARCHAR(MAX), @OriginalName NVARCHAR(MAX) diff --git a/Tests/Tests.ssmssqlproj b/Tests/Tests.ssmssqlproj index 66968e619..a8a5e1d36 100644 --- a/Tests/Tests.ssmssqlproj +++ b/Tests/Tests.ssmssqlproj @@ -2,8 +2,7 @@ - - + @@ -20,6 +19,9 @@ AnnotationHostPlatformTests.class.sql + + + AnnotationNoTransactionTests.class.sql @@ -185,6 +187,9 @@ NewTestClassTests.class.sql + + + Private_AssertNoSideEffectsTests.class.sql @@ -362,6 +367,9 @@ ResultSetFilterTests.class.sql + + + Run_Methods_Tests.class.sql diff --git a/Tests/UndoTestDoublesTests.class.sql b/Tests/UndoTestDoublesTests.class.sql index 8040ac3d3..1c2b8b85d 100644 --- a/Tests/UndoTestDoublesTests.class.sql +++ b/Tests/UndoTestDoublesTests.class.sql @@ -214,7 +214,7 @@ BEGIN EXEC tSQLt.AssertEmptyTable @TableName = 'tSQLt.Private_RenamedObjectLog'; END; GO -CREATE PROCEDURE UndoTestDoublesTests.[test restores a faked stored procedure] +CREATE PROCEDURE UndoTestDoublesTests.[test restores a spied stored procedure] AS BEGIN EXEC ('CREATE PROCEDURE UndoTestDoublesTests.aSimpleSSP @Id INT AS RETURN;'); From 17b9754819e00d299d00fc91bd5d1157ed8fc641 Mon Sep 17 00:00:00 2001 From: mbt1 Date: Mon, 3 Jan 2022 08:29:11 -0500 Subject: [PATCH 4/7] empty commit From f9bea595b6db12f3cc949c1344d862ba137f754a Mon Sep 17 00:00:00 2001 From: mbt1 Date: Tue, 4 Jan 2022 12:21:59 -0500 Subject: [PATCH 5/7] disabled fragile test (due to EXECUTE AS bug in SQL Server) on SQL Server 2008R2 --- .../EnableExternalAccessTests.class.sql | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Tests.EXTERNAL_ACCESS_KEY_EXISTS/EnableExternalAccessTests.class.sql b/Tests.EXTERNAL_ACCESS_KEY_EXISTS/EnableExternalAccessTests.class.sql index bbb974000..cc5aab4e9 100644 --- a/Tests.EXTERNAL_ACCESS_KEY_EXISTS/EnableExternalAccessTests.class.sql +++ b/Tests.EXTERNAL_ACCESS_KEY_EXISTS/EnableExternalAccessTests.class.sql @@ -129,6 +129,8 @@ BEGIN EXEC tSQLt.AssertLike @ExpectedPattern = 'The attempt to disable tSQLt features requiring EXTERNAL_ACCESS failed: %tSQLtCLR%', @Actual = @Actual; END; GO +--[@tSQLt:MinSqlMajorVersion](11) +-- There's a bug in SQL Server 2008R2 that makes the EXECUTE AS statement fail randomly. Disabling it on that version for now. CREATE PROCEDURE EnableExternalAccessTests.[test tSQLt.EnableExternalAccess returns -1, if @try = 1 and setting fails] AS BEGIN From f1ab1333d3a562f8dac61554d66f2770329df5b0 Mon Sep 17 00:00:00 2001 From: mbt1 Date: Tue, 4 Jan 2022 12:22:50 -0500 Subject: [PATCH 6/7] no change From 80672ef866e0792077bcb11e804495e24569a739 Mon Sep 17 00:00:00 2001 From: mbt1 Date: Tue, 4 Jan 2022 12:23:51 -0500 Subject: [PATCH 7/7] no change