Repository navigation
Expand file tree
/
Copy pathHelpers.cs
More file actions
98 lines (91 loc) · 4.2 KB
/
Copy pathHelpers.cs
File metadata and controls
98 lines (91 loc) · 4.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
using AutoFixture;
using Microsoft.Extensions.Logging;
using PluginModuleBase;
using ProblemSource.Models;
using ProblemSource.Services.Storage;
using ProblemSource.Services;
using ProblemSourceModule.Services.Storage;
using Moq;
using ProblemSourceModule.Services;
using Microsoft.Extensions.Configuration;
namespace ProblemSource.Tests
{
public static class LogItemsExtensions
{
public static IEnumerable<LogItem> Prepare(this IEnumerable<LogItem> items, long? startTimeStamp = null, bool overrideExistingTime = false)
{
var index = 0L;
foreach (var item in items)
{
item.className = item.GetType().Name;
if (startTimeStamp != null)
{
if (item.time == 0 || overrideExistingTime)
item.time = startTimeStamp.Value + index;
}
index++;
}
return items;
}
}
public class TestHelpers
{
public static IConfigurationRoot CreateConfig()
{
return new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: false)
.AddUserSecrets<TestHelpers>()
.Build();
}
public static ProblemSourceProcessingMiddleware CreateMiddleware(IFixture fixture,
ITrainingPlanRepository? trainingPlanRepository = null,
IClientSessionManager? clientSessionManager = null,
IDataSink? dataSink = null,
IEventDispatcher? eventDispatcher = null,
IAggregationService? aggregationService = null,
IUserGeneratedDataRepositoryProviderFactory? userGeneratedDataRepositoryProviderFactory = null,
UsernameHashing? usernameHashing = null,
MnemoJapanese? mnemoJapanese = null,
ITrainingRepository? trainingRepository = null,
ILogger<ProblemSourceProcessingMiddleware>? logger = null
)
{
return new ProblemSourceProcessingMiddleware(
trainingPlanRepository ?? fixture.Create<ITrainingPlanRepository>(),
clientSessionManager ?? fixture.Create<IClientSessionManager>(),
dataSink ?? fixture.Create<IDataSink>(),
eventDispatcher ?? fixture.Create<IEventDispatcher>(),
aggregationService ?? fixture.Create<IAggregationService>(),
userGeneratedDataRepositoryProviderFactory ?? fixture.Create<IUserGeneratedDataRepositoryProviderFactory>(),
usernameHashing ?? fixture.Create<UsernameHashing>(),
mnemoJapanese ?? fixture.Create<MnemoJapanese>(),
trainingRepository ?? fixture.Create<ITrainingRepository>(),
fixture.Create<TrainingAnalyzerCollection>(),
logger ?? fixture.Create<ILogger<ProblemSourceProcessingMiddleware>>()
);
}
public static IUserGeneratedDataRepositoryProviderFactory MockDataRepositoryProviderFactory(
IBatchRepository<UserGeneratedState>? userStateRepo = null,
IUserGeneratedDataRepositoryProvider? dataProvider = null//,
//Func<>
)
{
if (userStateRepo == null)
{
var mockUserStateRepo = new Mock<IBatchRepository<UserGeneratedState>>();
mockUserStateRepo.Setup(o => o.GetAll()).Returns(Task.FromResult<IEnumerable<UserGeneratedState>>(new List<UserGeneratedState>()));
userStateRepo = mockUserStateRepo.Object;
}
var mockRepoProvider = new Mock<IUserGeneratedDataRepositoryProvider>();
mockRepoProvider.Setup(o => o.UserStates).Returns(userStateRepo);
if (dataProvider != null)
{
mockRepoProvider.Setup(o => o.TrainingDays).Returns(dataProvider.TrainingDays);
}
var mockRepoProviderFactory = new Mock<IUserGeneratedDataRepositoryProviderFactory>();
mockRepoProviderFactory.Setup(o => o.Create(It.IsAny<int>())).Returns(mockRepoProvider.Object);
return mockRepoProviderFactory.Object;
}
}
}