82 lines
No EOL
3 KiB
C#
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);
|
|
}
|
|
}
|
|
} |