Projekt

Obecné

Profil

Stáhnout (13.9 KB) Statistiky
| Větev: | Tag: | Revize:
1 d402013e Tomáš Orlovský
//#define TEST
2
3
using System;
4
using System.Threading;
5
using System.Threading.Tasks;
6
using FluentAssertions;
7
using Leuze.Core.Application.Authentication;
8
using Leuze.Core.Domain.Repositories;
9
using Leuze.Core.Infrastructure.Persistence.Repository;
10
using Leuze.Core.Infrastructure.Persistence.Seeds;
11
using Leuze.Modules.Goal.Application.CQRS.GoalDefinitionAreas.Commands;
12
using Leuze.Modules.Goal.Domain.Repositories;
13
using Leuze.Modules.Goal.Infrastructure.Persistence.Repositories;
14
using Leuze.Tests.Configuration;
15
using Microsoft.AspNetCore.Components.Authorization;
16
using Microsoft.Extensions.DependencyInjection;
17
using Moq;
18
using Xunit;
19
20
namespace Leuze.Tests.Modules.Goal
21
{
22
    [Trait("Category", "Goals")]
23
    public class GoalDefinitionAreasTests : TestWithDatabase
24
    {
25
        public GoalDefinitionAreasTests()
26
        {
27
            var services = new ServiceCollection();
28
            services.AddTransient<IGlobalDefinitionAreaRepository, GlobalDefinitionAreaRepository>();
29
            services.AddTransient<IGoalItemRepository, GoalItemRepository>();
30
            services.AddTransient<IGoalDefinitionRepository, GoalDefinitionRepository>();
31
            services.AddTransient<IDomainUserRepository, DomainUserRepository>();
32
            Initialize(services);
33
34 2e43d358 Tomáš Orlovský
35 38c48047 Tomáš Orlovský
            DatabaseFixture.Storage.Database.EnsureDeleted();
36 d402013e Tomáš Orlovský
            ApplicationSeed.Run(DatabaseFixture.Storage, DatabaseFixture.UserManager, DatabaseFixture.RoleManager);
37
        }
38
39 0ec46253 Tomáš Orlovský
        #region Commands
40
41
        #region CreateNewArea
42
43 d402013e Tomáš Orlovský
        [Fact]
44
        public async void CreateNewAreaTestAdmin()
45
        {
46
            await _semaphore.WaitAsync();
47
48 0ec46253 Tomáš Orlovský
            var AuthenticationStateProviderMock = await TestUtils.AuthenticationMock(DatabaseFixture, TestUtils.adminName);
49 d402013e Tomáš Orlovský
            var handler = new CreateNewArea.Handler(
50
                DatabaseFixture.Services.GetRequiredService<IGlobalDefinitionAreaRepository>(),
51
                AuthenticationStateProviderMock.Object,
52
                DatabaseFixture.Services.GetRequiredService<IDomainUserRepository>());
53
            var result = await handler.Handle(new CreateNewArea.Command(DateTime.Today, DateTime.Today.AddDays(1), 0.0), default);
54
55
            result.IsSuccess.Should().BeTrue();
56
57
            _semaphore.Release();
58
        }
59
60 0ec46253 Tomáš Orlovský
61 d402013e Tomáš Orlovský
        [Fact]
62
        public async void CreateNewAreaTestTL()
63
        {
64
            await _semaphore.WaitAsync();
65
66 20f17fe1 Tomáš Orlovský
            var AuthenticationStateProviderMock = await TestUtils.AuthenticationMock(DatabaseFixture, TestUtils.TLName);
67 d402013e Tomáš Orlovský
            var handler = new CreateNewArea.Handler(
68
                DatabaseFixture.Services.GetRequiredService<IGlobalDefinitionAreaRepository>(),
69
                AuthenticationStateProviderMock.Object,
70
                DatabaseFixture.Services.GetRequiredService<IDomainUserRepository>());
71
            var result = await handler.Handle(new CreateNewArea.Command(DateTime.Today, DateTime.Today.AddDays(1), 0.0), default);
72
73
            result.IsSuccess.Should().BeTrue();
74
75
            _semaphore.Release();
76
        }
77
78 0ec46253 Tomáš Orlovský
79 d402013e Tomáš Orlovský
        [Fact]
80
        public async void CreateNewAreaTestMA()
81
        {
82
            await _semaphore.WaitAsync();
83
84 20f17fe1 Tomáš Orlovský
            var AuthenticationStateProviderMock = await TestUtils.AuthenticationMock(DatabaseFixture, TestUtils.MAName);
85 d402013e Tomáš Orlovský
            var handler = new CreateNewArea.Handler(
86
                DatabaseFixture.Services.GetRequiredService<IGlobalDefinitionAreaRepository>(),
87
                AuthenticationStateProviderMock.Object,
88
                DatabaseFixture.Services.GetRequiredService<IDomainUserRepository>());
89
            var result = await handler.Handle(new CreateNewArea.Command(DateTime.Today, DateTime.Today.AddDays(1), 0.0), default);
90
91
            result.IsSuccess.Should().BeTrue();
92
93
            _semaphore.Release();
94
        }
95
96 20f17fe1 Tomáš Orlovský
        [Fact]
97
        public async void CreateNewAreaTestOverlap()
98
        {
99
            await _semaphore.WaitAsync();
100
101
            var AuthenticationStateProviderMock = await TestUtils.AuthenticationMock(DatabaseFixture, TestUtils.TLName);
102
            var handler = new CreateNewArea.Handler(
103
                DatabaseFixture.Services.GetRequiredService<IGlobalDefinitionAreaRepository>(),
104
                AuthenticationStateProviderMock.Object,
105
                DatabaseFixture.Services.GetRequiredService<IDomainUserRepository>());
106
            var result = await handler.Handle(new CreateNewArea.Command(DateTime.Today, DateTime.Today.AddDays(1), 0.0), default);
107
108
            result.IsSuccess.Should().BeTrue();
109
110
            result = await handler.Handle(new CreateNewArea.Command(DateTime.Today.AddDays(1), DateTime.Today.AddDays(2), 0.0), default);
111
112
            result.IsSuccess.Should().BeFalse();
113
114
            _semaphore.Release();
115
        }
116
117
        [Fact]
118
        public async void CreateNewAreaTestWrongRange()
119
        {
120
            await _semaphore.WaitAsync();
121
122
            var AuthenticationStateProviderMock = await TestUtils.AuthenticationMock(DatabaseFixture, TestUtils.MAName);
123
            var handler = new CreateNewArea.Handler(
124
                DatabaseFixture.Services.GetRequiredService<IGlobalDefinitionAreaRepository>(),
125
                AuthenticationStateProviderMock.Object,
126
                DatabaseFixture.Services.GetRequiredService<IDomainUserRepository>());
127
            var result = await handler.Handle(new CreateNewArea.Command(DateTime.Today.AddDays(1), DateTime.Today, 0.0), default);
128 d402013e Tomáš Orlovský
129 20f17fe1 Tomáš Orlovský
            result.IsSuccess.Should().BeFalse();
130
131
            _semaphore.Release();
132
        }
133 0ec46253 Tomáš Orlovský
134
        #endregion
135
136
        #region EditArea
137
138
        [Fact]
139
        public async void EditAreaTestAdmin()
140
        {
141
            await _semaphore.WaitAsync();
142
143
            var AuthenticationStateProviderMock = await TestUtils.AuthenticationMock(DatabaseFixture, TestUtils.adminName);
144
145
            var handler = new CreateNewArea.Handler(
146
                DatabaseFixture.Services.GetRequiredService<IGlobalDefinitionAreaRepository>(),
147
                AuthenticationStateProviderMock.Object,
148
                DatabaseFixture.Services.GetRequiredService<IDomainUserRepository>());
149
            var result = await handler.Handle(new CreateNewArea.Command(DateTime.Today, DateTime.Today.AddDays(1), 0.0), default);
150
151
            result.IsSuccess.Should().BeTrue();
152
153
            var handler2 = new EditArea.Handler(
154
                DatabaseFixture.Services.GetRequiredService<IGlobalDefinitionAreaRepository>());
155
            var result2 = await handler2.Handle(new EditArea.Command(result.Result.item.Id,DateTime.Today, DateTime.Today.AddDays(1), 1.0), default);
156
157
            result2.IsSuccess.Should().BeTrue();
158
159
            _semaphore.Release();
160
        }
161
162
        [Fact]
163
        public async void EditAreaTestTL()
164
        {
165
            await _semaphore.WaitAsync();
166
167
            var AuthenticationStateProviderMock = await TestUtils.AuthenticationMock(DatabaseFixture, TestUtils.TLName);
168
169
            var handler = new CreateNewArea.Handler(
170
                DatabaseFixture.Services.GetRequiredService<IGlobalDefinitionAreaRepository>(),
171
                AuthenticationStateProviderMock.Object,
172
                DatabaseFixture.Services.GetRequiredService<IDomainUserRepository>());
173
            var result = await handler.Handle(new CreateNewArea.Command(DateTime.Today, DateTime.Today.AddDays(1), 0.0), default);
174
175
            result.IsSuccess.Should().BeTrue();
176
177
            var handler2 = new EditArea.Handler(
178
                DatabaseFixture.Services.GetRequiredService<IGlobalDefinitionAreaRepository>());
179
            var result2 = await handler2.Handle(new EditArea.Command(result.Result.item.Id, DateTime.Today, DateTime.Today.AddDays(1), 1.0), default);
180
181
            result2.IsSuccess.Should().BeTrue();
182
183
            _semaphore.Release();
184
        }
185
186
        [Fact]
187
        public async void EditAreaTestMA()
188
        {
189
            await _semaphore.WaitAsync();
190
191
            var AuthenticationStateProviderMock = await TestUtils.AuthenticationMock(DatabaseFixture, TestUtils.MAName);
192
193
            var handler = new CreateNewArea.Handler(
194
                DatabaseFixture.Services.GetRequiredService<IGlobalDefinitionAreaRepository>(),
195
                AuthenticationStateProviderMock.Object,
196
                DatabaseFixture.Services.GetRequiredService<IDomainUserRepository>());
197
            var result = await handler.Handle(new CreateNewArea.Command(DateTime.Today, DateTime.Today.AddDays(1), 0.0), default);
198
199
            result.IsSuccess.Should().BeTrue();
200
201
            var handler2 = new EditArea.Handler(
202
                DatabaseFixture.Services.GetRequiredService<IGlobalDefinitionAreaRepository>());
203
            var result2 = await handler2.Handle(new EditArea.Command(result.Result.item.Id, DateTime.Today, DateTime.Today.AddDays(1), 1.0), default);
204
205
            result2.IsSuccess.Should().BeTrue();
206
207
            _semaphore.Release();
208
        }
209
210
        [Fact]
211
        public async void EditAreaTestOverlap()
212
        {
213
            await _semaphore.WaitAsync();
214
215
            var AuthenticationStateProviderMock = await TestUtils.AuthenticationMock(DatabaseFixture, TestUtils.adminName);
216
217
            //first area
218
            var handler = new CreateNewArea.Handler(
219
                DatabaseFixture.Services.GetRequiredService<IGlobalDefinitionAreaRepository>(),
220
                AuthenticationStateProviderMock.Object,
221
                DatabaseFixture.Services.GetRequiredService<IDomainUserRepository>());
222
            var result = await handler.Handle(new CreateNewArea.Command(DateTime.Today, DateTime.Today.AddDays(1), 0.0), default);
223
            
224
            result.IsSuccess.Should().BeTrue();
225
226
            //second area
227
            handler = new CreateNewArea.Handler(
228
                DatabaseFixture.Services.GetRequiredService<IGlobalDefinitionAreaRepository>(),
229
                AuthenticationStateProviderMock.Object,
230
                DatabaseFixture.Services.GetRequiredService<IDomainUserRepository>());
231
            result = await handler.Handle(new CreateNewArea.Command(DateTime.Today.AddDays(3), DateTime.Today.AddDays(5), 0.0), default);
232
233
            result.IsSuccess.Should().BeTrue();
234
235
            //edit
236
            var handler2 = new EditArea.Handler(
237
                DatabaseFixture.Services.GetRequiredService<IGlobalDefinitionAreaRepository>());
238
            var result2 = await handler2.Handle(new EditArea.Command(result.Result.item.Id, DateTime.Today, DateTime.Today.AddDays(1), 1.0), default);
239
240
            result2.IsSuccess.Should().BeFalse();
241
242
            _semaphore.Release();
243
        }
244
245
        [Fact]
246
        public async void EditAreaTestWrongRange()
247
        {
248
            await _semaphore.WaitAsync();
249
250
            var AuthenticationStateProviderMock = await TestUtils.AuthenticationMock(DatabaseFixture, TestUtils.MAName);
251
252
            var handler = new CreateNewArea.Handler(
253
                DatabaseFixture.Services.GetRequiredService<IGlobalDefinitionAreaRepository>(),
254
                AuthenticationStateProviderMock.Object,
255
                DatabaseFixture.Services.GetRequiredService<IDomainUserRepository>());
256
            var result = await handler.Handle(new CreateNewArea.Command(DateTime.Today, DateTime.Today.AddDays(1), 0.0), default);
257
258
            result.IsSuccess.Should().BeTrue();
259
260
            var handler2 = new EditArea.Handler(
261
                DatabaseFixture.Services.GetRequiredService<IGlobalDefinitionAreaRepository>());
262
            var result2 = await handler2.Handle(new EditArea.Command(result.Result.item.Id, DateTime.Today.AddDays(1), DateTime.Today, 1.0), default);
263
264
            result2.IsSuccess.Should().BeFalse();
265
266
            _semaphore.Release();
267
        }
268
269
        #endregion
270
271
        #region RemoveArea
272
273
        [Fact]
274
        public async void RemoveAreaTest()
275
        {
276
            await _semaphore.WaitAsync();
277
278
            var AuthenticationStateProviderMock = await TestUtils.AuthenticationMock(DatabaseFixture, TestUtils.MAName);
279
280
            var handler = new CreateNewArea.Handler(
281
                DatabaseFixture.Services.GetRequiredService<IGlobalDefinitionAreaRepository>(),
282
                AuthenticationStateProviderMock.Object,
283
                DatabaseFixture.Services.GetRequiredService<IDomainUserRepository>());
284
            var result = await handler.Handle(new CreateNewArea.Command(DateTime.Today, DateTime.Today.AddDays(1), 0.0), default);
285
286
            result.IsSuccess.Should().BeTrue();
287
288
            var handler2 = new RemoveArea.Handler(
289
                DatabaseFixture.Services.GetRequiredService<IGlobalDefinitionAreaRepository>());
290
            var result2 = await handler2.Handle(new RemoveArea.Command(result.Result.item.Id), default);
291
292
            result2.IsSuccess.Should().BeTrue();
293
294
            _semaphore.Release();
295
        }
296
297
        [Fact]
298
        public async void RemoveAreaTest2()
299
        {
300
            await _semaphore.WaitAsync();
301
302
            var AuthenticationStateProviderMock = await TestUtils.AuthenticationMock(DatabaseFixture, TestUtils.MAName);
303
304
            var handler = new CreateNewArea.Handler(
305
                DatabaseFixture.Services.GetRequiredService<IGlobalDefinitionAreaRepository>(),
306
                AuthenticationStateProviderMock.Object,
307
                DatabaseFixture.Services.GetRequiredService<IDomainUserRepository>());
308
            var result = await handler.Handle(new CreateNewArea.Command(DateTime.Today, DateTime.Today.AddDays(1), 0.0), default);
309
310
            result.IsSuccess.Should().BeTrue();
311
312
            var handler2 = new RemoveArea.Handler(
313
                DatabaseFixture.Services.GetRequiredService<IGlobalDefinitionAreaRepository>());
314
            var result2 = await handler2.Handle(new RemoveArea.Command(result.Result.item.Id), default);
315
316
            result2.IsSuccess.Should().BeTrue();
317
318
            handler2 = new RemoveArea.Handler(
319
                DatabaseFixture.Services.GetRequiredService<IGlobalDefinitionAreaRepository>());
320
            result2 = await handler2.Handle(new RemoveArea.Command(result.Result.item.Id), default);
321
322
            result2.IsSuccess.Should().BeFalse();
323
324
            _semaphore.Release();
325
        }
326
327
        #endregion
328
329
        #endregion
330
331
        #region Queries
332
333
        #region GetAllAreas
334
335
336
337
        #endregion
338
339
        #region GetAreaById
340
341
342
343
        #endregion
344
345
        #endregion
346
347 d402013e Tomáš Orlovský
    }
348
}