@@ -81,6 +81,104 @@ public void ElseIfStatementWorks()
81
81
Assert . IsTrue ( expected . SequenceEqual ( actual ) ) ;
82
82
}
83
83
84
+ //https://github.com/rubberduck-vba/Rubberduck/issues/1858
85
+ [ TestMethod ]
86
+ [ TestCategory ( "Indenter" ) ]
87
+ public void MultipleElseIfStatementWorks ( )
88
+ {
89
+ var code = new [ ]
90
+ {
91
+ "Public Sub Test()" ,
92
+ "If Foo And Bar Then" ,
93
+ "Call Foobar" ,
94
+ "ElseIf Not Foo Then" ,
95
+ "Call Baz" ,
96
+ "ElseIf Not Bar Then" ,
97
+ "Call NoBaz" ,
98
+ "Else" ,
99
+ "MsgBox \" No Foos or Bars\" " ,
100
+ "End If" ,
101
+ "End Sub"
102
+ } ;
103
+
104
+ var expected = new [ ]
105
+ {
106
+ "Public Sub Test()" ,
107
+ " If Foo And Bar Then" ,
108
+ " Call Foobar" ,
109
+ " ElseIf Not Foo Then" ,
110
+ " Call Baz" ,
111
+ " ElseIf Not Bar Then" ,
112
+ " Call NoBaz" ,
113
+ " Else" ,
114
+ " MsgBox \" No Foos or Bars\" " ,
115
+ " End If" ,
116
+ "End Sub"
117
+ } ;
118
+
119
+ var indenter = new Indenter ( null , ( ) => IndenterSettingsTests . GetMockIndenterSettings ( ) ) ;
120
+ var actual = indenter . Indent ( code , string . Empty ) ;
121
+ Assert . IsTrue ( expected . SequenceEqual ( actual ) ) ;
122
+ }
123
+
124
+ //https://github.com/rubberduck-vba/Rubberduck/issues/1858
125
+ [ TestMethod ]
126
+ [ TestCategory ( "Indenter" ) ]
127
+ public void IfThenElseStatementWorks ( )
128
+ {
129
+ var code = new [ ]
130
+ {
131
+ "Public Sub Test()" ,
132
+ "If Foo And Bar Then Foobar Else" ,
133
+ "Baz" ,
134
+ "End If" ,
135
+ "End Sub"
136
+ } ;
137
+
138
+ var expected = new [ ]
139
+ {
140
+ "Public Sub Test()" ,
141
+ " If Foo And Bar Then Foobar Else" ,
142
+ " Baz" ,
143
+ " End If" ,
144
+ "End Sub"
145
+ } ;
146
+
147
+ var indenter = new Indenter ( null , ( ) => IndenterSettingsTests . GetMockIndenterSettings ( ) ) ;
148
+ var actual = indenter . Indent ( code , string . Empty ) ;
149
+ Assert . IsTrue ( expected . SequenceEqual ( actual ) ) ;
150
+ }
151
+
152
+ //https://github.com/rubberduck-vba/Rubberduck/issues/1858
153
+ [ TestMethod ]
154
+ [ TestCategory ( "Indenter" ) ]
155
+ public void ElseIfThenElseStatementWorks ( )
156
+ {
157
+ var code = new [ ]
158
+ {
159
+ "Public Sub Test()" ,
160
+ "If Foo Then NotFoobar" ,
161
+ "ElseIf Foo And Bar Then Foobar Else" ,
162
+ "Baz" ,
163
+ "End If" ,
164
+ "End Sub"
165
+ } ;
166
+
167
+ var expected = new [ ]
168
+ {
169
+ "Public Sub Test()" ,
170
+ " If Foo Then NotFoobar" ,
171
+ " ElseIf Foo And Bar Then Foobar Else" ,
172
+ " Baz" ,
173
+ " End If" ,
174
+ "End Sub"
175
+ } ;
176
+
177
+ var indenter = new Indenter ( null , ( ) => IndenterSettingsTests . GetMockIndenterSettings ( ) ) ;
178
+ var actual = indenter . Indent ( code , string . Empty ) ;
179
+ Assert . IsTrue ( expected . SequenceEqual ( actual ) ) ;
180
+ }
181
+
84
182
[ TestMethod ]
85
183
[ TestCategory ( "Indenter" ) ]
86
184
public void SingleLineElseIfStatementWorks ( )
0 commit comments