feat: operations unit tests

This commit is contained in:
Mikhail Shabanov committed 2021-03-12 17:46:28 +01:00
1 parent e1cc18a888
commit a9eab26a6d
13 files changed
+672 -2

No files matched your search

@@ -0,0 +1,46 @@
using System.IO;
using System.Threading.Tasks;
using FluentAssertions;
using Newtonsoft.Json;
using NUnit.Framework;
using WotBlitzStatisticsPro.Logic.AccountInformationPipeline;
using WotBlitzStatisticsPro.Logic.AccountInformationPipeline.OperationContext;
using WotBlitzStatisticsPro.Logic.AccountInformationPipeline.Operations;
namespace WotBlitzStatisticsPro.Tests.OperationStepsTests
{
[TestFixture]
public class ReadAccountInfoFromDbOperationTest: OperationsStepsTestBase
{
private ReadAccountInfoFromDbOperation _operation;
private AccountInformationPipelineContextData _contextData;
[SetUp]
public void Init()
{
InitDataAccessors();
_operation = new ReadAccountInfoFromDbOperation(
WargamingDataAccessorMock.Object);
_contextData = new AccountInformationPipelineContextData();
}
[Test]
public async Task ShouldReadAccountInfoFromDataAccessor()
{
var context = new OperationContext(new AccountRequest(AccountId, Realm, Language));
context.AddOrReplace(_contextData);
await _operation.Invoke(context, null);
_contextData.DbAccountInfo.Should().NotBeNull();
var accountInfoSerialized = JsonConvert.SerializeObject(_contextData.DbAccountInfo);
var expectedAccountInfo =
await File.ReadAllTextAsync($"{TestContext.CurrentContext.TestDirectory}\\Fixtures\\MappedAccountInfo.json");
accountInfoSerialized.Should().Be(expectedAccountInfo);
}
}
}