Skip to content

Commit c0a9466

Browse files
committed
more tests
1 parent d1c0dcf commit c0a9466

3 files changed

Lines changed: 1070 additions & 0 deletions

File tree

Lines changed: 351 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,351 @@
1+
using RoyalCode.SmartSelector.Tests.Models.FooBarBaz.Bazs;
2+
using RoyalCode.SmartSelector.Tests.Models.FooBarBaz.Foos;
3+
using System.Linq.Expressions;
4+
5+
namespace RoyalCode.SmartSelector.Tests.Models.FooBarBaz.Base
6+
{
7+
public abstract class Base
8+
{
9+
public required int Id { get; set; }
10+
}
11+
12+
public class Derived : Base
13+
{
14+
public required string Name { get; set; }
15+
}
16+
}
17+
18+
namespace RoyalCode.SmartSelector.Tests.Models.FooBarBaz.Foos
19+
{
20+
using RoyalCode.SmartSelector.Tests.Models.FooBarBaz.Bars;
21+
using RoyalCode.SmartSelector.Tests.Models.FooBarBaz.Base;
22+
23+
public class Foo : Derived
24+
{
25+
public string Description1 { get; set; } = null!;
26+
public string Description2 { get; set; }
27+
public string? Description3 { get; set; }
28+
public string? Description4 { get; set; }
29+
30+
public int Value1 { get; set; }
31+
public int Value2 { get; set; }
32+
public int? Value3 { get; set; }
33+
public int? Value4 { get; set; }
34+
35+
public IReadOnlyCollection<Bar> Bars1 { get; set; } = null!;
36+
public IReadOnlyCollection<Bar> Bars2 { get; set; }
37+
public IReadOnlyCollection<Bar>? Bars3 { get; set; }
38+
public IReadOnlyCollection<Bar>? Bars4 { get; set; }
39+
40+
public IEnumerable<Baz> Bazs1 { get; set; } = null!;
41+
public IEnumerable<Baz> Bazs2 { get; set; }
42+
public IEnumerable<Baz>? Bazs3 { get; set; }
43+
public IEnumerable<Baz>? Bazs4 { get; set; }
44+
}
45+
46+
}
47+
48+
namespace RoyalCode.SmartSelector.Tests.Models.FooBarBaz.Bars
49+
{
50+
public class Bar
51+
{
52+
public Baz Baz1 { get; set; } = null!;
53+
public Baz Baz2 { get; set; } = null!;
54+
public Baz? Baz3 { get; set; } = null!;
55+
public Baz? Baz4 { get; set; } = null!;
56+
}
57+
}
58+
59+
namespace RoyalCode.SmartSelector.Tests.Models.FooBarBaz.Bazs
60+
{
61+
public class Baz
62+
{
63+
public BazType Type1 { get; set; }
64+
public BazType Type2 { get; set; }
65+
public BazType? Type3 { get; set; }
66+
public BazType? Type4 { get; set; }
67+
68+
public BazType Type5 { get; set; }
69+
public BazType Type6 { get; set; }
70+
public BazType? Type7 { get; set; }
71+
public BazType? Type8 { get; set; }
72+
}
73+
74+
public enum BazType
75+
{
76+
Type1,
77+
Type2,
78+
Type3
79+
}
80+
}
81+
82+
namespace RoyalCode.SmartSelector.Tests.Models.FooBarBaz.Dtos
83+
{
84+
using RoyalCode.SmartSelector.Tests.Models.FooBarBaz.Base;
85+
using RoyalCode.SmartSelector.Tests.Models.FooBarBaz.Bazs;
86+
using RoyalCode.SmartSelector.Tests.Models.FooBarBaz.Foos;
87+
88+
[AutoSelect<Foo>]
89+
public partial class FooDto : Derived
90+
{
91+
public string Description1 { get; set; } = null!;
92+
public string? Description2 { get; set; }
93+
public string Description3 { get; set; } = null!;
94+
public string? Description4 { get; set; }
95+
96+
public int Value1 { get; set; }
97+
public int? Value2 { get; set; }
98+
public int Value3 { get; set; }
99+
public int? Value4 { get; set; }
100+
101+
public IReadOnlyCollection<BarDto> Bars1 { get; set; } = null!;
102+
public IReadOnlyCollection<BarDto>? Bars2 { get; set; }
103+
public IReadOnlyCollection<BarDto> Bars3 { get; set; } = null!;
104+
public IReadOnlyCollection<BarDto>? Bars4 { get; set; }
105+
106+
public IEnumerable<BazDto> Bazs1 { get; set; } = null!;
107+
public IEnumerable<BazDto>? Bazs2 { get; set; }
108+
public IEnumerable<BazDto> Bazs3 { get; set; } = null!;
109+
public IEnumerable<BazDto>? Bazs4 { get; set; }
110+
}
111+
112+
public class BarDto
113+
{
114+
public BazDto Baz1 { get; set; } = null!;
115+
public BazDto? Baz2 { get; set; } = null!;
116+
public BazDto Baz3 { get; set; } = null!;
117+
public BazDto? Baz4 { get; set; } = null!;
118+
}
119+
120+
public class BazDto
121+
{
122+
public BazType Type1 { get; set; }
123+
public BazType? Type2 { get; set; }
124+
public BazType Type3 { get; set; }
125+
public BazType? Type4 { get; set; }
126+
127+
public BazTypeDto Type5 { get; set; }
128+
public BazTypeDto? Type6 { get; set; }
129+
public BazTypeDto Type7 { get; set; }
130+
public BazTypeDto? Type8 { get; set; }
131+
}
132+
133+
public enum BazTypeDto
134+
{
135+
Type1,
136+
Type2,
137+
Type3
138+
}
139+
}
140+
141+
// expected partial class FooDto
142+
143+
namespace RoyalCode.SmartSelector.Tests.Models.FooBarBaz.Dtos
144+
{
145+
public partial class FooDto
146+
{
147+
private static Func<Foo, FooDto> selectFooFunc;
148+
149+
public static Expression<Func<Foo, FooDto>> SelectEntityWithSubSelectsAndCollectionsExpression { get; } = a => new FooDto
150+
{
151+
Id = a.Id,
152+
Name = a.Name,
153+
Description1 = a.Description1,
154+
Description2 = a.Description2,
155+
Description3 = a.Description3,
156+
Description4 = a.Description4,
157+
Value1 = a.Value1,
158+
Value2 = a.Value2,
159+
Value3 = a.Value3.HasValue ? a.Value3.Value : default,
160+
Value4 = a.Value4,
161+
Bars1 = a.Bars1.Select(b => new BarDto
162+
{
163+
Baz1 = new BazDto
164+
{
165+
Type1 = b.Baz1.Type1,
166+
Type2 = b.Baz1.Type2,
167+
Type3 = b.Baz1.Type3.HasValue ? b.Baz1.Type3.Value : default,
168+
Type4 = b.Baz1.Type4,
169+
Type5 = (BazTypeDto)b.Baz1.Type5,
170+
Type6 = (BazTypeDto?)b.Baz1.Type6,
171+
Type7 = (BazTypeDto)b.Baz1.Type7,
172+
Type8 = (BazTypeDto?)b.Baz1.Type8
173+
},
174+
Baz2 = new BazDto
175+
{
176+
Type1 = b.Baz2.Type1,
177+
Type2 = b.Baz2.Type2,
178+
Type3 = b.Baz2.Type3.HasValue ? b.Baz2.Type3.Value : default,
179+
Type4 = b.Baz2.Type4,
180+
Type5 = (BazTypeDto)b.Baz2.Type5,
181+
Type6 = (BazTypeDto?)b.Baz2.Type6,
182+
Type7 = (BazTypeDto)b.Baz2.Type7,
183+
Type8 = (BazTypeDto?)b.Baz2.Type8
184+
},
185+
Baz3 = new BazDto
186+
{
187+
Type1 = b.Baz3.Type1,
188+
Type2 = b.Baz3.Type2,
189+
Type3 = b.Baz3.Type3.HasValue ? b.Baz3.Type3.Value : default,
190+
Type4 = b.Baz3.Type4,
191+
Type5 = (BazTypeDto)b.Baz3.Type5,
192+
Type6 = (BazTypeDto?)b.Baz3.Type6,
193+
Type7 = (BazTypeDto)b.Baz3.Type7,
194+
Type8 = (BazTypeDto?)b.Baz3.Type8
195+
},
196+
Baz4 = new BazDto
197+
{
198+
Type1 = b.Baz4.Type1,
199+
Type2 = b.Baz4.Type2,
200+
Type3 = b.Baz4.Type3.HasValue ? b.Baz4.Type3.Value : default,
201+
Type4 = b.Baz4.Type4,
202+
Type5 = (BazTypeDto)b.Baz4.Type5,
203+
Type6 = (BazTypeDto?)b.Baz4.Type6,
204+
Type7 = (BazTypeDto)b.Baz4.Type7,
205+
Type8 = (BazTypeDto?)b.Baz4.Type8
206+
}
207+
}).ToList(),
208+
Bars2 = a.Bars2.Select(b => new BarDto
209+
{
210+
Baz1 = new BazDto
211+
{
212+
Type1 = b.Baz1.Type1,
213+
Type2 = b.Baz1.Type2,
214+
Type3 = b.Baz1.Type3.HasValue ? b.Baz1.Type3.Value : default,
215+
Type4 = b.Baz1.Type4,
216+
Type5 = (BazTypeDto)b.Baz1.Type5,
217+
Type6 = (BazTypeDto?)b.Baz1.Type6,
218+
Type7 = (BazTypeDto)b.Baz1.Type7,
219+
Type8 = (BazTypeDto?)b.Baz1.Type8
220+
},
221+
Baz2 = new BazDto
222+
{
223+
Type1 = b.Baz2.Type1,
224+
Type2 = b.Baz2.Type2,
225+
Type3 = b.Baz2.Type3.HasValue ? b.Baz2.Type3.Value : default,
226+
Type4 = b.Baz2.Type4,
227+
Type5 = (BazTypeDto)b.Baz2.Type5,
228+
Type6 = (BazTypeDto?)b.Baz2.Type6,
229+
Type7 = (BazTypeDto)b.Baz2.Type7,
230+
Type8 = (BazTypeDto?)b.Baz2.Type8
231+
},
232+
Baz3 = new BazDto
233+
{
234+
Type1 = b.Baz3.Type1,
235+
Type2 = b.Baz3.Type2,
236+
Type3 = b.Baz3.Type3.HasValue ? b.Baz3.Type3.Value : default,
237+
Type4 = b.Baz3.Type4,
238+
Type5 = (BazTypeDto)b.Baz3.Type5,
239+
Type6 = (BazTypeDto?)b.Baz3.Type6,
240+
Type7 = (BazTypeDto)b.Baz3.Type7,
241+
Type8 = (BazTypeDto?)b.Baz3.Type8
242+
},
243+
Baz4 = new BazDto
244+
{
245+
Type1 = b.Baz4.Type1,
246+
Type2 = b.Baz4.Type2,
247+
Type3 = b.Baz4.Type3.HasValue ? b.Baz4.Type3.Value : default,
248+
Type4 = b.Baz4.Type4,
249+
Type5 = (BazTypeDto)b.Baz4.Type5,
250+
Type6 = (BazTypeDto?)b.Baz4.Type6,
251+
Type7 = (BazTypeDto)b.Baz4.Type7,
252+
Type8 = (BazTypeDto?)b.Baz4.Type8
253+
}
254+
}).ToList(),
255+
Bars3 = a.Bars3.Select(b => new BarDto
256+
{
257+
Baz1 = new BazDto
258+
{
259+
Type1 = b.Baz1.Type1,
260+
Type2 = b.Baz1.Type2,
261+
Type3 = b.Baz1.Type3.HasValue ? b.Baz1.Type3.Value : default,
262+
Type4 = b.Baz1.Type4,
263+
Type5 = (BazTypeDto)b.Baz1.Type5,
264+
Type6 = (BazTypeDto?)b.Baz1.Type6,
265+
Type7 = (BazTypeDto)b.Baz1.Type7,
266+
Type8 = (BazTypeDto?)b.Baz1.Type8
267+
},
268+
Baz2 = new BazDto
269+
{
270+
Type1 = b.Baz2.Type1,
271+
Type2 = b.Baz2.Type2,
272+
Type3 = b.Baz2.Type3.HasValue ? b.Baz2.Type3.Value : default,
273+
Type4 = b.Baz2.Type4,
274+
Type5 = (BazTypeDto)b.Baz2.Type5,
275+
Type6 = (BazTypeDto?)b.Baz2.Type6,
276+
Type7 = (BazTypeDto)b.Baz2.Type7,
277+
Type8 = (BazTypeDto?)b.Baz2.Type8
278+
},
279+
Baz3 = new BazDto
280+
{
281+
Type1 = b.Baz3.Type1,
282+
Type2 = b.Baz3.Type2,
283+
Type3 = b.Baz3.Type3.HasValue ? b.Baz3.Type3.Value : default,
284+
Type4 = b.Baz3.Type4,
285+
Type5 = (BazTypeDto)b.Baz3.Type5,
286+
Type6 = (BazTypeDto?)b.Baz3.Type6,
287+
Type7 = (BazTypeDto)b.Baz3.Type7,
288+
Type8 = (BazTypeDto?)b.Baz3.Type8
289+
},
290+
Baz4 = new BazDto
291+
{
292+
Type1 = b.Baz4.Type1,
293+
Type2 = b.Baz4.Type2,
294+
Type3 = b.Baz4.Type3.HasValue ? b.Baz4.Type3.Value : default,
295+
Type4 = b.Baz4.Type4,
296+
Type5 = (BazTypeDto)b.Baz4.Type5,
297+
Type6 = (BazTypeDto?)b.Baz4.Type6,
298+
Type7 = (BazTypeDto)b.Baz4.Type7,
299+
Type8 = (BazTypeDto?)b.Baz4.Type8
300+
}
301+
}).ToList(),
302+
Bars4 = a.Bars4.Select(b => new BarDto
303+
{
304+
Baz1 = new BazDto
305+
{
306+
Type1 = b.Baz1.Type1,
307+
Type2 = b.Baz1.Type2,
308+
Type3 = b.Baz1.Type3.HasValue ? b.Baz1.Type3.Value : default,
309+
Type4 = b.Baz1.Type4,
310+
Type5 = (BazTypeDto)b.Baz1.Type5,
311+
Type6 = (BazTypeDto?)b.Baz1.Type6,
312+
Type7 = (BazTypeDto)b.Baz1.Type7,
313+
Type8 = (BazTypeDto?)b.Baz1.Type8
314+
},
315+
Baz2 = new BazDto
316+
{
317+
Type1 = b.Baz2.Type1,
318+
Type2 = b.Baz2.Type2,
319+
Type3 = b.Baz2.Type3.HasValue ? b.Baz2.Type3.Value : default,
320+
Type4 = b.Baz2.Type4,
321+
Type5 = (BazTypeDto)b.Baz2.Type5,
322+
Type6 = (BazTypeDto?)b.Baz2.Type6,
323+
Type7 = (BazTypeDto)b.Baz2.Type7,
324+
Type8 = (BazTypeDto?)b.Baz2.Type8
325+
},
326+
Baz3 = new BazDto
327+
{
328+
Type1 = b.Baz3.Type1,
329+
Type2 = b.Baz3.Type2,
330+
Type3 = b.Baz3.Type3.HasValue ? b.Baz3.Type3.Value : default,
331+
Type4 = b.Baz3.Type4,
332+
Type5 = (BazTypeDto)b.Baz3.Type5,
333+
Type6 = (BazTypeDto?)b.Baz3.Type6,
334+
Type7 = (BazTypeDto)b.Baz3.Type7,
335+
Type8 = (BazTypeDto?)b.Baz3.Type8
336+
},
337+
Baz4 = new BazDto
338+
{
339+
Type1 = b.Baz4.Type1,
340+
Type2 = b.Baz4.Type2,
341+
Type3 = b.Baz4.Type3.HasValue ? b.Baz4.Type3.Value : default,
342+
Type4 = b.Baz4.Type4,
343+
Type5 = (BazTypeDto)b.Baz4.Type5,
344+
Type6 = (BazTypeDto?)b.Baz4.Type6,
345+
Type7 = (BazTypeDto)b.Baz4.Type7,
346+
Type8 = (BazTypeDto?)b.Baz4.Type8
347+
}
348+
}).ToList()
349+
};
350+
}
351+
}

0 commit comments

Comments
 (0)