Skip to content

Commit fdb73ea

Browse files
authored
Add mediator classes (#211)
* Add decomposition function in Program * Make SaveSearchForm.SearchSaved an instance method * Make signInForm.SignInAction an instance event * Make SignOutForm.SignOutAction an instance event * Update RaiseItemsChanged() to pass in 0 * Create mediator for remove search events * Add AuthenticationMediator * Update tests
1 parent 4dad19c commit fdb73ea

18 files changed

+334
-206
lines changed

Diff for: GitHubExtension.Test/Controls/GitHubQueryValidationTests.cs

+28-21
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,19 @@ namespace GitHubExtension.Test.Controls;
1212
[TestClass]
1313
public class GitHubQueryValidationTests
1414
{
15+
public SaveSearchForm CreateSaveSearchForm(Mock<ISearchRepository> mockSearchRepository)
16+
{
17+
var mockResources = new Mock<IResources>();
18+
var savedSearchesMediator = new SavedSearchesMediator();
19+
return new SaveSearchForm(mockSearchRepository.Object, mockResources.Object, savedSearchesMediator);
20+
}
21+
1522
[TestMethod]
1623
public async Task ValidateSearch_SupportsIsOpenKeyword()
1724
{
1825
var mockSearchRepository = new Mock<ISearchRepository>();
1926
var mockResources = new Mock<IResources>();
20-
var saveSearchForm = new SaveSearchForm(mockSearchRepository.Object, mockResources.Object);
27+
var saveSearchForm = CreateSaveSearchForm(mockSearchRepository);
2128

2229
var searchString = "is:open";
2330
var search = new SearchCandidate(searchString, "Test Search");
@@ -35,7 +42,7 @@ public async Task ValidateSearch_SupportsIsIssueKeyword()
3542
{
3643
var mockSearchRepository = new Mock<ISearchRepository>();
3744
var mockResources = new Mock<IResources>();
38-
var saveSearchForm = new SaveSearchForm(mockSearchRepository.Object, mockResources.Object);
45+
var saveSearchForm = CreateSaveSearchForm(mockSearchRepository);
3946

4047
var searchString = "is:issue";
4148
var search = new SearchCandidate(searchString, "Test Search");
@@ -53,7 +60,7 @@ public async Task ValidateSearch_SupportsIsPullRequestKeyword()
5360
{
5461
var mockSearchRepository = new Mock<ISearchRepository>();
5562
var mockResources = new Mock<IResources>();
56-
var saveSearchForm = new SaveSearchForm(mockSearchRepository.Object, mockResources.Object);
63+
var saveSearchForm = CreateSaveSearchForm(mockSearchRepository);
5764

5865
var searchString = "is:pr";
5966
var search = new SearchCandidate(searchString, "Test Search");
@@ -70,7 +77,7 @@ public async Task ValidateSearch_SupportsMultipleKeywords()
7077
{
7178
var mockSearchRepository = new Mock<ISearchRepository>();
7279
var mockResources = new Mock<IResources>();
73-
var saveSearchForm = new SaveSearchForm(mockSearchRepository.Object, mockResources.Object);
80+
var saveSearchForm = CreateSaveSearchForm(mockSearchRepository);
7481

7582
var searchString = "is:open is:issue";
7683
var search = new SearchCandidate(searchString, "Test Search");
@@ -87,7 +94,7 @@ public async Task ValidateSearch_SupportsRepoQualifier()
8794
{
8895
var mockSearchRepository = new Mock<ISearchRepository>();
8996
var mockResources = new Mock<IResources>();
90-
var saveSearchForm = new SaveSearchForm(mockSearchRepository.Object, mockResources.Object);
97+
var saveSearchForm = CreateSaveSearchForm(mockSearchRepository);
9198

9299
var searchString = "is:issue repo:microsoft/PowerToys";
93100

@@ -103,7 +110,7 @@ public async Task ValidateSearch_SupportsAuthorQualifier()
103110
{
104111
var mockSearchRepository = new Mock<ISearchRepository>();
105112
var mockResources = new Mock<IResources>();
106-
var saveSearchForm = new SaveSearchForm(mockSearchRepository.Object, mockResources.Object);
113+
var saveSearchForm = CreateSaveSearchForm(mockSearchRepository);
107114

108115
var searchString = "is:pr author:octocat";
109116

@@ -119,7 +126,7 @@ public async Task ValidateSearch_SupportsStateAndLabelQualifiers()
119126
{
120127
var mockSearchRepository = new Mock<ISearchRepository>();
121128
var mockResources = new Mock<IResources>();
122-
var saveSearchForm = new SaveSearchForm(mockSearchRepository.Object, mockResources.Object);
129+
var saveSearchForm = CreateSaveSearchForm(mockSearchRepository);
123130

124131
var searchString = "state:open label:bug";
125132

@@ -135,7 +142,7 @@ public async Task ValidateSearch_SupportsInvolvesAndLanguageQualifiers()
135142
{
136143
var mockSearchRepository = new Mock<ISearchRepository>();
137144
var mockResources = new Mock<IResources>();
138-
var saveSearchForm = new SaveSearchForm(mockSearchRepository.Object, mockResources.Object);
145+
var saveSearchForm = CreateSaveSearchForm(mockSearchRepository);
139146

140147
var searchString = "involves:defunkt language:javascript";
141148

@@ -151,7 +158,7 @@ public async Task ValidateSearch_SupportsOrgAndCreatedQualifiers()
151158
{
152159
var mockSearchRepository = new Mock<ISearchRepository>();
153160
var mockResources = new Mock<IResources>();
154-
var saveSearchForm = new SaveSearchForm(mockSearchRepository.Object, mockResources.Object);
161+
var saveSearchForm = CreateSaveSearchForm(mockSearchRepository);
155162

156163
var searchString = "org:github created:>2022-01-01";
157164

@@ -167,7 +174,7 @@ public async Task ValidateSearch_SupportsAssigneeAndMilestoneQualifiers()
167174
{
168175
var mockSearchRepository = new Mock<ISearchRepository>();
169176
var mockResources = new Mock<IResources>();
170-
var saveSearchForm = new SaveSearchForm(mockSearchRepository.Object, mockResources.Object);
177+
var saveSearchForm = CreateSaveSearchForm(mockSearchRepository);
171178

172179
var searchString = "is:issue assignee:@me milestone:v1.0";
173180

@@ -183,7 +190,7 @@ public async Task ValidateSearch_SupportsReviewQualifier()
183190
{
184191
var mockSearchRepository = new Mock<ISearchRepository>();
185192
var mockResources = new Mock<IResources>();
186-
var saveSearchForm = new SaveSearchForm(mockSearchRepository.Object, mockResources.Object);
193+
var saveSearchForm = CreateSaveSearchForm(mockSearchRepository);
187194

188195
var searchString = "is:pr review:approved";
189196

@@ -199,7 +206,7 @@ public async Task ValidateSearch_SupportsInQualifier()
199206
{
200207
var mockSearchRepository = new Mock<ISearchRepository>();
201208
var mockResources = new Mock<IResources>();
202-
var saveSearchForm = new SaveSearchForm(mockSearchRepository.Object, mockResources.Object);
209+
var saveSearchForm = CreateSaveSearchForm(mockSearchRepository);
203210

204211
var searchString = "is:issue in:title error";
205212

@@ -215,7 +222,7 @@ public async Task ValidateSearch_SupportsMergedDateQualifier()
215222
{
216223
var mockSearchRepository = new Mock<ISearchRepository>();
217224
var mockResources = new Mock<IResources>();
218-
var saveSearchForm = new SaveSearchForm(mockSearchRepository.Object, mockResources.Object);
225+
var saveSearchForm = CreateSaveSearchForm(mockSearchRepository);
219226

220227
var searchString = "is:pr merged:>=2023-01-01";
221228

@@ -231,7 +238,7 @@ public async Task ValidateSearch_SupportsSingleLabelQualifier()
231238
{
232239
var mockSearchRepository = new Mock<ISearchRepository>();
233240
var mockResources = new Mock<IResources>();
234-
var saveSearchForm = new SaveSearchForm(mockSearchRepository.Object, mockResources.Object);
241+
var saveSearchForm = CreateSaveSearchForm(mockSearchRepository);
235242

236243
var searchString = "label:enhancement";
237244

@@ -247,7 +254,7 @@ public async Task ValidateSearch_SupportsMultipleLabelQualifiers()
247254
{
248255
var mockSearchRepository = new Mock<ISearchRepository>();
249256
var mockResources = new Mock<IResources>();
250-
var saveSearchForm = new SaveSearchForm(mockSearchRepository.Object, mockResources.Object);
257+
var saveSearchForm = CreateSaveSearchForm(mockSearchRepository);
251258

252259
var searchString = "label:bug label:help-wanted label:documentation";
253260

@@ -263,7 +270,7 @@ public async Task ValidateSearch_SupportsExcludingLabel()
263270
{
264271
var mockSearchRepository = new Mock<ISearchRepository>();
265272
var mockResources = new Mock<IResources>();
266-
var saveSearchForm = new SaveSearchForm(mockSearchRepository.Object, mockResources.Object);
273+
var saveSearchForm = CreateSaveSearchForm(mockSearchRepository);
267274

268275
var searchString = "-label:wontfix";
269276

@@ -279,7 +286,7 @@ public async Task ValidateSearch_SupportsExcludingMultipleLabels()
279286
{
280287
var mockSearchRepository = new Mock<ISearchRepository>();
281288
var mockResources = new Mock<IResources>();
282-
var saveSearchForm = new SaveSearchForm(mockSearchRepository.Object, mockResources.Object);
289+
var saveSearchForm = CreateSaveSearchForm(mockSearchRepository);
283290

284291
var searchString = "-label:wontfix -label:duplicate -label:invalid";
285292

@@ -295,7 +302,7 @@ public async Task ValidateSearch_SupportsExcludingOtherQualifiers()
295302
{
296303
var mockSearchRepository = new Mock<ISearchRepository>();
297304
var mockResources = new Mock<IResources>();
298-
var saveSearchForm = new SaveSearchForm(mockSearchRepository.Object, mockResources.Object);
305+
var saveSearchForm = CreateSaveSearchForm(mockSearchRepository);
299306

300307
var searchString = "is:issue -is:closed -author:bot";
301308

@@ -312,7 +319,7 @@ public async Task ValidateSearch_SupportsMixOfIncludeAndExcludeQualifiers()
312319
{
313320
var mockSearchRepository = new Mock<ISearchRepository>();
314321
var mockResources = new Mock<IResources>();
315-
var saveSearchForm = new SaveSearchForm(mockSearchRepository.Object, mockResources.Object);
322+
var saveSearchForm = CreateSaveSearchForm(mockSearchRepository);
316323

317324
var searchString = "is:pr label:enhancement -label:wontfix repo:microsoft/PowerToys -is:draft";
318325

@@ -329,7 +336,7 @@ public async Task ValidateSearch_SupportsBooleanOperators()
329336
{
330337
var mockSearchRepository = new Mock<ISearchRepository>();
331338
var mockResources = new Mock<IResources>();
332-
var saveSearchForm = new SaveSearchForm(mockSearchRepository.Object, mockResources.Object);
339+
var saveSearchForm = CreateSaveSearchForm(mockSearchRepository);
333340

334341
var searchString = "is:open AND (is:issue OR is:pr) NOT author:bot devhome";
335342
var search = new SearchCandidate(searchString, "Test Search");
@@ -346,7 +353,7 @@ public async Task ValidateSearch_SupportsMultipleRepositories()
346353
{
347354
var mockSearchRepository = new Mock<ISearchRepository>();
348355
var mockResources = new Mock<IResources>();
349-
var saveSearchForm = new SaveSearchForm(mockSearchRepository.Object, mockResources.Object);
356+
var saveSearchForm = CreateSaveSearchForm(mockSearchRepository);
350357

351358
var searchString = "repo:microsoft/terminal repo:microsoft/PowerToys repo:microsoft/vscode is:open is:issue";
352359
var search = new SearchCandidate(searchString, "Test Search");

0 commit comments

Comments
 (0)