< Summary

Class:UsersSearcherTests
Assembly:UsersSearcherTests
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Helpers/UsersSearcher/Tests/UsersSearcherTests.cs
Covered lines:32
Uncovered lines:2
Coverable lines:34
Total lines:68
Line coverage:94.1% (32 of 34)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
SearchPromiseShouldResolveLastSearchOnly()0%110100%
DifferentSearcherInstancesResultShouldNotCollide()0%110100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Helpers/UsersSearcher/Tests/UsersSearcherTests.cs

#LineLine coverage
 1using NSubstitute;
 2using NUnit.Framework;
 3
 4public class UsersSearcherTests
 5{
 6    [Test]
 7    public void SearchPromiseShouldResolveLastSearchOnly()
 8    {
 19        var bridge = Substitute.For<IUsersSearchBridge>();
 110        var searcher = new UsersSearcher(bridge);
 11
 112        bool firstSearchCalled = false;
 113        bool secondSearchCalled = false;
 14
 115        searcher.SearchUser("TheRealPravus", 1)
 16                .Then(profiles =>
 17                {
 018                    firstSearchCalled = true;
 019                });
 120        searcher.SearchUser("TheRealPravus2", 1)
 21                .Then(profiles =>
 22                {
 123                    secondSearchCalled = true;
 124                });
 25
 126        bridge.OnSearchResult += Raise.Event<OnSearchResultDelegate>("TheRealPravus2", null);
 27
 128        Assert.IsFalse(firstSearchCalled);
 129        Assert.IsTrue(secondSearchCalled);
 30
 131        searcher.Dispose();
 132    }
 33
 34    [Test]
 35    public void DifferentSearcherInstancesResultShouldNotCollide()
 36    {
 37        const string VAL1 = "first";
 38        const string VAL2 = "second";
 39
 140        var bridge = Substitute.For<IUsersSearchBridge>();
 141        var searcher1 = new UsersSearcher(bridge);
 142        var searcher2 = new UsersSearcher(bridge);
 43
 144        string firstSearchValue = string.Empty;
 145        string secondSearchValue = string.Empty;
 46
 147        searcher1.SearchUser("TheRealPravus", 1)
 48                 .Then(profiles =>
 49                 {
 150                     firstSearchValue = profiles[0].name;
 151                 });
 152        searcher2.SearchUser("TheRealPravus2", 1)
 53                 .Then(profiles =>
 54                 {
 155                     secondSearchValue = profiles[0].name;
 156                 });
 57
 158        bridge.OnSearchResult += Raise.Event<OnSearchResultDelegate>("TheRealPravus", new [] { new UserProfileModel() { 
 159        bridge.OnSearchResult += Raise.Event<OnSearchResultDelegate>("TheRealPravus2", new [] { new UserProfileModel() {
 60
 161        Assert.AreNotEqual(firstSearchValue, secondSearchValue);
 162        Assert.AreEqual(VAL1, firstSearchValue);
 163        Assert.AreEqual(VAL2, secondSearchValue);
 64
 165        searcher1.Dispose();
 166        searcher2.Dispose();
 167    }
 68}