using e_suite.API.Common;
using e_suite.Messaging.Common;
using e_suite.UnitTestCore;
using Moq;

namespace e_suite.Modules.SiteManager.UnitTests.Helpers;

public class SiteManagerTestBase : TestBase
{
    protected FakeSiteManagerRepository SiteManagerRepository { get; set; } = null!;
    protected FakeOrganisationManagerRepository OrganisationManagerRepository { get; set; } = null!;
    protected Mock<IEFlowSyncMessageSender> EFlowSyncMessageSenderMock { get; set; } = null!;
    protected ISiteManager SiteManager { get; set; } = null!;

    public override async Task Setup()
    {
        await base.Setup();

        SiteManagerRepository = new FakeSiteManagerRepository();
        OrganisationManagerRepository = new FakeOrganisationManagerRepository();
        EFlowSyncMessageSenderMock = new Mock<IEFlowSyncMessageSender>();

        SiteManager = new SiteManager(SiteManagerRepository, OrganisationManagerRepository, EFlowSyncMessageSenderMock.Object);
    }
}