Skip to content

Commit b259c4e

Browse files
Ledjon BehluliLedjon Behluli
authored andcommitted
OSA004 fixer tests done
1 parent 84d5856 commit b259c4e

File tree

1 file changed

+255
-15
lines changed

1 file changed

+255
-15
lines changed

tests/OrleanSpaces.Analyzers.Tests/OSA004/PreferSpecializedOverGenericFixerTests.cs

Lines changed: 255 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ public PreferSpecializedOverGenericFixerTests() : base(
1616
public void Should_Equal() =>
1717
Assert.Equal("OSA004", provider.FixableDiagnosticIds.Single());
1818

19+
#region SpaceTuple
20+
21+
#region ObjInit
22+
1923
[Theory]
2024
[InlineData("[|SpaceTuple tuple = new SpaceTuple(true);|]", "Bool")]
2125
[InlineData("[|SpaceTuple tuple = new SpaceTuple((byte)1);|]", "Byte")]
@@ -36,12 +40,40 @@ public void Should_Equal() =>
3640
[InlineData("[|SpaceTuple tuple = new SpaceTuple(DateTimeOffset.MinValue);|]", "DateTimeOffset")]
3741
[InlineData("[|SpaceTuple tuple = new SpaceTuple(TimeSpan.MinValue);|]", "TimeSpan")]
3842
[InlineData("[|SpaceTuple tuple = new SpaceTuple(Guid.Empty);|]", "Guid")]
39-
public void Should_Fix_ObjInited_SpaceTuple(string code, string specializedTypePrefix)
43+
public void Should_Fix_GlobalStatement_ObjInit_SpaceTuple(string code, string specializedTypePrefix)
4044
{
4145
string fix = RemoveDiagnosticSpanFromText(code.Replace("Space", specializedTypePrefix));
4246
TestCodeFix(code, fix, Namespace.OrleanSpaces_Tuples, Namespace.OrleanSpaces_Tuples_Specialized);
4347
}
4448

49+
[Fact]
50+
public void Should_Fix_LocalStatement_ObjInit_SpaceTuple()
51+
{
52+
string code =
53+
@"class C
54+
{
55+
public C()
56+
{
57+
[|SpaceTuple tuple = new SpaceTuple(1);|]
58+
}
59+
}";
60+
61+
string fix =
62+
@"class C
63+
{
64+
public C()
65+
{
66+
IntTuple tuple = new IntTuple(1);
67+
}
68+
}";
69+
70+
TestCodeFix(code, fix, Namespace.OrleanSpaces_Tuples, Namespace.OrleanSpaces_Tuples_Specialized);
71+
}
72+
73+
#endregion
74+
75+
#region SimplifiedObjInit
76+
4577
[Theory]
4678
[InlineData("[|SpaceTuple tuple = new(true);|]", "Bool")]
4779
[InlineData("[|SpaceTuple tuple = new((byte)1);|]", "Byte")]
@@ -62,12 +94,41 @@ public void Should_Fix_ObjInited_SpaceTuple(string code, string specializedTypeP
6294
[InlineData("[|SpaceTuple tuple = new(DateTimeOffset.MinValue);|]", "DateTimeOffset")]
6395
[InlineData("[|SpaceTuple tuple = new(TimeSpan.MinValue);|]", "TimeSpan")]
6496
[InlineData("[|SpaceTuple tuple = new(Guid.Empty);|]", "Guid")]
65-
public void Should_Fix_SimplifiedObjInited_SpaceTuple(string code, string specializedTypePrefix)
97+
public void Should_Fix_GlobalStatement_SimplifiedObjInit_SpaceTuple(string code, string specializedTypePrefix)
6698
{
6799
string fix = RemoveDiagnosticSpanFromText(code.Replace("Space", specializedTypePrefix));
68100
TestCodeFix(code, fix, Namespace.OrleanSpaces_Tuples, Namespace.OrleanSpaces_Tuples_Specialized);
69101
}
70102

103+
104+
[Fact]
105+
public void Should_Fix_LocalStatement_SimplifiedObjInit_SpaceTuple()
106+
{
107+
string code =
108+
@"class C
109+
{
110+
public C()
111+
{
112+
[|SpaceTuple tuple = new(1);|]
113+
}
114+
}";
115+
116+
string fix =
117+
@"class C
118+
{
119+
public C()
120+
{
121+
IntTuple tuple = new(1);
122+
}
123+
}";
124+
125+
TestCodeFix(code, fix, Namespace.OrleanSpaces_Tuples, Namespace.OrleanSpaces_Tuples_Specialized);
126+
}
127+
128+
#endregion
129+
130+
#region VarObjInit
131+
71132
[Theory]
72133
[InlineData("[|var tuple = new SpaceTuple(true);|]", "Bool")]
73134
[InlineData("[|var tuple = new SpaceTuple((byte)1);|]", "Byte")]
@@ -88,25 +149,204 @@ public void Should_Fix_SimplifiedObjInited_SpaceTuple(string code, string specia
88149
[InlineData("[|var tuple = new SpaceTuple(DateTimeOffset.MinValue);|]", "DateTimeOffset")]
89150
[InlineData("[|var tuple = new SpaceTuple(TimeSpan.MinValue);|]", "TimeSpan")]
90151
[InlineData("[|var tuple = new SpaceTuple(Guid.Empty);|]", "Guid")]
91-
public void Should_Fix_VarInited_SpaceTuple(string code, string specializedTypePrefix)
152+
public void Should_Fix_GlobalStatement_VarObjInit_SpaceTuple(string code, string specializedTypePrefix)
153+
{
154+
string fix = RemoveDiagnosticSpanFromText(code.Replace("Space", specializedTypePrefix));
155+
TestCodeFix(code, fix, Namespace.OrleanSpaces_Tuples, Namespace.OrleanSpaces_Tuples_Specialized);
156+
}
157+
158+
[Fact]
159+
public void Should_Fix_LocalStatement_VarObjInit_SpaceTuple()
160+
{
161+
string code =
162+
@"class C
163+
{
164+
public C()
165+
{
166+
[|var tuple = new SpaceTuple(1);|]
167+
}
168+
}";
169+
170+
string fix =
171+
@"class C
172+
{
173+
public C()
174+
{
175+
var tuple = new IntTuple(1);
176+
}
177+
}";
178+
179+
TestCodeFix(code, fix, Namespace.OrleanSpaces_Tuples, Namespace.OrleanSpaces_Tuples_Specialized);
180+
}
181+
182+
#endregion
183+
184+
#endregion
185+
186+
#region SpaceTemplate
187+
188+
#region ObjInit
189+
190+
[Theory]
191+
[InlineData("[|SpaceTemplate template = new SpaceTemplate(true);|]", "Bool")]
192+
[InlineData("[|SpaceTemplate template = new SpaceTemplate((byte)1);|]", "Byte")]
193+
[InlineData("[|SpaceTemplate template = new SpaceTemplate((sbyte)1);|]", "SByte")]
194+
[InlineData("[|SpaceTemplate template = new SpaceTemplate('a');|]", "Char")]
195+
[InlineData("[|SpaceTemplate template = new SpaceTemplate((double)1);|]", "Double")]
196+
[InlineData("[|SpaceTemplate template = new SpaceTemplate((float)1);|]", "Float")]
197+
[InlineData("[|SpaceTemplate template = new SpaceTemplate((short)1);|]", "Short")]
198+
[InlineData("[|SpaceTemplate template = new SpaceTemplate((ushort)1);|]", "UShort")]
199+
[InlineData("[|SpaceTemplate template = new SpaceTemplate(1);|]", "Int")]
200+
[InlineData("[|SpaceTemplate template = new SpaceTemplate((uint)1);|]", "UInt")]
201+
[InlineData("[|SpaceTemplate template = new SpaceTemplate((long)1);|]", "Long")]
202+
[InlineData("[|SpaceTemplate template = new SpaceTemplate((ulong)1);|]", "ULong")]
203+
[InlineData("[|SpaceTemplate template = new SpaceTemplate((Int128)1);|]", "Huge")]
204+
[InlineData("[|SpaceTemplate template = new SpaceTemplate((UInt128)1);|]", "UHuge")]
205+
[InlineData("[|SpaceTemplate template = new SpaceTemplate((decimal)1);|]", "Decimal")]
206+
[InlineData("[|SpaceTemplate template = new SpaceTemplate(DateTime.MinValue);|]", "DateTime")]
207+
[InlineData("[|SpaceTemplate template = new SpaceTemplate(DateTimeOffset.MinValue);|]", "DateTimeOffset")]
208+
[InlineData("[|SpaceTemplate template = new SpaceTemplate(TimeSpan.MinValue);|]", "TimeSpan")]
209+
[InlineData("[|SpaceTemplate template = new SpaceTemplate(Guid.Empty);|]", "Guid")]
210+
public void Should_Fix_GlobalStatement_ObjInit_SpaceTemplate(string code, string specializedTypePrefix)
92211
{
93212
string fix = RemoveDiagnosticSpanFromText(code.Replace("Space", specializedTypePrefix));
94213
TestCodeFix(code, fix, Namespace.OrleanSpaces_Tuples, Namespace.OrleanSpaces_Tuples_Specialized);
95214
}
96215

97-
// [Theory]
98-
// [InlineData(
99-
//@"class C
100-
//{
101-
// public C()
102-
// {
103-
// [|SpaceTuple tuple = new(1);|]
104-
// }
105-
//}"
106-
//, "Int")]
107-
public void Should_Fix_SpaceTuple_1(string code, string specializedTypePrefix)
216+
[Fact]
217+
public void Should_Fix_LocalStatement_ObjInit_SpaceTemplate()
218+
{
219+
string code =
220+
@"class C
221+
{
222+
public C()
223+
{
224+
[|SpaceTemplate template = new SpaceTemplate(1);|]
225+
}
226+
}";
227+
228+
string fix =
229+
@"class C
230+
{
231+
public C()
232+
{
233+
IntTemplate template = new IntTemplate(1);
234+
}
235+
}";
236+
237+
TestCodeFix(code, fix, Namespace.OrleanSpaces_Tuples, Namespace.OrleanSpaces_Tuples_Specialized);
238+
}
239+
240+
#endregion
241+
242+
#region SimplifiedObjInit
243+
244+
[Theory]
245+
[InlineData("[|SpaceTemplate template = new(true);|]", "Bool")]
246+
[InlineData("[|SpaceTemplate template = new((byte)1);|]", "Byte")]
247+
[InlineData("[|SpaceTemplate template = new((sbyte)1);|]", "SByte")]
248+
[InlineData("[|SpaceTemplate template = new('a');|]", "Char")]
249+
[InlineData("[|SpaceTemplate template = new((double)1);|]", "Double")]
250+
[InlineData("[|SpaceTemplate template = new((float)1);|]", "Float")]
251+
[InlineData("[|SpaceTemplate template = new((short)1);|]", "Short")]
252+
[InlineData("[|SpaceTemplate template = new((ushort)1);|]", "UShort")]
253+
[InlineData("[|SpaceTemplate template = new(1);|]", "Int")]
254+
[InlineData("[|SpaceTemplate template = new((uint)1);|]", "UInt")]
255+
[InlineData("[|SpaceTemplate template = new((long)1);|]", "Long")]
256+
[InlineData("[|SpaceTemplate template = new((ulong)1);|]", "ULong")]
257+
[InlineData("[|SpaceTemplate template = new((Int128)1);|]", "Huge")]
258+
[InlineData("[|SpaceTemplate template = new((UInt128)1);|]", "UHuge")]
259+
[InlineData("[|SpaceTemplate template = new((decimal)1);|]", "Decimal")]
260+
[InlineData("[|SpaceTemplate template = new(DateTime.MinValue);|]", "DateTime")]
261+
[InlineData("[|SpaceTemplate template = new(DateTimeOffset.MinValue);|]", "DateTimeOffset")]
262+
[InlineData("[|SpaceTemplate template = new(TimeSpan.MinValue);|]", "TimeSpan")]
263+
[InlineData("[|SpaceTemplate template = new(Guid.Empty);|]", "Guid")]
264+
public void Should_Fix_GlobalStatement_SimplifiedObjInit_SpaceTemplate(string code, string specializedTypePrefix)
108265
{
109-
string fix = code.Replace("Space", specializedTypePrefix);
266+
string fix = RemoveDiagnosticSpanFromText(code.Replace("Space", specializedTypePrefix));
110267
TestCodeFix(code, fix, Namespace.OrleanSpaces_Tuples, Namespace.OrleanSpaces_Tuples_Specialized);
111268
}
269+
270+
271+
[Fact]
272+
public void Should_Fix_LocalStatement_SimplifiedObjInit_SpaceTemplate()
273+
{
274+
string code =
275+
@"class C
276+
{
277+
public C()
278+
{
279+
[|SpaceTemplate template = new(1);|]
280+
}
281+
}";
282+
283+
string fix =
284+
@"class C
285+
{
286+
public C()
287+
{
288+
IntTemplate template = new(1);
289+
}
290+
}";
291+
292+
TestCodeFix(code, fix, Namespace.OrleanSpaces_Tuples, Namespace.OrleanSpaces_Tuples_Specialized);
293+
}
294+
295+
#endregion
296+
297+
#region VarObjInit
298+
299+
[Theory]
300+
[InlineData("[|var template = new SpaceTemplate(true);|]", "Bool")]
301+
[InlineData("[|var template = new SpaceTemplate((byte)1);|]", "Byte")]
302+
[InlineData("[|var template = new SpaceTemplate((sbyte)1);|]", "SByte")]
303+
[InlineData("[|var template = new SpaceTemplate('a');|]", "Char")]
304+
[InlineData("[|var template = new SpaceTemplate((double)1);|]", "Double")]
305+
[InlineData("[|var template = new SpaceTemplate((float)1);|]", "Float")]
306+
[InlineData("[|var template = new SpaceTemplate((short)1);|]", "Short")]
307+
[InlineData("[|var template = new SpaceTemplate((ushort)1);|]", "UShort")]
308+
[InlineData("[|var template = new SpaceTemplate(1);|]", "Int")]
309+
[InlineData("[|var template = new SpaceTemplate((uint)1);|]", "UInt")]
310+
[InlineData("[|var template = new SpaceTemplate((long)1);|]", "Long")]
311+
[InlineData("[|var template = new SpaceTemplate((ulong)1);|]", "ULong")]
312+
[InlineData("[|var template = new SpaceTemplate((Int128)1);|]", "Huge")]
313+
[InlineData("[|var template = new SpaceTemplate((UInt128)1);|]", "UHuge")]
314+
[InlineData("[|var template = new SpaceTemplate((decimal)1);|]", "Decimal")]
315+
[InlineData("[|var template = new SpaceTemplate(DateTime.MinValue);|]", "DateTime")]
316+
[InlineData("[|var template = new SpaceTemplate(DateTimeOffset.MinValue);|]", "DateTimeOffset")]
317+
[InlineData("[|var template = new SpaceTemplate(TimeSpan.MinValue);|]", "TimeSpan")]
318+
[InlineData("[|var template = new SpaceTemplate(Guid.Empty);|]", "Guid")]
319+
public void Should_Fix_GlobalStatement_VarObjInit_SpaceTemplate(string code, string specializedTypePrefix)
320+
{
321+
string fix = RemoveDiagnosticSpanFromText(code.Replace("Space", specializedTypePrefix));
322+
TestCodeFix(code, fix, Namespace.OrleanSpaces_Tuples, Namespace.OrleanSpaces_Tuples_Specialized);
323+
}
324+
325+
[Fact]
326+
public void Should_Fix_LocalStatement_VarObjInit_SpaceTemplate()
327+
{
328+
string code =
329+
@"class C
330+
{
331+
public C()
332+
{
333+
[|var template = new SpaceTemplate(1);|]
334+
}
335+
}";
336+
337+
string fix =
338+
@"class C
339+
{
340+
public C()
341+
{
342+
var template = new IntTemplate(1);
343+
}
344+
}";
345+
346+
TestCodeFix(code, fix, Namespace.OrleanSpaces_Tuples, Namespace.OrleanSpaces_Tuples_Specialized);
347+
}
348+
349+
#endregion
350+
351+
#endregion
112352
}

0 commit comments

Comments
 (0)