using ZB.MOM.WW.OtOpcUa.Commons.Browsing;
namespace ZB.MOM.WW.OtOpcUa.AdminUI.Tests.Browsing;
/// Test double for . CanBrowse is driven by a
/// predicate (default: never); OpenAsync delegates to a handler or returns a fresh session.
internal sealed class FakeUniversalDriverBrowser : IUniversalDriverBrowser
{
/// CanBrowse gate. Defaults to "no universal affordance for any type".
public Func CanBrowsePredicate { get; init; } = (_, _) => false;
/// OpenAsync behavior. Defaults to a fresh FakeBrowseSession.
public Func> OpenHandler { get; init; } =
(_, _, _) => Task.FromResult(new FakeBrowseSession());
public bool CanBrowse(string driverType, string configJson) => CanBrowsePredicate(driverType, configJson);
public Task OpenAsync(string driverType, string configJson, CancellationToken ct) =>
OpenHandler(driverType, configJson, ct);
}