File: Mocks\MockFactory.cs
Web Access
Project: ..\..\..\test\Microsoft.WebTools.AspireService.Tests\Microsoft.WebTools.AspireService.Tests.csproj (Microsoft.WebTools.AspireService.Tests)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using Moq;
 
namespace Aspire.Tools.Service.UnitTests;
 
public interface IMockFactory
{
    void Verify();
    object GetObject();
}
 
public class MockFactory<T> : IMockFactory where T : class
{
    public MockFactory(Mocks mocks, MockBehavior? mockBehavior)
    {
        AllMocks = mocks;
        MockObject = new Mock<T>(mockBehavior ?? MockBehavior.Strict);
    }
 
    protected Mocks AllMocks { get; }
    public Mock<T> MockObject { get; }
 
    public T Object => MockObject.Object;
 
    public virtual void Verify()
    {
        MockObject.VerifyAll();
    }
 
    public object GetObject()
    {
        return Object;
    }
}