private static void VerifyCorrectMessageIsSent(IListenOn <GermGrowthMessage> listener, IGerm matureVirus) { var expectedMessaged = new GermGrowthMessage(true, false, ReplicationMultiplier, matureVirus); Mock.Get(listener).Verify( v => v.ProcessMessageAsync( It.Is <GermGrowthMessage>(m => m.IsEquivalentTo(expectedMessaged))), Times.Once); }
internal void VirusMaturesAfterTwoGenerationsSendsMessageAndTellsVisitorItIsMature( [Frozen] EventAggregator eventAggregator, IListenOn <GermGrowthMessage> listener, IGermVistor visitor, LyticVirus sut) { eventAggregator.Subscribe(listener); IGerm matureVirus = sut; for (int gen = 0; gen <= GenerationToMature; gen++) { matureVirus = matureVirus.Replicate(); } VerifyGermIsMature(visitor, matureVirus); VerifyCorrectMessageIsSent(listener, matureVirus); }
public void Subscribe <TEvent>(IListenOn <TEvent> listenOn) where TEvent : IMessage { var listenerRef = new WeakReference <object>(listenOn); List <WeakReference <object> > AddFunction(Type arg) { return(new List <WeakReference <object> > { listenerRef }); } List <WeakReference <object> > UpdateFunction(Type arg1, List <WeakReference <object> > arg2) { arg2.Add(listenerRef); return(arg2); } _register.AddOrUpdate(typeof(TEvent), AddFunction, UpdateFunction); }