Skip to content

Commit 6bae618

Browse files
committed
better TDD and refactored tests. Build still works (possibly).
1 parent bd548fe commit 6bae618

File tree

2 files changed

+81
-98
lines changed

2 files changed

+81
-98
lines changed

Tests/FakeTableTests.class.sql

Lines changed: 9 additions & 98 deletions
Original file line numberDiff line numberDiff line change
@@ -995,7 +995,6 @@ BEGIN
995995

996996
END;
997997
GO
998-
999998
CREATE PROC FakeTableTests.[test FakeTable works with two parameters, if they are quoted]
1000999
AS
10011000
BEGIN
@@ -1011,113 +1010,25 @@ BEGIN
10111010

10121011
END;
10131012
GO
1014-
CREATE PROC FakeTableTests.[test new Faked Table is marked as tSQLt.IsTempObject]
1015-
AS
1016-
BEGIN
1017-
CREATE TABLE FakeTableTests.TempTable1(i INT NOT NULL);
1018-
1019-
EXEC tSQLt.FakeTable 'FakeTableTests.TempTable1';
1020-
1021-
SELECT name, value
1022-
INTO #Actual
1023-
FROM sys.extended_properties
1024-
WHERE class_desc = 'OBJECT_OR_COLUMN'
1025-
AND major_id = OBJECT_ID('FakeTableTests.TempTable1')
1026-
AND name = 'tSQLt.IsTempObject';
1027-
1028-
SELECT TOP(0) A.* INTO #Expected FROM #Actual A RIGHT JOIN #Actual X ON 1=0;
1029-
1030-
INSERT INTO #Expected VALUES('tSQLt.IsTempObject', 1);
1031-
1032-
EXEC tSQLt.AssertEqualsTable '#Expected','#Actual';
1033-
END;
1034-
GO
1035-
CREATE PROC FakeTableTests.[test new Faked Table is marked with tSQLt.Private_TestDouble_OrgObjectName]
1013+
CREATE PROC FakeTableTests.[test FakeTable calls tSQLt.Private_MarktSQLtTempObject on new object]
10361014
AS
10371015
BEGIN
10381016
CREATE TABLE FakeTableTests.TempTable1(i INT NOT NULL);
10391017
DECLARE @OriginalObjectId INT = OBJECT_ID('FakeTableTests.TempTable1');
1018+
EXEC tSQLt.SpyProcedure @ProcedureName = 'tSQLt.Private_MarktSQLtTempObject';
1019+
TRUNCATE TABLE tSQLt.Private_MarktSQLtTempObject_SpyProcedureLog;--Quirkiness of testing the framework that you use to run the test
10401020

1041-
EXEC tSQLt.FakeTable 'FakeTableTests.TempTable1';
1042-
1043-
SELECT name, value
1044-
INTO #Actual
1045-
FROM sys.extended_properties
1046-
WHERE class_desc = 'OBJECT_OR_COLUMN'
1047-
AND major_id = OBJECT_ID('FakeTableTests.TempTable1')
1048-
AND name = 'tSQLt.Private_TestDouble_OrgObjectName';
1049-
1050-
SELECT TOP(0) A.* INTO #Expected FROM #Actual A RIGHT JOIN #Actual X ON 1=0;
1051-
1052-
INSERT INTO #Expected VALUES('tSQLt.Private_TestDouble_OrgObjectName', OBJECT_NAME(@OriginalObjectId));
1053-
1054-
EXEC tSQLt.AssertEqualsTable '#Expected','#Actual';
1055-
END;
1056-
GO
1057-
CREATE PROC FakeTableTests.[test new Faked View is marked as tSQLt.IsTempObject]
1058-
AS
1059-
BEGIN
1060-
EXEC('CREATE VIEW FakeTableTests.TempView1 AS SELECT 1 X;');
1061-
1062-
EXEC tSQLt.FakeTable 'FakeTableTests.TempView1';
1063-
1064-
SELECT name, value
1065-
INTO #Actual
1066-
FROM sys.extended_properties
1067-
WHERE class_desc = 'OBJECT_OR_COLUMN'
1068-
AND major_id = OBJECT_ID('FakeTableTests.TempView1')
1069-
AND name = 'tSQLt.IsTempObject';
1021+
EXEC tSQLt.FakeTable '[FakeTableTests]','[TempTable1]';
10701022

