Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }