mirror of
https://github.com/DrMboga/WotBlitzStatisticsBlazor.git
synced 2026-10-21 02:17:20 +02:00
103 lines
4.6 KiB
C#
103 lines
4.6 KiB
C#
using System.Threading.Tasks;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Logging;
|
|
using Moq;
|
|
using NUnit.Framework;
|
|
using WotBlitzStatisticsPro.Common.Model;
|
|
using WotBlitzStatisticsPro.Logic;
|
|
using WotBlitzStatisticsPro.Logic.Dictionaries;
|
|
|
|
namespace WotBlitzStatisticsPro.Tests.DictionariesTests
|
|
{
|
|
[TestFixture]
|
|
public class DictionariesServiceTests
|
|
{
|
|
private Mock<StaticDictionariesUpdater> _staticDictionaryUpdaterMock;
|
|
private Mock<AchievementsDictionaryUpdater> _achievementsDictionaryUpdaterMock;
|
|
private Mock<VehiclesDictionaryUpdater> _vehiclesDictionaryUpdaterMock;
|
|
|
|
private IWargamingDictionaries _wargamingDictionaries;
|
|
|
|
[SetUp]
|
|
public void Init()
|
|
{
|
|
_staticDictionaryUpdaterMock = new Mock<StaticDictionariesUpdater>();
|
|
_achievementsDictionaryUpdaterMock = new Mock<AchievementsDictionaryUpdater>();
|
|
_vehiclesDictionaryUpdaterMock = new Mock<VehiclesDictionaryUpdater>();
|
|
|
|
|
|
_staticDictionaryUpdaterMock.Setup(d => d.Update()).ReturnsAsync(new UpdateDictionariesResponseItem());
|
|
_achievementsDictionaryUpdaterMock.Setup(d => d.Update())
|
|
.ReturnsAsync(new UpdateDictionariesResponseItem());
|
|
_vehiclesDictionaryUpdaterMock.Setup(d => d.Update()).ReturnsAsync(new UpdateDictionariesResponseItem());
|
|
|
|
var serviceProvider = new ServiceCollection();
|
|
|
|
serviceProvider.AddSingleton(_staticDictionaryUpdaterMock.Object);
|
|
serviceProvider.AddSingleton(_achievementsDictionaryUpdaterMock.Object);
|
|
serviceProvider.AddSingleton(_vehiclesDictionaryUpdaterMock.Object);
|
|
|
|
WotBlitzStatisticsLogicInstaller.RegisterDictionariesFactoryMethod(serviceProvider);
|
|
|
|
var services = serviceProvider.BuildServiceProvider();
|
|
|
|
_wargamingDictionaries = new WargamingDictionaries(services.GetService<DictionariesUpdaterResolver>(),
|
|
(new Mock<ILogger<WargamingDictionaries>>()).Object);
|
|
}
|
|
|
|
[Test]
|
|
public async Task ShouldCallOnlyStaticDictionariesUpdater()
|
|
{
|
|
var updateResult = await _wargamingDictionaries.UpdateDictionaries(new UpdateDictionariesRequest
|
|
{DictionaryTypes = DictionaryType.StaticDictionaries});
|
|
|
|
_staticDictionaryUpdaterMock.Verify(u => u.Update(), Times.Once);
|
|
_achievementsDictionaryUpdaterMock.Verify(u => u.Update(), Times.Never);
|
|
_vehiclesDictionaryUpdaterMock.Verify(u => u.Update(), Times.Never);
|
|
}
|
|
|
|
[Test]
|
|
public async Task ShouldCallOnlyAchievementsDictionariesUpdater()
|
|
{
|
|
var updateResult = await _wargamingDictionaries.UpdateDictionaries(new UpdateDictionariesRequest
|
|
{DictionaryTypes = DictionaryType.Achievements});
|
|
|
|
_staticDictionaryUpdaterMock.Verify(u => u.Update(), Times.Never);
|
|
_achievementsDictionaryUpdaterMock.Verify(u => u.Update(), Times.Once);
|
|
_vehiclesDictionaryUpdaterMock.Verify(u => u.Update(), Times.Never);
|
|
}
|
|
|
|
[Test]
|
|
public async Task ShouldCallOnlyVehiclesDictionariesUpdater()
|
|
{
|
|
var updateResult = await _wargamingDictionaries.UpdateDictionaries(new UpdateDictionariesRequest
|
|
{DictionaryTypes = DictionaryType.Vehicles});
|
|
|
|
_staticDictionaryUpdaterMock.Verify(u => u.Update(), Times.Never);
|
|
_achievementsDictionaryUpdaterMock.Verify(u => u.Update(), Times.Never);
|
|
_vehiclesDictionaryUpdaterMock.Verify(u => u.Update(), Times.Once);
|
|
}
|
|
|
|
[Test]
|
|
public async Task ShouldCallOnlyVehiclesAndAchievementsDictionariesUpdater()
|
|
{
|
|
var updateResult = await _wargamingDictionaries.UpdateDictionaries(new UpdateDictionariesRequest
|
|
{DictionaryTypes = DictionaryType.AchievementsAndVehicles});
|
|
|
|
_staticDictionaryUpdaterMock.Verify(u => u.Update(), Times.Never);
|
|
_achievementsDictionaryUpdaterMock.Verify(u => u.Update(), Times.Once);
|
|
_vehiclesDictionaryUpdaterMock.Verify(u => u.Update(), Times.Once);
|
|
}
|
|
|
|
[Test]
|
|
public async Task ShouldCallAllDictionariesUpdater()
|
|
{
|
|
var updateResult = await _wargamingDictionaries.UpdateDictionaries(new UpdateDictionariesRequest
|
|
{DictionaryTypes = DictionaryType.All});
|
|
|
|
_staticDictionaryUpdaterMock.Verify(u => u.Update(), Times.Once);
|
|
_achievementsDictionaryUpdaterMock.Verify(u => u.Update(), Times.Once);
|
|
_vehiclesDictionaryUpdaterMock.Verify(u => u.Update(), Times.Once);
|
|
}
|
|
}
|
|
} |