Skip to content

Commit 6b8f9d1

Browse files
committed
Writing more tests and many of them persist in failing.
1 parent 51ac0b1 commit 6b8f9d1

7 files changed

Lines changed: 126 additions & 62 deletions

Source/Source.ssmssqlproj

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,9 @@
229229
<FullPath>tSQLt.Private_CleanUp.ssp.sql</FullPath>
230230
</FileNode>
231231
<FileNode Name="tSQLt.Private_CleanUpCmdHandler.ssp.sql">
232+
<AssociatedConnectionMoniker />
233+
<AssociatedConnSrvName />
234+
<AssociatedConnUserName />
232235
<FullPath>tSQLt.Private_CleanUpCmdHandler.ssp.sql</FullPath>
233236
</FileNode>
234237
<FileNode Name="tSQLt.Private_CompareTables.ssp.sql">
@@ -376,6 +379,9 @@
376379
<FullPath>tSQLt.Private_GetUniqueConstraintDefinition.sfn.sql</FullPath>
377380
</FileNode>
378381
<FileNode Name="tSQLt.Private_HandleMessageAndResult.sfn.sql">
382+
<AssociatedConnectionMoniker />
383+
<AssociatedConnSrvName />
384+
<AssociatedConnUserName />
379385
<FullPath>tSQLt.Private_HandleMessageAndResult.sfn.sql</FullPath>
380386
</FileNode>
381387
<FileNode Name="tSQLt.Private_HostPlatform.stub.sql">
@@ -511,6 +517,9 @@
511517
<FullPath>tSQLt.Private_NoTransactionHandleTable.ssp.sql</FullPath>
512518
</FileNode>
513519
<FileNode Name="tSQLt.Private_NoTransactionTableAction.view.sql">
520+
<AssociatedConnectionMoniker />
521+
<AssociatedConnSrvName />
522+
<AssociatedConnUserName />
514523
<FullPath>tSQLt.Private_NoTransactionTableAction.view.sql</FullPath>
515524
</FileNode>
516525
<FileNode Name="tSQLt.Private_NoTransactionHandleTables.ssp.sql">
@@ -520,6 +529,9 @@
520529
<FullPath>tSQLt.Private_NoTransactionHandleTables.ssp.sql</FullPath>
521530
</FileNode>
522531
<FileNode Name="tSQLt.Private_Results.view.sql">
532+
<AssociatedConnectionMoniker />
533+
<AssociatedConnSrvName />
534+
<AssociatedConnUserName />
523535
<FullPath>tSQLt.Private_Results.view.sql</FullPath>
524536
</FileNode>
525537
<FileNode Name="tSQLt.Private_ScriptIndex.sfn.sql">

