1- using System . Data ;
1+ using System . Data ;
22using DotNetProjects . Migrator . Framework ;
33using Migrator . Framework ;
4+ using NSubstitute ;
45using NUnit . Framework ;
5- using Rhino . Mocks ;
66
77namespace Migrator . Tests ;
88
@@ -14,7 +14,7 @@ public class JoiningTableTransformationProviderExtensionsTests
1414 [ SetUp ]
1515 public void SetUp ( )
1616 {
17- _provider = MockRepository . GenerateStub < ITransformationProvider > ( ) ;
17+ _provider = Substitute . For < ITransformationProvider > ( ) ;
1818 }
1919
2020 #endregion
@@ -24,134 +24,193 @@ public void SetUp()
2424 [ Test ]
2525 public void AddManyToManyJoiningTable_AddsPrimaryKey ( )
2626 {
27- _provider . AddManyToManyJoiningTable ( "dbo" , "TestScenarios" , "Id" , "Versions" , "Id" ) ;
28-
29- var args = _provider . GetArgumentsForCallsMadeOn ( stub => stub . AddPrimaryKey ( null , null , null ) ) [ 0 ] ;
30-
31- Assert . That ( "PK_TestScenarioVersions" , Is . EqualTo ( args [ 0 ] ) ) ;
32- Assert . That ( "dbo.TestScenarioVersions" , Is . EqualTo ( args [ 1 ] ) ) ;
33-
34- var columns = ( string [ ] ) args [ 2 ] ;
35-
36- Assert . That ( "TestScenarioId" , Does . Contain ( columns ) ) ;
37- Assert . That ( "VersionId" , Does . Contain ( columns ) ) ;
27+ _provider
28+ . When ( x => x . AddPrimaryKey ( Arg . Any < string > ( ) , Arg . Any < string > ( ) , Arg . Any < string [ ] > ( ) ) )
29+ . Do ( callInfo =>
30+ {
31+ var capturedName = callInfo [ 0 ] as string ;
32+ var capturedTable = callInfo [ 1 ] as string ;
33+ var columns = callInfo [ 2 ] as string [ ] ;
34+ Assert . That ( capturedName , Is . EqualTo ( "PK_TestScenarioVersions" ) ) ;
35+ Assert . That ( capturedTable , Is . EqualTo ( "dbo.TestScenarioVersions" ) ) ;
36+ Assert . That ( columns , Does . Contain ( "TestScenarioId" ) ) ;
37+ Assert . That ( columns , Does . Contain ( "VersionId" ) ) ;
38+ } ) ;
39+
40+ _provider . AddManyToManyJoiningTable ( "dbo" , "TestScenarios" , "Id" , "Versions" , "Id" ) ;
3841 }
3942
4043 [ Test ]
4144 public void AddManyToManyJoiningTable_CreatesLeftHandSideColumn_WithCorrectName ( )
42- {
43- _provider . AddManyToManyJoiningTable ( "dbo" , "TestScenarios" , "Id" , "Versions" , "Id" ) ;
44-
45- var args = _provider . GetArgumentsForCallsMadeOn ( stub => stub . AddTable ( null , ( Column [ ] ) null ) ) [ 0 ] ;
46-
47- var lhsColumn = ( ( IDbField [ ] ) args [ 1 ] ) [ 0 ] as Column ;
48-
49- Assert . That ( lhsColumn . Name , Is . EqualTo ( "TestScenarioId" ) ) ;
50- Assert . That ( DbType . Guid , Is . EqualTo ( lhsColumn . Type ) ) ;
51- Assert . That ( ColumnProperty . NotNull , Is . EqualTo ( lhsColumn . ColumnProperty ) ) ;
45+ {
46+ _provider
47+ . When ( x => x . AddTable ( Arg . Any < string > ( ) , Arg . Any < Column [ ] > ( ) ) )
48+ . Do ( callInfo =>
49+ {
50+ var lhsColumn = ( ( IDbField [ ] ) callInfo [ 1 ] ) [ 0 ] as Column ;
51+
52+ Assert . That ( lhsColumn . Name , Is . EqualTo ( "TestScenarioId" ) ) ;
53+ Assert . That ( lhsColumn . Type , Is . EqualTo ( DbType . Guid ) ) ;
54+ Assert . That ( ColumnProperty . NotNull , Is . EqualTo ( lhsColumn . ColumnProperty ) ) ;
55+ } ) ;
56+
57+ _provider . AddManyToManyJoiningTable ( "dbo" , "TestScenarios" , "Id" , "Versions" , "Id" ) ;
5258 }
5359
5460 [ Test ]
5561 public void AddManyToManyJoiningTable_CreatesLeftHandSideForeignKey_WithCorrectAttributes ( )
5662 {
57- _provider . AddManyToManyJoiningTable ( "dbo" , "TestScenarios" , "Id" , "Versions" , "Id" ) ;
58-
59- var args = _provider . GetArgumentsForCallsMadeOn ( stub => stub . AddForeignKey ( null , null , "" , null , null , ForeignKeyConstraintType . NoAction ) ) [ 0 ] ;
60-
61- Assert . That ( "dbo.TestScenarioVersions" , Is . EqualTo ( args [ 1 ] ) ) ;
62- Assert . That ( "TestScenarioId" , Is . EqualTo ( args [ 2 ] ) ) ;
63- Assert . That ( "dbo.TestScenarios" , Is . EqualTo ( args [ 3 ] ) ) ;
64- Assert . That ( "Id" , Is . EqualTo ( args [ 4 ] ) ) ;
65- Assert . That ( ForeignKeyConstraintType . NoAction , Is . EqualTo ( args [ 5 ] ) ) ;
66- }
63+ _provider
64+ . When ( x => x . AddForeignKey ( Arg . Any < string > ( ) , Arg . Any < string > ( ) , Arg . Any < string > ( ) , Arg . Any < string > ( ) , Arg . Any < string > ( ) ) )
65+ . Do ( callInfo =>
66+ {
67+ var lhsColumn = ( ( IDbField [ ] ) callInfo [ 1 ] ) [ 0 ] as Column ;
68+
69+ Assert . That ( callInfo [ 1 ] as string , Is . EqualTo ( "dbo.TestScenarioVersions" ) ) ;
70+ Assert . That ( callInfo [ 2 ] as string , Is . EqualTo ( "TestScenarioId" ) ) ;
71+ Assert . That ( callInfo [ 3 ] as string , Is . EqualTo ( "dbo.TestScenarios" ) ) ;
72+ Assert . That ( callInfo [ 4 ] as string , Is . EqualTo ( "Id" ) ) ;
73+ Assert . That ( ( ForeignKeyConstraintType ) callInfo [ 5 ] , Is . EqualTo ( ForeignKeyConstraintType . NoAction ) ) ;
74+ } ) ;
6775
76+ _provider . AddManyToManyJoiningTable ( "dbo" , "TestScenarios" , "Id" , "Versions" , "Id" ) ;
77+ }
78+
6879 [ Test ]
6980 public void AddManyToManyJoiningTable_CreatesLeftHandSideForeignKey_WithCorrectName ( )
7081 {
71- _provider . AddManyToManyJoiningTable ( "dbo" , "TestScenarios" , "Id" , "Versions" , "Id" ) ;
72-
73- var args = _provider . GetArgumentsForCallsMadeOn ( stub => stub . AddForeignKey ( null , null , "" , null , null , ForeignKeyConstraintType . NoAction ) ) [ 0 ] ;
82+ _provider
83+ . When ( x => x . AddForeignKey ( Arg . Any < string > ( ) , Arg . Any < string > ( ) , Arg . Any < string > ( ) , Arg . Any < string > ( ) , Arg . Any < string > ( ) ) )
84+ . Do ( callInfo =>
85+ {
86+ var lhsColumn = ( ( IDbField [ ] ) callInfo [ 1 ] ) [ 0 ] as Column ;
87+
88+ Assert . That ( callInfo [ 0 ] as string , Is . EqualTo ( "FK_Scenarios_ScenarioVersions" ) ) ;
89+ } ) ;
7490
75- Assert . That ( "FK_Scenarios_ScenarioVersions ", Is . EqualTo ( args [ 0 ] ) ) ;
91+ _provider . AddManyToManyJoiningTable ( "dbo ", "TestScenarios" , "Id" , "Versions" , "Id" ) ;
7692 }
7793
7894 [ Test ]
7995 public void AddManyToManyJoiningTable_CreatesRightHandSideColumn_WithCorrectName ( )
80- {
81- _provider . AddManyToManyJoiningTable ( "dbo" , "TestScenarios" , "Id" , "Versions" , "Id" ) ;
82-
83- var args = _provider . GetArgumentsForCallsMadeOn ( stub => stub . AddTable ( null , ( Column [ ] ) null ) ) [ 0 ] ;
84-
85- var rhsColumn = ( ( IDbField [ ] ) args [ 1 ] ) [ 1 ] as Column ;
96+ {
97+ _provider
98+ . When ( x => x . AddTable ( Arg . Any < string > ( ) , Arg . Any < Column [ ] > ( ) ) )
99+ . Do ( callInfo =>
100+ {
101+ var rhsColumn = ( ( IDbField [ ] ) callInfo [ 1 ] ) [ 0 ] as Column ;
102+
103+ Assert . That ( rhsColumn . Name , Is . EqualTo ( "VersionId" ) ) ;
104+ Assert . That ( DbType . Guid , Is . EqualTo ( rhsColumn . Type ) ) ;
105+ Assert . That ( ColumnProperty . NotNull , Is . EqualTo ( rhsColumn . ColumnProperty ) ) ;
106+ } ) ;
86107
87- Assert . That ( rhsColumn . Name , Is . EqualTo ( "VersionId" ) ) ;
88- Assert . That ( DbType . Guid , Is . EqualTo ( rhsColumn . Type ) ) ;
89- Assert . That ( ColumnProperty . NotNull , Is . EqualTo ( rhsColumn . ColumnProperty ) ) ;
108+ _provider . AddManyToManyJoiningTable ( "dbo" , "TestScenarios" , "Id" , "Versions" , "Id" ) ;
90109 }
91110
92111 [ Test ]
93112 public void AddManyToManyJoiningTable_CreatesRightHandSideForeignKey_WithCorrectAttributes ( )
94113 {
95- _provider . AddManyToManyJoiningTable ( "dbo" , "TestScenarios" , "Id" , "Versions" , "Id" ) ;
96-
97- var args = _provider . GetArgumentsForCallsMadeOn ( stub => stub . AddForeignKey ( null , null , "" , null , null , ForeignKeyConstraintType . NoAction ) ) [ 1 ] ;
114+ _provider
115+ . When ( x => x . AddTable ( Arg . Any < string > ( ) , Arg . Any < Column [ ] > ( ) ) )
116+ . Do ( callInfo =>
117+ {
118+ var rhsColumn = ( ( IDbField [ ] ) callInfo [ 1 ] ) [ 0 ] as Column ;
119+
120+ Assert . That ( rhsColumn . Name , Is . EqualTo ( "VersionId" ) ) ;
121+ Assert . That ( DbType . Guid , Is . EqualTo ( rhsColumn . Type ) ) ;
122+ Assert . That ( ColumnProperty . NotNull , Is . EqualTo ( rhsColumn . ColumnProperty ) ) ;
123+
124+ Assert . That ( callInfo [ 1 ] as string , Is . EqualTo ( "dbo.TestScenarioVersions" ) ) ;
125+ Assert . That ( callInfo [ 2 ] as string , Is . EqualTo ( "VersionId" ) ) ;
126+ Assert . That ( callInfo [ 3 ] as string , Is . EqualTo ( "dbo.Versions" ) ) ;
127+ Assert . That ( callInfo [ 4 ] as string , Is . EqualTo ( "Id" ) ) ;
128+ Assert . That ( ( ForeignKeyConstraintType ) callInfo [ 5 ] , Is . EqualTo ( ForeignKeyConstraintType . NoAction ) ) ;
129+ } ) ;
98130
99- Assert . That ( "dbo.TestScenarioVersions" , Is . EqualTo ( args [ 1 ] ) ) ;
100- Assert . That ( "VersionId" , Is . EqualTo ( args [ 2 ] ) ) ;
101- Assert . That ( "dbo.Versions" , Is . EqualTo ( args [ 3 ] ) ) ;
102- Assert . That ( "Id" , Is . EqualTo ( args [ 4 ] ) ) ;
103- Assert . That ( ForeignKeyConstraintType . NoAction , Is . EqualTo ( args [ 5 ] ) ) ;
131+ _provider . AddManyToManyJoiningTable ( "dbo" , "TestScenarios" , "Id" , "Versions" , "Id" ) ;
104132 }
105133
106134 [ Test ]
107135 public void AddManyToManyJoiningTable_CreatesRightHandSideForeignKey_WithCorrectName ( )
108- {
109- _provider . AddManyToManyJoiningTable ( "dbo" , "TestScenarios" , "Id" , "Versions" , "Id" ) ;
136+ {
137+ _provider
138+ . When ( x => x . AddForeignKey ( Arg . Any < string > ( ) , Arg . Any < string > ( ) , Arg . Any < string > ( ) , Arg . Any < string > ( ) , Arg . Any < string > ( ) ) )
139+ . Do ( callInfo =>
140+ {
141+ var lhsColumn = ( ( IDbField [ ] ) callInfo [ 1 ] ) [ 0 ] as Column ;
142+
143+ Assert . That ( callInfo [ 0 ] as string , Is . EqualTo ( "FK_Scenarios_ScenarioVersions" ) ) ;
144+ } ) ;
110145
111- var args = _provider . GetArgumentsForCallsMadeOn ( stub => stub . AddForeignKey ( null , null , "" , null , null , ForeignKeyConstraintType . NoAction ) ) [ 1 ] ;
112-
113- Assert . That ( "FK_Versions_ScenarioVersions" , Is . EqualTo ( args [ 0 ] ) ) ;
146+ _provider . AddManyToManyJoiningTable ( "dbo" , "TestScenarios" , "Id" , "Versions" , "Id" ) ;
114147 }
115148
116149 [ Test ]
117150 public void AddManyToManyJoiningTable_CreatesTableWithCorrectName ( )
118151 {
119- _provider . AddManyToManyJoiningTable ( "dbo" , "TestScenarios" , "Id" , "Versions" , "Id" ) ;
152+ _provider
153+ . When ( x => x . AddTable ( Arg . Any < string > ( ) , Arg . Any < Column [ ] > ( ) ) )
154+ . Do ( callInfo =>
155+ {
156+ var rhsColumn = ( ( IDbField [ ] ) callInfo [ 1 ] ) [ 0 ] as Column ;
157+
158+ Assert . That ( callInfo [ 1 ] as string , Is . EqualTo ( "dbo.TestScenarioVersions" ) ) ;
159+ } ) ;
120160
121- var args = _provider . GetArgumentsForCallsMadeOn ( stub => stub . AddTable ( null , ( Column [ ] ) null ) ) [ 0 ] ;
122-
123- Assert . That ( "dbo.TestScenarioVersions" , Is . EqualTo ( args [ 0 ] ) ) ;
161+ _provider . AddManyToManyJoiningTable ( "dbo" , "TestScenarios" , "Id" , "Versions" , "Id" ) ;
124162 }
125163
126164 [ Test ]
127165 public void RemoveManyToManyJoiningTable_RemovesLhsForeignKey ( )
128- {
129- _provider . RemoveManyToManyJoiningTable ( "dbo" , "TestScenarios" , "Versions" ) ;
130-
131- var args = _provider . GetArgumentsForCallsMadeOn ( stub => stub . RemoveForeignKey ( null , null ) ) [ 0 ] ;
166+ {
167+ var callCount = 0 ;
168+
169+ _provider
170+ . When ( x => x . RemoveForeignKey ( Arg . Any < string > ( ) , Arg . Any < string > ( ) ) )
171+ . Do ( callInfo =>
172+ {
173+ callCount ++ ;
174+ if ( callCount == 1 )
175+ {
176+ Assert . That ( callInfo [ 0 ] as string , Is . EqualTo ( "dbo.TestScenarioVersions" ) ) ;
177+ Assert . That ( callInfo [ 1 ] as string , Is . EqualTo ( "FK_Scenarios_ScenarioVersions" ) ) ;
178+ }
179+ } ) ;
132180
133- Assert . That ( "dbo.TestScenarioVersions" , Is . EqualTo ( args [ 0 ] ) ) ;
134- Assert . That ( "FK_Scenarios_ScenarioVersions" , Is . EqualTo ( args [ 1 ] ) ) ;
181+ _provider . RemoveManyToManyJoiningTable ( "dbo" , "TestScenarios" , "Versions" ) ;
135182 }
136183
137184 [ Test ]
138185 public void RemoveManyToManyJoiningTable_RemovesRhsForeignKey ( )
139186 {
140- _provider . RemoveManyToManyJoiningTable ( "dbo" , "TestScenarios" , "Versions" ) ;
187+ var callCount = 0 ;
188+
189+ _provider
190+ . When ( x => x . RemoveForeignKey ( Arg . Any < string > ( ) , Arg . Any < string > ( ) ) )
191+ . Do ( callInfo =>
192+ {
193+ callCount ++ ;
194+ if ( callCount == 2 )
195+ {
196+ Assert . That ( callInfo [ 0 ] as string , Is . EqualTo ( "dbo.TestScenarioVersions" ) ) ;
197+ Assert . That ( callInfo [ 1 ] as string , Is . EqualTo ( "FK_Versions_ScenarioVersions" ) ) ;
198+ }
199+ } ) ;
141200
142- var args = _provider . GetArgumentsForCallsMadeOn ( stub => stub . RemoveForeignKey ( null , null ) ) [ 1 ] ;
143-
144- Assert . That ( "dbo.TestScenarioVersions" , Is . EqualTo ( args [ 0 ] ) ) ;
145- Assert . That ( "FK_Versions_ScenarioVersions" , Is . EqualTo ( args [ 1 ] ) ) ;
201+ _provider . RemoveManyToManyJoiningTable ( "dbo" , "TestScenarios" , "Versions" ) ;
146202 }
147203
148204 [ Test ]
149205 public void RemoveManyToManyJoiningTable_RemovesTable ( )
150206 {
151- _provider . RemoveManyToManyJoiningTable ( "dbo" , "TestScenarios" , "Versions" ) ;
207+ _provider
208+ . When ( x => x . RemoveTable ( Arg . Any < string > ( ) ) )
209+ . Do ( callInfo =>
210+ {
211+ Assert . That ( callInfo [ 0 ] as string , Is . EqualTo ( "dbo.TestScenarioVersions" ) ) ;
212+ } ) ;
152213
153- var args = _provider . GetArgumentsForCallsMadeOn ( stub => stub . RemoveTable ( null ) ) [ 0 ] ;
154-
155- Assert . That ( "dbo.TestScenarioVersions" , Is . EqualTo ( args [ 0 ] ) ) ;
214+ _provider . RemoveManyToManyJoiningTable ( "dbo" , "TestScenarios" , "Versions" ) ;
156215 }
157- }
216+ }
0 commit comments