diff --git a/readme.md b/readme.md index b391a8ef..82c38c75 100644 --- a/readme.md +++ b/readme.md @@ -119,13 +119,14 @@ Will result in the following verified file: Type: ReaderExecutedAsync, HasTransaction: false, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = N'Title' +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = N'Title' } } ``` -snippet source | anchor +snippet source | anchor @@ -205,23 +206,26 @@ await Verify(); @p1 (String): Title }, Text: -SET IMPLICIT_TRANSACTIONS OFF; -SET NOCOUNT ON; -INSERT INTO [Companies] ([Id], [Name]) -VALUES (@p0, @p1); +set implicit_transactions off; + +set nocount on; + +insert into [Companies] ([Id], [Name]) +values (@p0, @p1) }, { Type: ReaderExecutedAsync, HasTransaction: false, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = N'Title' +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = N'Title' } ] } ``` -snippet source | anchor +snippet source | anchor @@ -262,13 +266,14 @@ await Verify(); Type: ReaderExecutedAsync, HasTransaction: false, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = N'Title' +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = N'Title' } } ``` -snippet source | anchor +snippet source | anchor diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 03c5aef6..8741664f 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -2,7 +2,7 @@ CS1591;CS0649;CS8632;EF1001 - 13.0.0 + 13.1.0 preview 1.0.0 EntityFramework, Verify diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index e69784bd..da54846c 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -15,6 +15,7 @@ + diff --git a/src/Verify.EntityFramework.Tests/CoreTests.MultiDbContexts.verified.txt b/src/Verify.EntityFramework.Tests/CoreTests.MultiDbContexts.verified.txt index 4f8364e5..0b281706 100644 --- a/src/Verify.EntityFramework.Tests/CoreTests.MultiDbContexts.verified.txt +++ b/src/Verify.EntityFramework.Tests/CoreTests.MultiDbContexts.verified.txt @@ -8,18 +8,21 @@ @p1 (String): Title }, Text: -SET IMPLICIT_TRANSACTIONS OFF; -SET NOCOUNT ON; -INSERT INTO [Companies] ([Id], [Name]) -VALUES (@p0, @p1); +set implicit_transactions off; + +set nocount on; + +insert into [Companies] ([Id], [Name]) +values (@p0, @p1) }, { Type: ReaderExecutedAsync, HasTransaction: false, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = N'Title' +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = N'Title' } ] } \ No newline at end of file diff --git a/src/Verify.EntityFramework.Tests/CoreTests.MultiRecording.verified.txt b/src/Verify.EntityFramework.Tests/CoreTests.MultiRecording.verified.txt index 82e66305..38106547 100644 --- a/src/Verify.EntityFramework.Tests/CoreTests.MultiRecording.verified.txt +++ b/src/Verify.EntityFramework.Tests/CoreTests.MultiRecording.verified.txt @@ -8,10 +8,12 @@ @p1 (String): Title }, Text: -SET IMPLICIT_TRANSACTIONS OFF; -SET NOCOUNT ON; -INSERT INTO [Companies] ([Id], [Name]) -VALUES (@p0, @p1); +set implicit_transactions off; + +set nocount on; + +insert into [Companies] ([Id], [Name]) +values (@p0, @p1) }, { Type: ReaderExecutedAsync, @@ -20,9 +22,10 @@ VALUES (@p0, @p1); @__s_0 (String?): 0 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -31,9 +34,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 1 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -42,9 +46,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 2 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -53,9 +58,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 3 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -64,9 +70,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 4 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -75,9 +82,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 5 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -86,9 +94,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 6 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -97,9 +106,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 7 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -108,9 +118,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 8 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -119,9 +130,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 9 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -130,9 +142,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 10 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -141,9 +154,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 11 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -152,9 +166,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 12 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -163,9 +178,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 13 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -174,9 +190,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 14 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -185,9 +202,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 15 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -196,9 +214,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 16 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -207,9 +226,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 17 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -218,9 +238,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 18 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -229,9 +250,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 19 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -240,9 +262,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 20 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -251,9 +274,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 21 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -262,9 +286,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 22 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -273,9 +298,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 23 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -284,9 +310,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 24 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -295,9 +322,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 25 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -306,9 +334,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 26 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -317,9 +346,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 27 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -328,9 +358,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 28 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -339,9 +370,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 29 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -350,9 +382,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 30 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -361,9 +394,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 31 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -372,9 +406,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 32 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -383,9 +418,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 33 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -394,9 +430,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 34 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -405,9 +442,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 35 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -416,9 +454,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 36 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -427,9 +466,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 37 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -438,9 +478,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 38 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -449,9 +490,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 39 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -460,9 +502,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 40 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -471,9 +514,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 41 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -482,9 +526,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 42 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -493,9 +538,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 43 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -504,9 +550,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 44 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -515,9 +562,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 45 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -526,9 +574,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 46 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -537,9 +586,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 47 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -548,9 +598,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 48 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -559,9 +610,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 49 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -570,9 +622,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 50 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -581,9 +634,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 51 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -592,9 +646,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 52 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -603,9 +658,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 53 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -614,9 +670,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 54 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -625,9 +682,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 55 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -636,9 +694,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 56 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -647,9 +706,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 57 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -658,9 +718,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 58 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -669,9 +730,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 59 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -680,9 +742,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 60 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -691,9 +754,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 61 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -702,9 +766,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 62 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -713,9 +778,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 63 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -724,9 +790,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 64 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -735,9 +802,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 65 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -746,9 +814,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 66 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -757,9 +826,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 67 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -768,9 +838,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 68 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -779,9 +850,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 69 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -790,9 +862,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 70 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -801,9 +874,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 71 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -812,9 +886,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 72 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -823,9 +898,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 73 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -834,9 +910,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 74 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -845,9 +922,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 75 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -856,9 +934,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 76 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -867,9 +946,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 77 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -878,9 +958,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 78 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -889,9 +970,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 79 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -900,9 +982,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 80 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -911,9 +994,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 81 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -922,9 +1006,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 82 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -933,9 +1018,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 83 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -944,9 +1030,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 84 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -955,9 +1042,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 85 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -966,9 +1054,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 86 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -977,9 +1066,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 87 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -988,9 +1078,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 88 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -999,9 +1090,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 89 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -1010,9 +1102,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 90 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -1021,9 +1114,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 91 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -1032,9 +1126,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 92 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -1043,9 +1138,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 93 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -1054,9 +1150,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 94 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -1065,9 +1162,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 95 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -1076,9 +1174,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 96 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -1087,9 +1186,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 97 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -1098,9 +1198,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 98 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -1109,9 +1210,10 @@ WHERE [c].[Name] = @__s_0 @__s_0 (String?): 99 }, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = @__s_0 +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = @__s_0 }, { Type: ReaderExecutedAsync, @@ -1121,10 +1223,12 @@ WHERE [c].[Name] = @__s_0 @p1 (String): Title2 }, Text: -SET IMPLICIT_TRANSACTIONS OFF; -SET NOCOUNT ON; -INSERT INTO [Companies] ([Id], [Name]) -VALUES (@p0, @p1); +set implicit_transactions off; + +set nocount on; + +insert into [Companies] ([Id], [Name]) +values (@p0, @p1) } ] } \ No newline at end of file diff --git a/src/Verify.EntityFramework.Tests/CoreTests.NestedQueryable.verified.txt b/src/Verify.EntityFramework.Tests/CoreTests.NestedQueryable.verified.txt index d8e329f8..dcf8d5a7 100644 --- a/src/Verify.EntityFramework.Tests/CoreTests.NestedQueryable.verified.txt +++ b/src/Verify.EntityFramework.Tests/CoreTests.NestedQueryable.verified.txt @@ -1,9 +1,10 @@ { queryable: { Sql: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = N'value', +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = N'value', Result: [ { Name: value diff --git a/src/Verify.EntityFramework.Tests/CoreTests.Parameters.verified.txt b/src/Verify.EntityFramework.Tests/CoreTests.Parameters.verified.txt index 0de06f48..d30303b1 100644 --- a/src/Verify.EntityFramework.Tests/CoreTests.Parameters.verified.txt +++ b/src/Verify.EntityFramework.Tests/CoreTests.Parameters.verified.txt @@ -7,9 +7,11 @@ @p1 (String): Guid_1 }, Text: -SET IMPLICIT_TRANSACTIONS OFF; -SET NOCOUNT ON; -INSERT INTO [Companies] ([Id], [Name]) -VALUES (@p0, @p1); +set implicit_transactions off; + +set nocount on; + +insert into [Companies] ([Id], [Name]) +values (@p0, @p1) } } \ No newline at end of file diff --git a/src/Verify.EntityFramework.Tests/CoreTests.RecordingDisabledTest.verified.txt b/src/Verify.EntityFramework.Tests/CoreTests.RecordingDisabledTest.verified.txt index 86fe8348..5937923c 100644 --- a/src/Verify.EntityFramework.Tests/CoreTests.RecordingDisabledTest.verified.txt +++ b/src/Verify.EntityFramework.Tests/CoreTests.RecordingDisabledTest.verified.txt @@ -3,8 +3,9 @@ Type: ReaderExecutedAsync, HasTransaction: false, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = N'Title' +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = N'Title' } } \ No newline at end of file diff --git a/src/Verify.EntityFramework.Tests/CoreTests.RecordingSpecific.verified.txt b/src/Verify.EntityFramework.Tests/CoreTests.RecordingSpecific.verified.txt index 676a37a2..9002f45d 100644 --- a/src/Verify.EntityFramework.Tests/CoreTests.RecordingSpecific.verified.txt +++ b/src/Verify.EntityFramework.Tests/CoreTests.RecordingSpecific.verified.txt @@ -6,9 +6,10 @@ Type: ReaderExecutedAsync, HasTransaction: false, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = N'Title' +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = N'Title' } } ] diff --git a/src/Verify.EntityFramework.Tests/CoreTests.RecordingTest.verified.txt b/src/Verify.EntityFramework.Tests/CoreTests.RecordingTest.verified.txt index 86fe8348..5937923c 100644 --- a/src/Verify.EntityFramework.Tests/CoreTests.RecordingTest.verified.txt +++ b/src/Verify.EntityFramework.Tests/CoreTests.RecordingTest.verified.txt @@ -3,8 +3,9 @@ Type: ReaderExecutedAsync, HasTransaction: false, Text: -SELECT [c].[Id], [c].[Name] -FROM [Companies] AS [c] -WHERE [c].[Name] = N'Title' +select [c].[Id], + [c].[Name] +from [Companies] as [c] +where [c].[Name] = N'Title' } } \ No newline at end of file diff --git a/src/Verify.EntityFramework/Converters/DbUpdateExceptionConverter.cs b/src/Verify.EntityFramework/Converters/DbUpdateExceptionConverter.cs index e8426104..e08d7f74 100644 --- a/src/Verify.EntityFramework/Converters/DbUpdateExceptionConverter.cs +++ b/src/Verify.EntityFramework/Converters/DbUpdateExceptionConverter.cs @@ -11,10 +11,10 @@ public override void Write(VerifyJsonWriter writer, DbUpdateException exception) var entries = exception .Entries - .Select( - entry => new - { - EntryProperties = entry.Properties.ToDictionary( + .Select(entry => new + { + EntryProperties = entry.Properties + .ToDictionary( _ => _.Metadata.Name, _ => new { @@ -23,8 +23,8 @@ public override void Write(VerifyJsonWriter writer, DbUpdateException exception) _.IsTemporary, _.IsModified }), - entry.State - }); + entry.State + }); writer.WriteMember(exception, entries, "Entries"); writer.WriteMember(exception, exception.StackTrace, "StackTrace"); diff --git a/src/Verify.EntityFramework/Converters/LogEntryConverter.cs b/src/Verify.EntityFramework/Converters/LogEntryConverter.cs new file mode 100644 index 00000000..ec6a0c02 --- /dev/null +++ b/src/Verify.EntityFramework/Converters/LogEntryConverter.cs @@ -0,0 +1,25 @@ +class LogEntryConverter : WriteOnlyJsonConverter +{ + public override void Write(VerifyJsonWriter writer, LogEntry logEntry) + { + writer.WriteStartObject(); + + writer.WriteMember(logEntry, logEntry.Type, "Type"); + writer.WriteMember(logEntry, logEntry.HasTransaction, "HasTransaction"); + writer.WriteMember(logEntry, logEntry.Exception, "Exception"); + writer.WriteMember(logEntry, logEntry.Parameters, "Parameters"); + ReadOnlySpan text; + if (logEntry.IsSqlServer) + { + text = SqlFormatter.Format(logEntry.Text); + } + else + { + text = logEntry.Text.AsSpan(); + } + + writer.WriteMember(logEntry, text, "Text"); + + writer.WriteEndObject(); + } +} \ No newline at end of file diff --git a/src/Verify.EntityFramework/Converters/QueryableConverter.cs b/src/Verify.EntityFramework/Converters/QueryableConverter.cs index bf588cc2..1c1efe04 100644 --- a/src/Verify.EntityFramework/Converters/QueryableConverter.cs +++ b/src/Verify.EntityFramework/Converters/QueryableConverter.cs @@ -1,4 +1,4 @@ -class QueryableConverter : +class QueryableConverter(bool formatSql) : WriteOnlyJsonConverter { static MethodInfo executeQueryableDefinition; @@ -10,6 +10,11 @@ public override void Write(VerifyJsonWriter writer, object data) { var queryable = (IQueryable) data; var sql = queryable.ToQueryString(); + if (formatSql) + { + //TODO: add span support to Serialize + sql = SqlFormatter.Format(sql).ToString(); + } if (!TryExecuteQueryable(queryable, out var result)) { writer.Serialize(sql); @@ -17,10 +22,8 @@ public override void Write(VerifyJsonWriter writer, object data) } writer.WriteStartObject(); - writer.WritePropertyName("Sql"); - writer.Serialize(sql); - writer.WritePropertyName("Result"); - writer.Serialize(result); + writer.WriteMember(data, sql, "Sql"); + writer.WriteMember(data, result, "Result"); writer.WriteEndObject(); } diff --git a/src/Verify.EntityFramework/GlobalUsings.cs b/src/Verify.EntityFramework/GlobalUsings.cs index 8ef0c1ab..f71539c3 100644 --- a/src/Verify.EntityFramework/GlobalUsings.cs +++ b/src/Verify.EntityFramework/GlobalUsings.cs @@ -10,4 +10,5 @@ global using Microsoft.EntityFrameworkCore.Query; global using Microsoft.EntityFrameworkCore.Query.Internal; global using Microsoft.EntityFrameworkCore.Query.SqlExpressions; +global using Microsoft.SqlServer.TransactSql.ScriptDom; global using VerifyTests.EntityFramework; \ No newline at end of file diff --git a/src/Verify.EntityFramework/LogData.cs b/src/Verify.EntityFramework/LogData.cs index 10941e26..11191807 100644 --- a/src/Verify.EntityFramework/LogData.cs +++ b/src/Verify.EntityFramework/LogData.cs @@ -7,13 +7,9 @@ public class LogEntry( Exception? exception = null) { public string Type { get; } = type; - - [JsonIgnore] public DateTimeOffset StartTime { get; } = data.StartTime; - - [JsonIgnore] + internal bool IsSqlServer { get; } = command.GetType().Name == "SqlCommand"; public TimeSpan Duration { get; } = data.Duration; - public bool HasTransaction { get; } = command.Transaction != null; public Exception? Exception { get; } = exception; public IDictionary Parameters { get; } = command.Parameters.ToDictionary(); diff --git a/src/Verify.EntityFramework/SqlFormatter.cs b/src/Verify.EntityFramework/SqlFormatter.cs new file mode 100644 index 00000000..279a0f74 --- /dev/null +++ b/src/Verify.EntityFramework/SqlFormatter.cs @@ -0,0 +1,35 @@ +static class SqlFormatter +{ + public static ReadOnlySpan Format(string input) + { + var parser = new TSql170Parser(false); + using var reader = new StringReader(input); + var fragment = parser.Parse(reader, out var errors); + + if (errors.Count > 0) + { + throw new( + $""" + Failed to parse sql. + + Errors: + {string.Join(Environment.NewLine, errors.Select(_ => _.Message))} + + Sql input: + {input} + """); + } + + var generator = new Sql170ScriptGenerator( + new() + { + SqlVersion = SqlVersion.Sql170, + KeywordCasing = KeywordCasing.Lowercase, + IndentationSize = 2, + AlignClauseBodies = true, + }); + + generator.GenerateScript(fragment, out var output); + return output.AsSpan().TrimEnd().TrimEnd(';'); + } +} \ No newline at end of file diff --git a/src/Verify.EntityFramework/Verify.EntityFramework.csproj b/src/Verify.EntityFramework/Verify.EntityFramework.csproj index 124460e8..73c261a2 100644 --- a/src/Verify.EntityFramework/Verify.EntityFramework.csproj +++ b/src/Verify.EntityFramework/Verify.EntityFramework.csproj @@ -4,6 +4,7 @@ + diff --git a/src/Verify.EntityFramework/VerifyEntityFramework.cs b/src/Verify.EntityFramework/VerifyEntityFramework.cs index 0ae95248..8fb04abd 100644 --- a/src/Verify.EntityFramework/VerifyEntityFramework.cs +++ b/src/Verify.EntityFramework/VerifyEntityFramework.cs @@ -125,15 +125,21 @@ public static void Initialize(IModel? model = null) VerifierSettings.RegisterFileConverter( QueryableToSql, (target, _) => QueryableConverter.IsQueryable(target)); - + var formatSql = model != null && model.IsSqlServer(); VerifierSettings.IgnoreMembersWithType(typeof(IDbContextFactory<>)); VerifierSettings.IgnoreMembersWithType(); var converters = DefaultContractResolver.Converters; converters.Add(new DbUpdateExceptionConverter()); converters.Add(new TrackerConverter()); - converters.Add(new QueryableConverter()); + converters.Add(new QueryableConverter(formatSql)); + converters.Add(new LogEntryConverter()); + } + static bool IsSqlServer(this IModel model) + { + var dependencies = model.ModelDependencies; + var mappingSourceName = dependencies?.TypeMappingSource.GetType().Name; + return mappingSourceName == "SqlServerTypeMappingSource"; } - static ConversionResult QueryableToSql(object arg, IReadOnlyDictionary context) { var queryable = (IQueryable) arg;