1071-
SELECT TOP(0) A.* INTO #Expected FROM #Actual A RIGHT JOIN #Actual X ON 1=0;
1023+
SELECT ObjectName, ObjectType, NewNameOfOriginalObject
1024+
INTO #Actual
1025+
FROM tSQLt.Private_MarktSQLtTempObject_SpyProcedureLog;
10721026

1073-
INSERT INTO #Expected VALUES('tSQLt.IsTempObject', 1);
1074-
1075-
EXEC tSQLt.AssertEqualsTable '#Expected','#Actual';
1076-
END;
1077-
GO
1078-
CREATE PROC FakeTableTests.[test new Faked Synonym is marked as tSQLt.IsTempObject]
1079-
AS
1080-
BEGIN
1081-
CREATE TABLE FakeTableTests.TempTable1(i INT NOT NULL);
1082-
CREATE SYNONYM FakeTableTests.TempSyn1 FOR FakeTableTests.TempTable1;
1083-
1084-
EXEC tSQLt.FakeTable 'FakeTableTests.TempSyn1';
1085-
1086-
SELECT name, value
1087-
INTO #Actual
1088-
FROM sys.extended_properties
1089-
WHERE class_desc = 'OBJECT_OR_COLUMN'
1090-
AND major_id = OBJECT_ID('FakeTableTests.TempSyn1')
1091-
AND name = 'tSQLt.IsTempObject';
1092-
10931027
SELECT TOP(0) A.* INTO #Expected FROM #Actual A RIGHT JOIN #Actual X ON 1=0;
1094-
1095-
INSERT INTO #Expected VALUES('tSQLt.IsTempObject', 1);
1028+
INSERT INTO #Expected
1029+
VALUES('[FakeTableTests].[TempTable1]', N'TABLE', OBJECT_NAME(@OriginalObjectId));
10961030

10971031
EXEC tSQLt.AssertEqualsTable '#Expected','#Actual';
1098-
END;
1099-
GO
1100-
CREATE PROC FakeTableTests.[test new Faked Synonym is marked with tSQLt.Private_TestDouble_OrgObjectName pointing to the target object]
1101-
AS
1102-
BEGIN
1103-
CREATE TABLE FakeTableTests.TempTable1(i INT NOT NULL);
1104-
CREATE SYNONYM FakeTableTests.TempSyn1 FOR FakeTableTests.TempTable1;
1105-
1106-
DECLARE @OriginalObjectId INT = OBJECT_ID('FakeTableTests.TempSyn1');
11071032

