Static dictionaries updater tests

This commit is contained in:
Mikhail Shabanov committed 2020-06-02 14:02:57 +02:00
1 parent 71c0240437
commit cacc60fc7f
8 files changed
+485 -7

No files matched your search

@@ -1,11 +1,32 @@
using System.Threading.Tasks;
using System;
using System.Threading.Tasks;
using AutoMapper;
using WotBlitzStatisticsPro.Common.Model;
using WotBlitzStatisticsPro.DataAccess;
using WotBlitzStatisticsPro.WgApiClient;
namespace WotBlitzStatisticsPro.Logic.Dictionaries
{
public class AchievementsDictionaryUpdater : IDictionaryUpdater
{
public Task<UpdateDictionariesResponseItem> Update()
private readonly IWargamingDictionariesApiClient _wargamingDictionariesApiClient;
private readonly IDictionariesDataAccessor _dataAccessor;
private readonly IMapper _mapper;
[Obsolete("Parameter-less constructor only for unit tests")]
public AchievementsDictionaryUpdater()
{
}
public AchievementsDictionaryUpdater(IWargamingDictionariesApiClient wargamingDictionariesApiClient, IDictionariesDataAccessor dataAccessor, IMapper mapper)
{
_wargamingDictionariesApiClient = wargamingDictionariesApiClient;
_dataAccessor = dataAccessor;
_mapper = mapper;
}
public virtual Task<UpdateDictionariesResponseItem> Update()
{
throw new System.NotImplementedException();
}
@@ -17,6 +17,12 @@ namespace WotBlitzStatisticsPro.Logic.Dictionaries
private readonly IDictionariesDataAccessor _dataAccessor;
private readonly IMapper _mapper;
[Obsolete("Parameter-less constructor only for unit tests")]
public StaticDictionariesUpdater()
{
}
public StaticDictionariesUpdater(
IWargamingDictionariesApiClient wargamingDictionariesApiClient,
IDictionariesDataAccessor dataAccessor,
@@ -26,7 +32,7 @@ namespace WotBlitzStatisticsPro.Logic.Dictionaries
_dataAccessor = dataAccessor;
_mapper = mapper;
}
public async Task<UpdateDictionariesResponseItem> Update()
public virtual async Task<UpdateDictionariesResponseItem> Update()
{
var (
languages,
@@ -41,8 +47,6 @@ namespace WotBlitzStatisticsPro.Logic.Dictionaries
await _dataAccessor.UpdateClanRoles(clanRoles);
await _dataAccessor.UpdateAchievementsSections(achievementsSections);
// ToDo: create unit tests
return new UpdateDictionariesResponseItem
{
DictionaryType = DictionaryType.StaticDictionaries,
@@ -1,11 +1,32 @@
using System.Threading.Tasks;
using System;
using System.Threading.Tasks;
using AutoMapper;
using WotBlitzStatisticsPro.Common.Model;
using WotBlitzStatisticsPro.DataAccess;
using WotBlitzStatisticsPro.WgApiClient;
namespace WotBlitzStatisticsPro.Logic.Dictionaries
{
public class VehiclesDictionaryUpdater : IDictionaryUpdater
{
public Task<UpdateDictionariesResponseItem> Update()
private readonly IWargamingDictionariesApiClient _wargamingDictionariesApiClient;
private readonly IDictionariesDataAccessor _dataAccessor;
private readonly IMapper _mapper;
[Obsolete("Parameter-less constructor only for unit tests")]
public VehiclesDictionaryUpdater()
{
}
public VehiclesDictionaryUpdater(IWargamingDictionariesApiClient wargamingDictionariesApiClient, IDictionariesDataAccessor dataAccessor, IMapper mapper)
{
_wargamingDictionariesApiClient = wargamingDictionariesApiClient;
_dataAccessor = dataAccessor;
_mapper = mapper;
}
public virtual Task<UpdateDictionariesResponseItem> Update()
{
throw new System.NotImplementedException();
}
@@ -1,4 +1,5 @@
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using AutoMapper;
using Microsoft.Extensions.DependencyInjection;
using WotBlitzStatisticsPro.Common.Model;
@@ -6,6 +7,7 @@ using WotBlitzStatisticsPro.DataAccess;
using WotBlitzStatisticsPro.Logic.Dictionaries;
using WotBlitzStatisticsPro.WgApiClient;
[assembly: InternalsVisibleTo("WotBlitzStatisticsPro.Tests")]
namespace WotBlitzStatisticsPro.Logic
{
public static class WotBlitzStatisticsLogicInstaller
@@ -29,6 +31,11 @@ namespace WotBlitzStatisticsPro.Logic
services.AddTransient<AchievementsDictionaryUpdater>();
services.AddTransient<VehiclesDictionaryUpdater>();
RegisterFactoryMethod(services);
}
internal static void RegisterFactoryMethod(IServiceCollection services)
{
services.AddTransient<DictionariesUpdaterResolver>(serviceProvider => dictionaryType =>
{
switch (dictionaryType)