public void CreateListenerTest()
        {
            const string eventName = "event Name";

            bool succeeded = false;
            var listener = new CherryEventListener(
                eventName,
                ea => succeeded = true);
            listener.Handle(null);
            Assert.AreEqual(eventName, listener.ListenTo);
            listener.Handle(null);
            Assert.IsTrue(succeeded);
        }
        public void EventsCollectionSimpleTest()
        {
            bool firstFired = false;
            bool secondFired = false;

            var eventsProvider = new TestEventsProvider();
            CherryEventsCollection eventsCollection = new CherryEventsCollection();
            eventsCollection.AddProvider(eventsProvider);

            bool subscribeResult;

            var listener1 = new CherryEventListener(
                eventName1,
                ea => firstFired = true);
            subscribeResult = eventsCollection.Subscribe(listener1);
            Assert.IsTrue(subscribeResult);

            var listener2 = new CherryEventListener(
                eventName2,
                ea => secondFired = true);
            subscribeResult = eventsCollection.Subscribe(listener2);
            Assert.IsTrue(subscribeResult);

            subscribeResult = eventsCollection.Subscribe(listener2);
            Assert.IsFalse(subscribeResult);

            Assert.IsFalse(firstFired);
            Assert.IsFalse(secondFired);

            eventsProvider.FireSecond();
            Assert.IsFalse(firstFired);
            Assert.IsTrue(secondFired);

            eventsProvider.FireFirst();
            Assert.IsTrue(firstFired);
            Assert.IsTrue(secondFired);
        }
 public bool RemoveListener(CherryEventListener listener)
 {
     return(this.listeners.Remove(listener));
 }
        private void SubscribePomodoroEvents()
        {
            if (!this.EventsSubscribed)
            {
                this.EventsSubscribed = true;

                this.startedListener = new CherryEventListener(
                    "Pomodoro Started",
                    pea =>
                    {
                        if (this.Started)
                        {
                            this.ScheduleSingleNotification(this.Now);
                        }
                    });
                this.plugins.CherryEvents.Subscribe(this.startedListener);

                this.stoppedListener = new CherryEventListener(
                    "Pomodoro Finished",
                    pea =>
                    {
                        if (this.Rung)
                        {
                            this.ScheduleSingleNotification(this.Now);
                        }
                    });
                this.plugins.CherryEvents.Subscribe(this.stoppedListener);
            }
        }
 public bool RemoveListener(CherryEventListener listener)
 {
     return this.listeners.Remove(listener);
 }