File: CommandTests\Workload\Search\MockWorkloadResolver.cs
Web Access
Project: ..\..\..\test\dotnet.Tests\dotnet.Tests.csproj (dotnet.Tests)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
#nullable disable
 
using Microsoft.NET.Sdk.WorkloadManifestReader;
 
namespace Microsoft.DotNet.Cli.Workload.Search.Tests
{
    public class MockWorkloadResolver : IWorkloadResolver
    {
        private readonly IEnumerable<WorkloadResolver.WorkloadInfo> _availableWorkloads;
        private readonly IEnumerable<WorkloadManifestInfo> _installedManifests;
        private readonly Func<WorkloadId, IEnumerable<WorkloadPackId>> _getPacksInWorkload;
        private readonly Func<WorkloadPackId, WorkloadResolver.PackInfo> _getPackInfo;
        private readonly Func<WorkloadId, WorkloadManifest> _getManifest;
 
        public MockWorkloadResolver(
            IEnumerable<WorkloadResolver.WorkloadInfo> availableWorkloads,
            IEnumerable<WorkloadManifestInfo> installedManifests = null,
            Func<WorkloadId, IEnumerable<WorkloadPackId>> getPacks = null,
            Func<WorkloadPackId, WorkloadResolver.PackInfo> getPackInfo = null,
            Func<WorkloadId, WorkloadManifest> getManifest = null)
        {
            _availableWorkloads = availableWorkloads;
            _installedManifests = installedManifests;
            _getPacksInWorkload = getPacks;
            _getPackInfo = getPackInfo;
            _getManifest = getManifest;
        }
 
        public IEnumerable<WorkloadResolver.WorkloadInfo> GetAvailableWorkloads() => _availableWorkloads;
 
        public IEnumerable<WorkloadResolver.PackInfo> GetInstalledWorkloadPacksOfKind(WorkloadPackKind kind) => throw new NotImplementedException();
        public IEnumerable<WorkloadPackId> GetPacksInWorkload(WorkloadId workloadId) => _getPacksInWorkload?.Invoke(workloadId) ?? throw new NotImplementedException();
        public IEnumerable<WorkloadResolver.WorkloadInfo> GetExtendedWorkloads(IEnumerable<WorkloadId> workloadIds) => throw new NotImplementedException();
 
        public ISet<WorkloadResolver.WorkloadInfo> GetWorkloadSuggestionForMissingPacks(IList<WorkloadPackId> packId, out ISet<WorkloadPackId> unsatisfiablePacks) => throw new NotImplementedException();
        public void RefreshWorkloadManifests() { /* noop */ }
        public WorkloadResolver.PackInfo TryGetPackInfo(WorkloadPackId packId) => _getPackInfo?.Invoke(packId) ?? throw new NotImplementedException();
        public bool IsPlatformIncompatibleWorkload(WorkloadId workloadId) => throw new NotImplementedException();
        public string GetManifestVersion(string manifestId) => throw new NotImplementedException();
        public string GetManifestFeatureBand(string manifestId) => throw new NotImplementedException();
        public IEnumerable<WorkloadManifestInfo> GetInstalledManifests() => _installedManifests ?? throw new NotImplementedException();
        public IWorkloadResolver CreateOverlayResolver(IWorkloadManifestProvider overlayManifestProvider) => throw new NotImplementedException();
        public string GetSdkFeatureBand() => "8.0.100";
        public IWorkloadManifestProvider.WorkloadVersionInfo GetWorkloadVersion() => new IWorkloadManifestProvider.WorkloadVersionInfo("8.0.100.2");
        public IEnumerable<WorkloadId> GetUpdatedWorkloads(WorkloadResolver advertisingManifestResolver, IEnumerable<WorkloadId> installedWorkloads) => throw new NotImplementedException();
        WorkloadResolver IWorkloadResolver.CreateOverlayResolver(IWorkloadManifestProvider overlayManifestProvider) => throw new NotImplementedException();
        WorkloadManifest IWorkloadResolver.GetManifestFromWorkload(WorkloadId workloadId) => _getManifest?.Invoke(workloadId) ?? throw new NotImplementedException();
        public IWorkloadManifestProvider GetWorkloadManifestProvider() => throw new NotImplementedException();
    }
}