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)); }