1108-
EXEC tSQLt.FakeTable 'FakeTableTests.TempSyn1';
1109-
1110-
SELECT name, value
1111-
INTO #Actual
1112-
FROM sys.extended_properties
1113-
WHERE class_desc = 'OBJECT_OR_COLUMN'
1114-
AND major_id = OBJECT_ID('FakeTableTests.TempSyn1')
1115-
AND name = 'tSQLt.Private_TestDouble_OrgObjectName';
1116-
1117-
SELECT TOP(0) A.* INTO #Expected FROM #Actual A RIGHT JOIN #Actual X ON 1=0;
1118-
1119-
INSERT INTO #Expected VALUES('tSQLt.Private_TestDouble_OrgObjectName', OBJECT_NAME(@OriginalObjectId));
1120-
1121-
EXEC tSQLt.AssertEqualsTable '#Expected','#Actual';
11221033
END;
11231034
GO
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
EXEC tSQLt.NewTestClass 'Private_MarktSQLtTempObjectTests';
2+
GO
3+
CREATE PROCEDURE Private_MarktSQLtTempObjectTests.[assert creates two extended properties on object]
4+
@ObjectName NVARCHAR(MAX),
5+
@ObjectType NVARCHAR(MAX)
6+
AS
7+
BEGIN
8+
EXEC tSQLt.Private_MarktSQLtTempObject
9+
@ObjectName = @ObjectName,
10+
@ObjectType = @ObjectType,
11+
@NewNameOfOriginalObject = 'ARandomString';
12+
13+
SELECT name, CAST(value AS NVARCHAR(MAX)) value
14+
INTO #Actual
15+
FROM sys.extended_properties
16+
WHERE class_desc = 'OBJECT_OR_COLUMN'
17+
AND major_id = OBJECT_ID(@ObjectName)
18+
AND name IN ('tSQLt.IsTempObject', 'tSQLt.Private_TestDouble_OrgObjectName')
19+
20+
SELECT TOP(0) A.* INTO #Expected FROM #Actual A RIGHT JOIN #Actual X ON 1=0;
21+
22+
INSERT INTO #Expected VALUES('tSQLt.IsTempObject', '1'),
23+
('tSQLt.Private_TestDouble_OrgObjectName','ARandomString');
24+
25+
EXEC tSQLt.AssertEqualsTable '#Expected','#Actual';
26+
END;
27+
GO
28+
CREATE PROCEDURE Private_MarktSQLtTempObjectTests.[test can mark a table]
29+
AS
30+
BEGIN
31+
CREATE TABLE Private_MarktSQLtTempObjectTests.TempTable1(i INT NOT NULL);
32+
EXEC Private_MarktSQLtTempObjectTests.[assert creates two extended properties on object]
33+
@ObjectName = 'Private_MarktSQLtTempObjectTests.TempTable1',
34+
@ObjectType = N'TABLE';
35+
END;
36+
GO
37+
CREATE PROCEDURE Private_MarktSQLtTempObjectTests.[test can mark a stored procedure]
38+
AS
39+
BEGIN
40+
EXEC('CREATE PROCEDURE Private_MarktSQLtTempObjectTests.TempProcedure1 AS RETURN;');
41+
EXEC Private_MarktSQLtTempObjectTests.[assert creates two extended properties on object]
42+
@ObjectName = 'Private_MarktSQLtTempObjectTests.TempProcedure1',
43+
@ObjectType = N'PROCEDURE';
44+
END;
45+
GO
46+
CREATE PROCEDURE Private_MarktSQLtTempObjectTests.[test can mark a TV function]
47+
AS
48+
BEGIN
49+
EXEC('CREATE FUNCTION Private_MarktSQLtTempObjectTests.TempTVFunction1() RETURNS @X TABLE (i INT) AS BEGIN RETURN; END;');
50+
EXEC Private_MarktSQLtTempObjectTests.[assert creates two extended properties on object]
51+
@ObjectName = 'Private_MarktSQLtTempObjectTests.TempTVFunction1',
52+
@ObjectType = N'FUNCTION';
53+
END;
54+
GO
55+
CREATE PROCEDURE Private_MarktSQLtTempObjectTests.[test can mark a ITV function]
56+
AS
57+
BEGIN
58+
EXEC('CREATE FUNCTION Private_MarktSQLtTempObjectTests.TempITVFunction1() RETURNS TABLE AS RETURN SELECT 1 X;');
59+
EXEC Private_MarktSQLtTempObjectTests.[assert creates two extended properties on object]
60+
@ObjectName = 'Private_MarktSQLtTempObjectTests.TempITVFunction1',
61+
@ObjectType = N'FUNCTION';
62+
END;
63+
GO
64+
CREATE PROCEDURE Private_MarktSQLtTempObjectTests.[test can mark a SV function]
65+
AS
66+
BEGIN
67+
EXEC('CREATE FUNCTION Private_MarktSQLtTempObjectTests.TempSVFunction1() RETURNS INT AS BEGIN RETURN NULL; END;');
68+
EXEC Private_MarktSQLtTempObjectTests.[assert creates two extended properties on object]
69+
@ObjectName = 'Private_MarktSQLtTempObjectTests.TempSVFunction1',
70+
@ObjectType = N'FUNCTION';
71+
END;
72+
GO

0 commit comments

Comments
 (0)