public void Receiving_IPeerReputationChange_Can_Find_And_Update_Peer()
        {
            var peerReputationChange = Substitute.For <IPeerReputationChange>();
            var pid = PeerIdHelper.GetPeerId("some_peer");

            peerReputationChange.PeerId.Returns(pid);
            peerReputationChange.ReputationEvent.Returns(Substitute.For <IReputationEvents>());
            peerReputationChange.ReputationEvent.Amount.Returns(100);

            var results    = new List <Peer>();
            var subbedPeer = new Peer
            {
                PeerId = pid
            };

            results.Add(subbedPeer);
            SetRepoReturnValue(results);

            var reputationManager = new ReputationManager(_subbedPeerRepository, _subbedLogger);

            reputationManager.OnNext(peerReputationChange);

            _testScheduler.Start();

            _subbedPeerRepository.ReceivedWithAnyArgs(1).GetAll();
            _subbedPeerRepository.ReceivedWithAnyArgs(1).Update(Arg.Is(subbedPeer));
        }