Source/tSQLt.Private_HandleMessageAndResult.sfn.sql

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,10 @@ CREATE FUNCTION tSQLt.Private_HandleMessageAndResult (
1111
RETURNS TABLE
1212
AS
1313
RETURN
14-
SELECT CASE WHEN @PrevMessage NOT LIKE '%[^ '+CHAR(9)+']%' THEN '<empty>' ELSE ISNULL(@PrevMessage,'<NULL>') END+' [Result: '+
15-
CASE WHEN @PrevResult NOT LIKE '%[^ '+CHAR(9)+']%' THEN '<empty>' ELSE ISNULL(@PrevResult,'<NULL>') END+'] || '+
14+
SELECT CASE WHEN @PrevMessage NOT LIKE '%[^ '+CHAR(9)+']%' AND @PrevResult = 'Success' THEN ''
15+
ELSE CASE WHEN @PrevMessage NOT LIKE '%[^ '+CHAR(9)+']%' THEN '<empty>' ELSE ISNULL(@PrevMessage,'<NULL>') END+' [Result: '+
16+
CASE WHEN @PrevResult NOT LIKE '%[^ '+CHAR(9)+']%' THEN '<empty>' ELSE ISNULL(@PrevResult,'<NULL>') END+'] || '
17+
END+
1618
CASE WHEN @NewMessage NOT LIKE '%[^ '+CHAR(9)+']%' THEN '<empty>' ELSE ISNULL(@NewMessage,'<NULL>') END Message,
1719
(SELECT TOP(1) Result FROM tSQLt.Private_Results WHERE Result IN (@PrevResult, @NewResult) ORDER BY Severity DESC) Result;
1820
GO

Tests/AnnotationNoTransactionTests.class.sql

Lines changed: 3 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -797,6 +797,8 @@ AS
797797
BEGIN
798798
EXEC tSQLt.FakeFunction @FunctionName = 'tSQLt.Private_GetFormattedErrorInfo', @FakeFunctionName = 'AnnotationNoTransactionTests.[return 42134213 if correct error]';
799799
EXEC tSQLt.FakeFunction @FunctionName = 'tSQLt.Private_HandleMessageAndResult', @FakeFunctionName = 'AnnotationNoTransactionTests.[return 42424242+@NewMessage, @NewResult]';
800+
EXEC tSQLt.SpyProcedure @ProcedureName = 'tSQLt.Private_CleanUp';
801+
EXEC tSQLt.SpyProcedure @ProcedureName = 'tSQLt.Private_NoTransactionHandleTables';
800802
EXEC tSQLt.NewTestClass 'MyInnerTests'
801803
EXEC('
802804
CREATE PROCEDURE [MyInnerTests].[CleanUp]
@@ -818,72 +820,13 @@ BEGIN
818820

819821
SELECT TR.Msg, TR.Result INTO #Actual FROM tSQLt.TestResult AS TR;
820822
SELECT TOP(0) A.* INTO #Expected FROM #Actual A RIGHT JOIN #Actual X ON 1=0;
821-
INSERT INTO #Expected VALUES('42424242:42134213','Error');
823+
INSERT INTO #Expected VALUES('42424242:Error during clean up: (42134213)','Error');
822824

823825
EXEC tSQLt.AssertEqualsTable '#Expected','#Actual';
824826

825827
END;
826828
GO
827-
/*-----------------------------------------------------------------------------------------------*/
828-
GO
829-
CREATE PROCEDURE AnnotationNoTransactionTests.[test Schema-CleanUp error causes an appropriate message to be written to the tSQLt.TestResult if there is a different error]
830-
AS
831-
BEGIN
832-
EXEC tSQLt.NewTestClass 'MyOtherInnerTests'
833-
EXEC('
834-
CREATE PROCEDURE [MyOtherInnerTests].[CleanUp]
835-
AS
836-
BEGIN
837-
/*wasting lines...*/
838-
RAISERROR(''This is another error ;)'',15,12);
839-
END;
840-
');
841-
EXEC('
842-
--[@'+'tSQLt:NoTransaction](DEFAULT)
843-
CREATE PROCEDURE [MyOtherInnerTests].[test1]
844-
AS
845-
BEGIN
846-
RETURN;
847-
END;
848-
');
849-
850-
EXEC tSQLt.Run 'MyOtherInnerTests.[test1]', @TestResultFormatter = 'tSQLt.NullTestResultFormatter';
851-
852-
DECLARE @FriendlyMsg NVARCHAR(MAX) = (SELECT TR.Msg FROM tSQLt.TestResult AS TR);
853-
854-
EXEC tSQLt.AssertLike @ExpectedPattern = 'Error during clean up: (%This is another error ;)%)', @Actual = @FriendlyMsg;
855-
END;
856-
GO
857-
/*-----------------------------------------------------------------------------------------------*/
858-
GO
859-
CREATE PROCEDURE AnnotationNoTransactionTests.[test Schema-CleanUp error causes an appropriate message to be written to tSQLt.TestResult even if ERROR_PROCEDURE is null]
860-
AS
861-
BEGIN
862-
EXEC tSQLt.NewTestClass 'MyOtherInnerTests'
863-
EXEC('
864-
CREATE PROCEDURE [MyOtherInnerTests].[CleanUp]
865-
AS
866-
BEGIN
867-
/*wasting lines...*/
868-
EXEC(''RAISERROR(''''This is another error ;)'''',15,12)'');
869-
END;
870-
');
871-
EXEC('
872-
--[@'+'tSQLt:NoTransaction](DEFAULT)
873-
CREATE PROCEDURE [MyOtherInnerTests].[test1]
874-
AS
875-
BEGIN
876-
RETURN;
877-
END;
878-
');
879829

880-
EXEC tSQLt.Run 'MyOtherInnerTests.[test1]', @TestResultFormatter = 'tSQLt.NullTestResultFormatter';
881-
882-
DECLARE @FriendlyMsg NVARCHAR(MAX) = (SELECT TR.Msg FROM tSQLt.TestResult AS TR);
883-
884-
EXEC tSQLt.AssertLike @ExpectedPattern = 'Error during clean up: (%This is another error ;)%Procedure: <NULL>%)', @Actual = @FriendlyMsg;
885-
END;
886-
GO
887830
/*-----------------------------------------------------------------------------------------------*/
888831
GO
889832
CREATE PROCEDURE AnnotationNoTransactionTests.[test appends message to any test error if Schema-CleanUp errors]
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
EXEC tSQLt.NewTestClass 'Private_CleanUpCmdHandlerTests';
2+
GO
3+
/* What is
4+
*/
5+
CREATE PROCEDURE Private_CleanUpCmdHandlerTests.[test TODO]
6+
AS
7+
BEGIN
8+
EXEC tSQLt.Fail 'TODO';
9+
END;
10+
GO
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
EXEC tSQLt.NewTestClass 'Private_GetFormattedErrorInfoTests';
2+
GO
3+
CREATE PROCEDURE Private_GetFormattedErrorInfoTests.[test does not return null]
4+
AS
5+
BEGIN
6+
DECLARE @FormattedError NVARCHAR(MAX) = (SELECT FormattedError FROM tSQLt.Private_GetFormattedErrorInfo());
7+
8+
EXEC tSQLt.AssertEqualsString @Expected = 'Message: <NULL> | Procedure: <NULL> | Severity, State: <NULL>, <NULL> | Number: <NULL>', @Actual = @FormattedError;
9+
END;
10+
GO
11+
/*-----------------------------------------------------------------------------------------------*/
12+
GO
13+
CREATE PROCEDURE Private_GetFormattedErrorInfoTests.[test returns the ERROR information formatted correctly]
14+
AS
15+
BEGIN
16+
DECLARE @FormattedError NVARCHAR(MAX);
17+
18+
BEGIN TRY
19+
EXEC ('RAISERROR(''my test message'', 15, 11);');
20+
END TRY
21+
BEGIN CATCH
22+
SET @FormattedError = (SELECT FormattedError FROM tSQLt.Private_GetFormattedErrorInfo());
23+
END CATCH;
24+
25+
EXEC tSQLt.AssertEqualsString @Expected = 'Message: my test message | Procedure: <NULL> (1) | Severity, State: 15, 11 | Number: 50000', @Actual = @FormattedError;
26+
END
27+
GO
28+
/*-----------------------------------------------------------------------------------------------*/
29+
GO
30+
CREATE PROCEDURE Private_GetFormattedErrorInfoTests.[test returns the correct ERROR number]
31+
AS
32+
BEGIN
33+
DECLARE @FormattedError NVARCHAR(MAX);
34+
35+
BEGIN TRY
36+
EXEC ('RAISERROR (13042,14,13);');
37+
END TRY
38+
BEGIN CATCH
39+
SET @FormattedError = (SELECT FormattedError FROM tSQLt.Private_GetFormattedErrorInfo());
40+
END CATCH;
41+
42+
EXEC tSQLt.AssertLike @ExpectedPattern = '%| Number: 13042', @Actual = @FormattedError;
43+
END
44+
GO
45+
/*-----------------------------------------------------------------------------------------------*/
46+
GO
47+
CREATE PROCEDURE Private_GetFormattedErrorInfoTests.[test returns the correct ERROR procedure name and line number]
48+
AS
49+
BEGIN
50+
DECLARE @FormattedError NVARCHAR(MAX);
51+
52+
BEGIN TRY
53+
EXEC ('/*Line 1*/CREATE PROCEDURE #myInnerError
54+
/*Line 2*/AS
55+
/*Line 3*/BEGIN
56+
/*Line 4*/ RAISERROR (13042,14,13);
57+
/*Line 5*/END;');
58+
EXEC #myInnerError;
59+
END TRY
60+
BEGIN CATCH
61+
SET @FormattedError = (SELECT FormattedError FROM tSQLt.Private_GetFormattedErrorInfo());
62+
END CATCH;
63+
64+
EXEC tSQLt.AssertLike @ExpectedPattern = '%| Procedure: #myInnerError (4) |%', @Actual = @FormattedError;
65+
END
66+
GO
67+
/*-----------------------------------------------------------------------------------------------*/
68+
GO

Tests/Private_HandleMessageAndResultTests.class.sql

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,17 @@ GO
136136
/*-----------------------------------------------------------------------------------------------*/
137137
GO
138138

139+
CREATE PROCEDURE Private_HandleMessageAndResultTests.[test returns only the @NewMessage if @PrevMessage is empty and @PrevResult is Success]
140+
AS
141+
BEGIN
142+
DECLARE @Message NVARCHAR(MAX);
143+
SET @Message = (SELECT Message FROM tSQLt.Private_HandleMessageAndResult ('', 'Success', 'this is the new message', DEFAULT));
144+
EXEC tSQLt.AssertEqualsString @Expected = 'this is the new message', @Actual = @Message;
145+
END;
146+
GO
147+
/*-----------------------------------------------------------------------------------------------*/
148+
GO
149+
139150
CREATE PROCEDURE Private_HandleMessageAndResultTests.[test returns ??? if @PrevResult is NULL]
140151
AS
141152
BEGIN

Tests/Tests.ssmssqlproj

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
<FullPath>AnnotationHostPlatformTests.class.sql</FullPath>
2020
</FileNode>
2121
<FileNode Name="AnnotationNoTransactionTests.class.sql">
22+
<AssociatedConnectionMoniker />
23+
<AssociatedConnSrvName />
24+
<AssociatedConnUserName />
2225
<FullPath>AnnotationNoTransactionTests.class.sql</FullPath>
2326
</FileNode>
2427
<FileNode Name="AnnotationSkipTestTests.class.sql">
@@ -183,6 +186,12 @@
183186
<AssociatedConnUserName />
184187
<FullPath>NewTestClassTests.class.sql</FullPath>
185188
</FileNode>
189+
<FileNode Name="Private_CleanUpCmdHandlerTests.class.sql">
190+
<AssociatedConnectionMoniker />
191+
<AssociatedConnSrvName />
192+
<AssociatedConnUserName />
193+
<FullPath>Private_CleanUpCmdHandlerTests.class.sql</FullPath>
194+
</FileNode>
186195
<FileNode Name="Private_CleanUpTests.class.sql">
187196
<AssociatedConnectionMoniker />
188197
<AssociatedConnSrvName />
@@ -201,6 +210,12 @@
201210
<AssociatedConnUserName />
202211
<FullPath>Private_GetAnnotationListTests.class.sql</FullPath>
203212
</FileNode>
213+
<FileNode Name="Private_GetFormattedErrorInfoTests.class.sql">
214+
<AssociatedConnectionMoniker />
215+
<AssociatedConnSrvName />
216+
<AssociatedConnUserName />
217+
<FullPath>Private_GetFormattedErrorInfoTests.class.sql</FullPath>
218+
</FileNode>
204219
<FileNode Name="Private_GetFullTypeNameTests.class.sql">
205220
<AssociatedConnectionMoniker />
206221
<AssociatedConnSrvName />
@@ -214,6 +229,9 @@
214229
<FullPath>Private_GetSQLProductMajorVersionTests.class.sql</FullPath>
215230
</FileNode>
216231
<FileNode Name="Private_HandleMessageAndResultTests.class.sql">
232+
<AssociatedConnectionMoniker />
233+
<AssociatedConnSrvName />
234+
<AssociatedConnUserName />
217235
<FullPath>Private_HandleMessageAndResultTests.class.sql</FullPath>
218236
</FileNode>
219237
<FileNode Name="Private_InitTests.class.sql">

0 commit comments

Comments
 (0)