< Summary

Information
Class: MyNet.UI.Dialogs.ContentDialogs.HeadlessDialogStrategy
Assembly: MyNet.UI
File(s): https://raw.githubusercontent.com/sandre58/MyNet/85372080fe102cd9ee155ceab49ae000e7f66103/src/MyNet.UI/Dialogs/ContentDialogs/HeadlessDialogStrategy.cs
Tag: 323_28699572109
Line coverage
75%
Covered lines: 6
Uncovered lines: 2
Coverable lines: 8
Total lines: 46
Line coverage: 75%
Branch coverage
50%
Covered branches: 1
Total branches: 2
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_Priority()100%11100%
CanHandle(...)100%11100%
ShowAsync(...)50%2280%
CloseAsync(...)100%210%

File(s)

https://raw.githubusercontent.com/sandre58/MyNet/85372080fe102cd9ee155ceab49ae000e7f66103/src/MyNet.UI/Dialogs/ContentDialogs/HeadlessDialogStrategy.cs

#LineLine coverage
 1// -----------------------------------------------------------------------
 2// <copyright file="HeadlessDialogStrategy.cs" company="Stéphane ANDRE">
 3// Copyright (c) Stéphane ANDRE. All rights reserved.
 4// </copyright>
 5// -----------------------------------------------------------------------
 6
 7using System.Threading;
 8using System.Threading.Tasks;
 9using MyNet.UI.Dialogs.MessageBox;
 10
 11namespace MyNet.UI.Dialogs.ContentDialogs;
 12
 13/// <summary>
 14/// Fallback strategy for headless environments (unit tests, services without UI).
 15/// Message boxes complete immediately with <see cref="IMessageBox.DefaultResult"/>.
 16/// Other dialogs complete with a dismissed outcome.
 17/// </summary>
 18public sealed class HeadlessDialogStrategy : IDialogStrategy
 19{
 20    /// <summary>Priority used so platform presenters override this fallback.</summary>
 21    public const int FallbackPriority = -1000;
 22
 23    /// <inheritdoc />
 924    public int Priority => FallbackPriority;
 25
 26    /// <inheritdoc />
 927    public bool CanHandle(IDialog dialog, DialogOptions? options) => true;
 28
 29    /// <inheritdoc />
 30    public Task<DialogResult<bool>> ShowAsync(IDialog dialog, DialogOptions options, CancellationToken ct = default)
 31    {
 632        ct.ThrowIfCancellationRequested();
 33
 634        if (dialog is MessageBoxViewModel messageBox)
 35        {
 636            messageBox.ApplyResult(messageBox.DefaultResult);
 637            return Task.FromResult(DialogResult.Ok());
 38        }
 39
 040        return Task.FromResult(DialogResult.Dismiss());
 41    }
 42
 43    /// <inheritdoc />
 044    public Task CloseAsync(IDialog dialog) => Task.CompletedTask;
 45}
 46