Skip to content

Commit fe3ba03

Browse files
committed
Do we make a snapshot or not for FakeFunctions with FakeDataSources? Tests required.
1 parent 9d4036f commit fe3ba03

2 files changed

Lines changed: 29 additions & 6 deletions

File tree

Source/Source.ssmssqlproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -420,6 +420,12 @@
420420
<AssociatedConnUserName />
421421
<FullPath>tSQLt.Private_NullCellTable.tbl.sql</FullPath>
422422
</FileNode>
423+
<FileNode Name="tSQLt.Private_PrepareFakeFunctionOutputTable.ssp.sql">
424+
<AssociatedConnectionMoniker />
425+
<AssociatedConnSrvName />
426+
<AssociatedConnUserName />
427+
<FullPath>tSQLt.Private_PrepareFakeFunctionOutputTable.ssp.sql</FullPath>
428+
</FileNode>
423429
<FileNode Name="tSQLt.Private_ProcessTestAnnotations.ssp.sql">
424430
<AssociatedConnectionMoniker />
425431
<AssociatedConnSrvName />

Tests/FakeFunctionTests.class.sql

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -647,14 +647,31 @@ CREATE PROCEDURE FakeFunctionTests.[test Private_PrepareFakeFunctionOutputTable
647647
AS
648648
BEGIN
649649

650-
DECLARE @NewTable sysname;
650+
DECLARE @NewTable NVARCHAR(MAX);
651651

652-
CREATE TABLE #Expected (a int);
653-
INSERT INTO #Expected VALUES(1);
654-
655-
EXEC tSQLt.Private_PrepareFakeFunctionOutputTable 'SELECT 1 AS a', @NewTable OUTPUT;
652+
EXEC tSQLt.Private_PrepareFakeFunctionOutputTable 'SELECT 1013 AS a', @NewTable OUTPUT;
656653

657-
EXEC tSQLt.AssertEqualsTable '#Expected', @NewTable;
654+
EXEC('SELECT TOP(0)A.* INTO FakeFunctionTests.Expected FROM '+@NewTable+' A RIGHT JOIN '+@NewTable+' ON 0=1;');
655+
INSERT INTO FakeFunctionTests.Expected VALUES(1013);
656+
657+
EXEC tSQLt.AssertEqualsTable 'FakeFunctionTests.Expected', @NewTable;
658+
END;
659+
GO
660+
CREATE PROCEDURE FakeFunctionTests.[test Private_PrepareFakeFunctionOutputTable creates snapshot table in passed in schema]
661+
AS
662+
BEGIN
663+
DECLARE @NewTable NVARCHAR(MAX);
664+
665+
EXEC('CREATE SCHEMA [a random schema];');
666+
667+
EXEC tSQLt.Private_PrepareFakeFunctionOutputTable @FakeDataSource = 'SELECT 1013 AS a',@SchemaName = 'a random schema', @NewTableName = @NewTable OUT;
668+
669+
SELECT SCHEMA_NAME(O.schema_id) SchemaName INTO #Actual FROM sys.objects O WHERE O.object_id = OBJECT_ID(@NewTable);
670+
671+
SELECT TOP(0) A.* INTO #Expected FROM #Actual A RIGHT JOIN #Actual X ON 1=0;
672+
INSERT INTO #Expected
673+
VALUES('a random schema');
658674

675+
EXEC tSQLt.AssertEqualsTable #Expected, #Actual
659676
END;
660677
GO

0 commit comments

Comments
 (0)