예제 #1
0
        public static List <Strategy> LoadStrategies(IEventAggregator eventAggregator, ISubscriberHandler handler)
        {
            return(new List <Strategy>
            {
                new Strategy(s => s.Equals("i"), s => handler.AddSubscriber <int>()),
                new Strategy(s => s.Equals("s"), s => handler.AddSubscriber <string>()),
                new Strategy(s => s.Equals("a"), s => handler.DisplaySubscribers()),
                new Strategy(s => s.StartsWith("us "), s => handler.Unsubscribe(s.Remove(0, s.IndexOf(' ') + 1))),
                new Strategy(s => s.StartsWith("ss "), s => handler.Subscribe(s.Remove(0, s.IndexOf(' ') + 1))),
                new Strategy(s => s.StartsWith("d "), s => handler.DeleteSubscriber(s.Remove(0, s.IndexOf(' ') + 1))),
                new Strategy(s => s.StartsWith("p "), s =>
                {
                    var input = s.Remove(0, s.IndexOf(' ') + 1);
                    var output = 0;

                    if (int.TryParse(input, out output))
                    {
                        eventAggregator.Publish(output);
                    }
                    else
                    {
                        eventAggregator.Publish(input);
                    }
                })
            });
        }
예제 #2
0
        public void AddSubscriber_ShouldHaveCorrectNumberofSubscibers()
        {
            // arrange
            // act
            _handler.AddSubscriber <int>();
            _handler.AddSubscriber <string>();
            _handler.AddSubscriber <int>();

            // assert
            Assert.IsTrue(_handler.Subscribers.Count(s => s.GetType() == typeof(PingSubscriber)) == 1);
            Assert.IsTrue(_handler.Subscribers.Count(s => s.GetType() == typeof(SumSubscriber)) == 2);
        }