JD2022-TU1/main/tools/framework/Shuttle/TestsToMove/ManagersTests/AfterEffectsItemProvider_Tests.cs

82 lines
No EOL
3 KiB
C#

using Microsoft.AspNet.SignalR;
using NSubstitute;
using NUnit.Framework;
using Shuttle.Api.AfterEffectsDTO.Items;
using Shuttle.Api.ClientAPI;
using Shuttle.Api.CommunicationDTO.IdentityDTO;
using Shuttle.Servers.Managers.AsyncProviders;
using Shuttle.Servers.Managers.Clients;
using Shuttle.Servers.Managers.Items;
using Shuttle.TestsToMove.Mocks;
namespace Shuttle.TestsToMove.ManagersTests
{
[TestFixture]
public class AfterEffectsItemProvider_Tests
{
private const int TestTimeout = 10000; // max duration of a unit test
private const string RequestToken = "<dummyToken>";
private const string ConnectionId = "<dummyConnectionId>";
private const int ItemId = 1;
private readonly MockLogger _logger = new MockLogger();
private IAsyncProvider _asyncProvider;
private IClientManager _clientManager;
private AdobeAppInfo _adobeAppInfo;
private IHubContext<IAfterEffectsClient> _aeHubContext;
private IAfterEffectsClient _client;
[SetUp]
public void SetUp()
{
_adobeAppInfo = new AdobeAppInfo()
{
ShuttleId = "NickyMcNickname",
HostEnvironment = new HostEnvironment()
{
AppId = "AEFT",
AppVersion = "15.0"
}
};
_asyncProvider = Substitute.For<IAsyncProvider>();
_asyncProvider.CreateResourceRequest(Arg.Any<string>()).Returns(RequestToken);
_client = Substitute.For<IAfterEffectsClient>();
_aeHubContext = Substitute.For<IHubContext<IAfterEffectsClient>>();
_aeHubContext.Clients.Client(Arg.Any<string>()).ReturnsForAnyArgs(_client);
_clientManager = new ClientManager(_logger, _aeHubContext, null);
_clientManager.RegisterConnection(ConnectionId, _adobeAppInfo);
}
[Test]
[Timeout(TestTimeout)]
public void GetCompositionAsync_ValidParameters_ReturnsComp()
{
var comp = new CompItem();
_asyncProvider.GetResource<CompItem>(RequestToken).Returns(comp);
AfterEffectsItemProvider itemManager = new AfterEffectsItemProvider(_logger, _clientManager, _asyncProvider);
CompItem res = itemManager.GetCompItemAsync(ConnectionId, ItemId).Result;
_client.Received().RequestCompItem(RequestToken, Arg.Any<int>());
Assert.AreEqual(comp, res);
}
[Test]
[Timeout(TestTimeout)]
public void GetCurrentFileAsync_ValidParameters_ReturnsFile()
{
string projectFile = "MyProjectFile.txt";
_asyncProvider.GetResource<string>(RequestToken).Returns(projectFile);
AfterEffectsItemProvider itemManager = new AfterEffectsItemProvider(_logger, _clientManager, _asyncProvider);
string res = itemManager.GetCurrentFileAsync(ConnectionId).Result;
_client.Received().RequestProjectFile(RequestToken);
Assert.AreEqual(projectFile, res);
}
}
}