RemoveUnusedRemotes() public method

public RemoveUnusedRemotes ( ILocalRepositoryModel repository ) : IObservable
repository ILocalRepositoryModel
return IObservable
        public async Task ShouldRemoveUnusedRemote()
        {
            var gitClient = Substitute.For<IGitClient>();
            var gitService = MockGitService();
            var service = new PullRequestService(
                gitClient,
                gitService,
                Substitute.For<IOperatingSystem>(),
                Substitute.For<IUsageTracker>());

            var localRepo = Substitute.For<ILocalRepositoryModel>();
            localRepo.CloneUrl.Returns(new UriString("https://github.com/foo/bar"));

            var repo = gitService.GetRepository(localRepo.CloneUrl);
            var remote1 = Substitute.For<Remote>();
            var remote2 = Substitute.For<Remote>();
            var remote3 = Substitute.For<Remote>();
            var remotes = new List<Remote> { remote1, remote2, remote3 };
            var remoteCollection = Substitute.For<RemoteCollection>();
            remote1.Name.Returns("remote1");
            remote2.Name.Returns("remote2");
            remote3.Name.Returns("remote3");
            remoteCollection.GetEnumerator().Returns(_ => remotes.GetEnumerator());
            repo.Network.Remotes.Returns(remoteCollection);

            var branch1 = Substitute.For<LibGit2Sharp.Branch>();
            var branch2 = Substitute.For<LibGit2Sharp.Branch>();
            var branches = new List<LibGit2Sharp.Branch> { branch1, branch2 };
            var branchCollection = Substitute.For<BranchCollection>();
            branch1.Remote.Returns(remote1);
            branch2.Remote.Returns(remote1);
            branchCollection.GetEnumerator().Returns(_ => branches.GetEnumerator());
            repo.Branches.Returns(branchCollection);

            gitClient.GetConfig<bool>(Arg.Any<IRepository>(), "remote.remote1.created-by-ghfvs").Returns(Task.FromResult(true));
            gitClient.GetConfig<bool>(Arg.Any<IRepository>(), "remote.remote2.created-by-ghfvs").Returns(Task.FromResult(true));

            await service.RemoveUnusedRemotes(localRepo);

            remoteCollection.DidNotReceive().Remove("remote1");
            remoteCollection.Received().Remove("remote2");
            remoteCollection.DidNotReceive().Remove("remote3");
        }