-
Notifications
You must be signed in to change notification settings - Fork 18
Expand file tree
/
Copy pathPresenterMemberMatcherTests.cs
More file actions
71 lines (56 loc) · 2.3 KB
/
PresenterMemberMatcherTests.cs
File metadata and controls
71 lines (56 loc) · 2.3 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
using System;
using System.Collections.Generic;
using SgfDevs.Dev.EventSync;
using SgfDevs.Dev.EventSync.Sessionize;
using Xunit;
namespace SgfDevs.Tests;
public class PresenterMemberMatcherTests
{
[Fact]
public void MatchPresenters_AssignsMemberKeyWhenExactlyOneMemberMatches()
{
var memberKey = Guid.NewGuid();
var matcher = CreateMatcher(new Dictionary<string, IReadOnlyList<Guid>>
{
["bertram gilfoyle"] = [memberKey]
});
var result = Assert.Single(matcher.MatchPresenters([new ImportedPresenterPlan("speaker-1", "Bertram Gilfoyle", null)]));
Assert.Equal(memberKey, result.MatchedMemberKey);
}
[Fact]
public void MatchPresenters_LeavesPresenterUnchangedWhenNoMembersMatch()
{
var matcher = CreateMatcher(new Dictionary<string, IReadOnlyList<Guid>>());
var result = Assert.Single(matcher.MatchPresenters([new ImportedPresenterPlan("speaker-1", "Bertram Gilfoyle", null)]));
Assert.Null(result.MatchedMemberKey);
}
[Fact]
public void MatchPresenters_LeavesPresenterUnchangedWhenMultipleMembersMatch()
{
var matcher = CreateMatcher(new Dictionary<string, IReadOnlyList<Guid>>
{
["bertram gilfoyle"] = [Guid.NewGuid(), Guid.NewGuid()]
});
var result = Assert.Single(matcher.MatchPresenters([new ImportedPresenterPlan("speaker-1", "Bertram Gilfoyle", null)]));
Assert.Null(result.MatchedMemberKey);
}
[Fact]
public void MatchPresenters_DeduplicatesSameMemberReturnedByMultipleSearchTerms()
{
var memberKey = Guid.NewGuid();
var matcher = CreateMatcher(new Dictionary<string, IReadOnlyList<Guid>>
{
["bertram gilfoyle"] = [memberKey],
["Bertram Gilfoyle"] = [memberKey]
});
var result = Assert.Single(matcher.MatchPresenters([new ImportedPresenterPlan("speaker-1", "Bertram Gilfoyle", null)]));
Assert.Equal(memberKey, result.MatchedMemberKey);
}
private static PresenterMemberMatcher CreateMatcher(IReadOnlyDictionary<string, IReadOnlyList<Guid>> resultsBySearchTerm)
{
return new PresenterMemberMatcher(searchTerm =>
resultsBySearchTerm.TryGetValue(searchTerm, out var result)
? result
: []);
}
}