Skip to content

Commit 4305763

Browse files
committed
chore: increase the amount of unit testing
1 parent 010024f commit 4305763

278 files changed

Lines changed: 14413 additions & 188 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/ReactiveUI.Binding.Reactive/ReactiveSchedulerExtensions.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ namespace ReactiveUI.Binding;
1313
/// Extension methods for property binding with IScheduler support.
1414
/// Requires the ReactiveUI.Binding.Reactive package for System.Reactive interop.
1515
/// </summary>
16+
[ExcludeFromCodeCoverage]
1617
public static class ReactiveSchedulerExtensions
1718
{
1819
private const string NoGeneratedBindingMessage =

src/ReactiveUI.Binding.SourceGenerators/BindingGenerator.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,26 @@ public class BindingGenerator : IIncrementalGenerator
2222
/// <inheritdoc/>
2323
public void Initialize(IncrementalGeneratorInitializationContext context)
2424
{
25+
// Emit the [ExcludeFromCodeCoverage] attribute on the partial class once,
26+
// so individual dispatch files don't duplicate it.
27+
context.RegisterPostInitializationOutput(static ctx =>
28+
{
29+
const string source = """
30+
// <auto-generated/>
31+
#pragma warning disable
32+
#nullable enable
33+
34+
namespace ReactiveUI.Binding
35+
{
36+
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
37+
internal static partial class __ReactiveUIGeneratedBindings
38+
{
39+
}
40+
}
41+
""";
42+
ctx.AddSource("GeneratedBindingsAttributes.g.cs", source);
43+
});
44+
2545
// Detect whether the consumer project supports CallerArgumentExpression (C# 10+ AND attribute available).
2646
// When supported, invocation generators use expression-text dispatch; otherwise file/line dispatch.
2747
var supportsCallerArgExpr = context.ParseOptionsProvider

src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/BindCodeGenerator.cs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -264,8 +264,8 @@ internal static void GenerateBindMethod(
264264
string vmNext = inv.HasScheduler ? "__vmSelected" : "vmBind";
265265
string viewNext = inv.HasScheduler ? "__viewSelected" : "viewBind";
266266
sb.AppendLine($$"""
267-
var {{vmNext}} = global::ReactiveUI.Binding.Observables.ObservableExtensions.Select({{vmVar}}, vmToViewConverter);
268-
var {{viewNext}} = global::ReactiveUI.Binding.Observables.ObservableExtensions.Select({{viewVar}}, viewToVmConverter);
267+
var {{vmNext}} = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Select({{vmVar}}, vmToViewConverter);
268+
var {{viewNext}} = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Select({{viewVar}}, viewToVmConverter);
269269
""");
270270
vmVar = vmNext;
271271
viewVar = viewNext;
@@ -283,20 +283,20 @@ internal static void GenerateBindMethod(
283283

284284
sb.AppendLine($$"""
285285
286-
var d1 = global::ReactiveUI.Binding.Observables.ObservableExtensions.Subscribe({{vmVar}}, value =>
286+
var d1 = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Subscribe({{vmVar}}, value =>
287287
{
288288
{{viewPropertyAccess}} = value;
289289
});
290290
291-
var __viewSkipped = global::ReactiveUI.Binding.Observables.ObservableExtensions.Skip({{viewVar}}, 1);
292-
var d2 = global::ReactiveUI.Binding.Observables.ObservableExtensions.Subscribe(__viewSkipped, value =>
291+
var __viewSkipped = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Skip({{viewVar}}, 1);
292+
var d2 = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Subscribe(__viewSkipped, value =>
293293
{
294294
{{vmSetAccess}} = value;
295295
});
296296
297-
var __vmTagged = global::ReactiveUI.Binding.Observables.ObservableExtensions.Select({{vmVar}}, v => ((object?)v, true));
298-
var __viewTagged = global::ReactiveUI.Binding.Observables.ObservableExtensions.Select(__viewSkipped, v => ((object?)v, false));
299-
var changed = global::ReactiveUI.Binding.Observables.ObservableExtensions.Merge(__vmTagged, __viewTagged);
297+
var __vmTagged = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Select({{vmVar}}, v => ((object?)v, true));
298+
var __viewTagged = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Select(__viewSkipped, v => ((object?)v, false));
299+
var changed = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Merge(__vmTagged, __viewTagged);
300300
301301
var disposable = new global::ReactiveUI.Binding.Observables.CompositeDisposable2(d1, d2);
302302
@@ -313,20 +313,20 @@ internal static void GenerateBindMethod(
313313
{
314314
sb.AppendLine($$"""
315315
316-
var d1 = global::ReactiveUI.Binding.Observables.ObservableExtensions.Subscribe(vmObs, value =>
316+
var d1 = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Subscribe(vmObs, value =>
317317
{
318318
{{viewPropertyAccess}} = value;
319319
});
320320
321-
var __viewSkipped = global::ReactiveUI.Binding.Observables.ObservableExtensions.Skip(viewObs, 1);
322-
var d2 = global::ReactiveUI.Binding.Observables.ObservableExtensions.Subscribe(__viewSkipped, value =>
321+
var __viewSkipped = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Skip(viewObs, 1);
322+
var d2 = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Subscribe(__viewSkipped, value =>
323323
{
324324
{{vmSetAccess}} = value;
325325
});
326326
327-
var __vmTagged = global::ReactiveUI.Binding.Observables.ObservableExtensions.Select(vmObs, v => ((object?)v, true));
328-
var __viewTagged = global::ReactiveUI.Binding.Observables.ObservableExtensions.Select(__viewSkipped, v => ((object?)v, false));
329-
var changed = global::ReactiveUI.Binding.Observables.ObservableExtensions.Merge(__vmTagged, __viewTagged);
327+
var __vmTagged = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Select(vmObs, v => ((object?)v, true));
328+
var __viewTagged = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Select(__viewSkipped, v => ((object?)v, false));
329+
var changed = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Merge(__vmTagged, __viewTagged);
330330
331331
var disposable = new global::ReactiveUI.Binding.Observables.CompositeDisposable2(d1, d2);
332332

src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/BindOneWayCodeGenerator.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ internal static void GenerateBindOneWayMethod(
255255
{
256256
string nextVar = inv.HasScheduler ? "__selected" : "bindObs";
257257
sb.AppendLine($$"""
258-
var {{nextVar}} = global::ReactiveUI.Binding.Observables.ObservableExtensions.Select({{currentVar}}, conversionFunc);
258+
var {{nextVar}} = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Select({{currentVar}}, conversionFunc);
259259
""");
260260
currentVar = nextVar;
261261
}
@@ -270,7 +270,7 @@ internal static void GenerateBindOneWayMethod(
270270

271271
sb.AppendLine($$"""
272272
273-
return global::ReactiveUI.Binding.Observables.ObservableExtensions.Subscribe({{currentVar}}, value =>
273+
return global::ReactiveUI.Binding.Observables.RxBindingExtensions.Subscribe({{currentVar}}, value =>
274274
{
275275
{{targetAccess}} = value;
276276
});
@@ -282,7 +282,7 @@ internal static void GenerateBindOneWayMethod(
282282
{
283283
sb.AppendLine($$"""
284284
285-
return global::ReactiveUI.Binding.Observables.ObservableExtensions.Subscribe(sourceObs, value =>
285+
return global::ReactiveUI.Binding.Observables.RxBindingExtensions.Subscribe(sourceObs, value =>
286286
{
287287
{{targetAccess}} = value;
288288
});

src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/BindTwoWayCodeGenerator.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -263,8 +263,8 @@ internal static void GenerateBindTwoWayMethod(
263263
string srcNext = inv.HasScheduler ? "__srcSelected" : "sourceBind";
264264
string tgtNext = inv.HasScheduler ? "__tgtSelected" : "targetBind";
265265
sb.AppendLine($$"""
266-
var {{srcNext}} = global::ReactiveUI.Binding.Observables.ObservableExtensions.Select({{sourceVar}}, sourceToTargetConv);
267-
var {{tgtNext}} = global::ReactiveUI.Binding.Observables.ObservableExtensions.Select({{targetVar}}, targetToSourceConv);
266+
var {{srcNext}} = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Select({{sourceVar}}, sourceToTargetConv);
267+
var {{tgtNext}} = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Select({{targetVar}}, targetToSourceConv);
268268
""");
269269
sourceVar = srcNext;
270270
targetVar = tgtNext;
@@ -282,13 +282,13 @@ internal static void GenerateBindTwoWayMethod(
282282

283283
sb.AppendLine($$"""
284284
285-
var d1 = global::ReactiveUI.Binding.Observables.ObservableExtensions.Subscribe({{sourceVar}}, value =>
285+
var d1 = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Subscribe({{sourceVar}}, value =>
286286
{
287287
{{targetAccess}} = value;
288288
});
289289
290-
var __targetSkipped = global::ReactiveUI.Binding.Observables.ObservableExtensions.Skip({{targetVar}}, 1);
291-
var d2 = global::ReactiveUI.Binding.Observables.ObservableExtensions.Subscribe(__targetSkipped, value =>
290+
var __targetSkipped = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Skip({{targetVar}}, 1);
291+
var d2 = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Subscribe(__targetSkipped, value =>
292292
{
293293
{{sourceSetAccess}} = value;
294294
});
@@ -302,13 +302,13 @@ internal static void GenerateBindTwoWayMethod(
302302
{
303303
sb.AppendLine($$"""
304304
305-
var d1 = global::ReactiveUI.Binding.Observables.ObservableExtensions.Subscribe(sourceObs, value =>
305+
var d1 = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Subscribe(sourceObs, value =>
306306
{
307307
{{targetAccess}} = value;
308308
});
309309
310-
var __targetSkipped = global::ReactiveUI.Binding.Observables.ObservableExtensions.Skip(targetObs, 1);
311-
var d2 = global::ReactiveUI.Binding.Observables.ObservableExtensions.Subscribe(__targetSkipped, value =>
310+
var __targetSkipped = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Skip(targetObs, 1);
311+
var d2 = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Subscribe(__targetSkipped, value =>
312312
{
313313
{{sourceSetAccess}} = value;
314314
});

src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/ObservationCodeGenerator.cs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ internal static void GenerateObservationMethod(
105105

106106
if (inv.HasSelector)
107107
{
108-
sb.Append(" return global::ReactiveUI.Binding.Observables.ObservableExtensions.Select(");
108+
sb.Append(" return global::ReactiveUI.Binding.Observables.RxBindingExtensions.Select(");
109109
GenerateShallowPathObservation(sb, path, classInfo, isBeforeChange);
110110
sb.AppendLine(", selector);");
111111
}
@@ -370,8 +370,8 @@ internal static void GenerateDeepChainVariable(
370370
{
371371
sb.AppendLine()
372372
.AppendLine($$"""
373-
var {{curObsVar}} = global::ReactiveUI.Binding.Observables.ObservableExtensions.Switch(
374-
global::ReactiveUI.Binding.Observables.ObservableExtensions.Select({{prevObsVar}},
373+
var {{curObsVar}} = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Switch(
374+
global::ReactiveUI.Binding.Observables.RxBindingExtensions.Select({{prevObsVar}},
375375
{{lambdaParam}} => {{lambdaParam}} != null
376376
? (global::System.IObservable<{{segType}}>)new global::ReactiveUI.Binding.Observables.PropertyChangingObservable<{{segType}}>(
377377
(global::System.ComponentModel.INotifyPropertyChanging){{lambdaParam}},
@@ -384,8 +384,8 @@ internal static void GenerateDeepChainVariable(
384384
{
385385
sb.AppendLine()
386386
.AppendLine($$"""
387-
var {{curObsVar}} = global::ReactiveUI.Binding.Observables.ObservableExtensions.Switch(
388-
global::ReactiveUI.Binding.Observables.ObservableExtensions.Select({{prevObsVar}},
387+
var {{curObsVar}} = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Switch(
388+
global::ReactiveUI.Binding.Observables.RxBindingExtensions.Select({{prevObsVar}},
389389
{{lambdaParam}} => {{lambdaParam}} != null
390390
? (global::System.IObservable<{{segType}}>)new global::ReactiveUI.Binding.Observables.PropertyObservable<{{segType}}>(
391391
{{lambdaParam}},
@@ -407,7 +407,7 @@ internal static void GenerateDeepChainVariable(
407407
else
408408
{
409409
sb.AppendLine($$"""
410-
var {{varName}} = global::ReactiveUI.Binding.Observables.ObservableExtensions.DistinctUntilChanged({{lastObsVar}});
410+
var {{varName}} = global::ReactiveUI.Binding.Observables.RxBindingExtensions.DistinctUntilChanged({{lastObsVar}});
411411
""");
412412
}
413413
}
@@ -689,8 +689,8 @@ internal static void GenerateDeepChainObservation(
689689
{
690690
sb.AppendLine()
691691
.AppendLine($$"""
692-
var {{curVar}} = global::ReactiveUI.Binding.Observables.ObservableExtensions.Switch(
693-
global::ReactiveUI.Binding.Observables.ObservableExtensions.Select({{prevVar}},
692+
var {{curVar}} = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Switch(
693+
global::ReactiveUI.Binding.Observables.RxBindingExtensions.Select({{prevVar}},
694694
{{lambdaParam}} => {{lambdaParam}} != null
695695
? (global::System.IObservable<{{segType}}>)new global::ReactiveUI.Binding.Observables.PropertyChangingObservable<{{segType}}>(
696696
(global::System.ComponentModel.INotifyPropertyChanging){{lambdaParam}},
@@ -703,8 +703,8 @@ internal static void GenerateDeepChainObservation(
703703
{
704704
sb.AppendLine()
705705
.AppendLine($$"""
706-
var {{curVar}} = global::ReactiveUI.Binding.Observables.ObservableExtensions.Switch(
707-
global::ReactiveUI.Binding.Observables.ObservableExtensions.Select({{prevVar}},
706+
var {{curVar}} = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Switch(
707+
global::ReactiveUI.Binding.Observables.RxBindingExtensions.Select({{prevVar}},
708708
{{lambdaParam}} => {{lambdaParam}} != null
709709
? (global::System.IObservable<{{segType}}>)new global::ReactiveUI.Binding.Observables.PropertyObservable<{{segType}}>(
710710
{{lambdaParam}},
@@ -726,7 +726,7 @@ internal static void GenerateDeepChainObservation(
726726
else
727727
{
728728
sb.Append($$"""
729-
return global::ReactiveUI.Binding.Observables.ObservableExtensions.DistinctUntilChanged({{lastObs}});
729+
return global::ReactiveUI.Binding.Observables.RxBindingExtensions.DistinctUntilChanged({{lastObs}});
730730
""");
731731
}
732732
}
@@ -797,8 +797,8 @@ internal static void EmitInlineObservation(
797797

798798
sb.AppendLine()
799799
.AppendLine($$"""
800-
var {{curVar}} = global::ReactiveUI.Binding.Observables.ObservableExtensions.Switch(
801-
global::ReactiveUI.Binding.Observables.ObservableExtensions.Select({{prevVar}},
800+
var {{curVar}} = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Switch(
801+
global::ReactiveUI.Binding.Observables.RxBindingExtensions.Select({{prevVar}},
802802
{{lambdaParam}} => {{lambdaParam}} != null
803803
? (global::System.IObservable<{{segType}}>)new global::ReactiveUI.Binding.Observables.PropertyObservable<{{segType}}>(
804804
{{lambdaParam}},
@@ -811,7 +811,7 @@ internal static void EmitInlineObservation(
811811

812812
string lastSeg = $"__{variableName}_s{propertyPath.Length - 1}";
813813
sb.AppendLine($$"""
814-
var {{variableName}} = global::ReactiveUI.Binding.Observables.ObservableExtensions.DistinctUntilChanged({{lastSeg}});
814+
var {{variableName}} = global::ReactiveUI.Binding.Observables.RxBindingExtensions.DistinctUntilChanged({{lastSeg}});
815815
""");
816816
}
817817
}

src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/OneWayBindCodeGenerator.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ internal static void GenerateOneWayBindMethod(
247247
{
248248
string nextVar = inv.HasScheduler ? "__selected" : "bindObs";
249249
sb.AppendLine($$"""
250-
var {{nextVar}} = global::ReactiveUI.Binding.Observables.ObservableExtensions.Select({{currentVar}}, selector);
250+
var {{nextVar}} = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Select({{currentVar}}, selector);
251251
""");
252252
currentVar = nextVar;
253253
}
@@ -262,7 +262,7 @@ internal static void GenerateOneWayBindMethod(
262262

263263
sb.AppendLine($$"""
264264
265-
var sub = global::ReactiveUI.Binding.Observables.ObservableExtensions.Subscribe({{currentVar}}, value =>
265+
var sub = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Subscribe({{currentVar}}, value =>
266266
{
267267
{{viewPropertyAccess}} = value;
268268
});
@@ -280,7 +280,7 @@ internal static void GenerateOneWayBindMethod(
280280
{
281281
sb.AppendLine($$"""
282282
283-
var sub = global::ReactiveUI.Binding.Observables.ObservableExtensions.Subscribe(sourceObs, value =>
283+
var sub = global::ReactiveUI.Binding.Observables.RxBindingExtensions.Subscribe(sourceObs, value =>
284284
{
285285
{{viewPropertyAccess}} = value;
286286
});

src/ReactiveUI.Binding.SourceGenerators/CodeGeneration/WhenAnyCodeGenerator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ internal static void GenerateSinglePropertyWhenAny(
238238

239239
// Wrap in ObservedChange and apply selector
240240
sb.Append($$"""
241-
return global::ReactiveUI.Binding.Observables.ObservableExtensions.Select(__propObs0,
241+
return global::ReactiveUI.Binding.Observables.RxBindingExtensions.Select(__propObs0,
242242
value => selector(new global::ReactiveUI.Binding.ObservedChange<{{inv.SourceTypeFullName}}, {{leafType}}>(obj, null, value)));
243243
""");
244244
}

0 commit comments

Comments
 (0)