public void ObserverShouldOnlyReceiveSubscribedNotifications()
        {
            // Arrange

            var eventAggregator = new EventAggregator();
            var observer1 = new Mock<IObserve<TestEvent>>();
            var observer2 = new Mock<IObserve<OtherEvent>>();

            eventAggregator.Subscribe(observer1.Object);
            eventAggregator.Subscribe(observer2.Object);

            var testEvent = new TestEvent();
            var otherEvent = new OtherEvent();

            // Act

            eventAggregator.Publish(testEvent);
            eventAggregator.Publish(otherEvent);

            // Assert

            observer1.Verify(x => x.OnNext(It.IsAny<IEvent>()), Times.Once);
            observer1.Verify(x => x.OnNext(testEvent), Times.Once);
            observer2.Verify(x => x.OnNext(otherEvent), Times.Once);
        }
Example #2
0
        public void TestEventTypeCheck()
        {
            var @event = new OtherEvent();
            var binder = new AssertingStaticEventBinder();
            var engine = new DefaultEventEngine <IGameContext>(new StandardKernel(), new[] { binder });

            engine.Fire(null, @event);
        }
        public void ShouldDecideIfSubscriptionCanHandleEventByInstance()
        {
            var eventOfSameType  = new MyEvent();
            var eventOfOtherType = new OtherEvent();

            var handler = new Func <MyEvent, Task>(cmd => Task.CompletedTask);
            var testee  = new EventSubscription <MyEvent>(handler);

            testee.CanHandle(eventOfSameType).Should().BeTrue();
            testee.CanHandle(eventOfOtherType).Should().BeFalse();
        }
            public async Task EventStart(OtherEvent e)
            {
                switch (e)
                {
#if GLOBAL_NADEKO
                case CurrencyEvent.BotListUpvoters:
                    await BotListUpvoters(arg);

                    break;
#endif
                default:
                    await Task.CompletedTask;
                    return;
                }
            }
Example #5
0
        private void CollisionDetected(PhysicsComponent Component, PhysicsComponent Other, bool TriggerRemaining)
        {
            if (this.IsDisposed)            // Prevent firing multiple times.
            {
                return;
            }
            if (this.LastTriggered.HasValue && (DateTime.Now - this.LastTriggered.Value) < MinimumTriggerDelay)
            {
                return;                 // Limit to MinimumTriggerDelay since the last event.
            }
            var Classification = Other.Parent.GetComponent <ClassificationComponent>();

            if (_Classification != EntityClassification.Any && (Classification == null || (Classification.Classification & this.Classification) == 0))
            {
                return;
            }
            bool Valid = OnCollision(Other.Parent, Classification == null ? EntityClassification.Unknown : Classification.Classification);

            if (Valid)
            {
                this._LastTriggered = DateTime.Now;
                if (DisposeOnCollision)
                {
                    this.Dispose();
                    if (TriggerRemaining)
                    {
                        // TODO: This should only trigger things not already triggered for this collision.
                        // (Aka, DisposeOnCollision is false and already triggered before this one).
                        foreach (var OtherEvent in Parent.Components.Select(c => c as CollisionEventComponent).Where(c => c != null && c != this).ToArray())
                        {
                            OtherEvent.CollisionDetected(Component, Other, false);
                        }
                        Parent.Dispose();
                    }
                }
            }
        }
        public void BaseObserverReceivesAllEvents()
        {
            // Arrange

            var eventAggregator = new EventAggregator();
            var observer1 = new Mock<IObserve<IEvent>>();
            var observer2 = new Mock<IObserver<IEvent>>();

            eventAggregator.Subscribe(observer1.Object);
            eventAggregator.Subscribe(observer2.Object);

            var testEvent = new TestEvent();
            var otherEvent = new OtherEvent();

            // Act

            eventAggregator.Publish(testEvent);
            eventAggregator.Publish(otherEvent);

            // Assert

            observer1.Verify(x => x.OnNext(It.IsAny<IEvent>()), Times.Exactly(2));
            observer2.Verify(x => x.OnNext(It.IsAny<IEvent>()), Times.Exactly(2));
        }
Example #7
0
 public void Handle(OtherEvent ev)
 {
     this.Set("other", true);
 }
 protected void OnOtherEvent(OtherEventType e)
 {
     OtherEvent?.Invoke(this, e);
 }
        public void UserDraftsReturned()
        {
            var myUser = new MeUser()
            {
                UserId = "123"
            };

            var otherUser = new MeUser()
            {
                UserId = "456"
            };

            var myUserDraft = new OtherEvent()
            {
                EventId = "2",
                IsFinal = false,
                Text    = "draft user one",
                UserId  = "123",
                Created = DateTime.Now
            };

            var otherUserDraft = new OtherEvent()
            {
                EventId = "3",
                IsFinal = false,
                Text    = "draft user other",
                UserId  = "456",
                Created = DateTime.Now
            };

            var latest = new OtherEvent()
            {
                EventId = "1",
                IsFinal = true,
                Text    = "The others",
                UserId  = "123",
                Created = DateTime.Now
            };
            var drafts  = new[] { otherUserDraft };
            var history = new[] { latest };

            var caseBreakdown = new CaseBreakDown()
            {
                OtherEvents = new OtherEventContainer()
                {
                    Drafts  = drafts,
                    Latest  = latest,
                    History = history
                }
            };

            var examination = new Examination()
            {
                CaseBreakdown = caseBreakdown
            };

            var result = _mapper.Map <CaseBreakDownItem>(examination, opt => opt.Items["user"] = myUser);

            Assert.Equal(latest.EventId, result.OtherEvents.Latest.EventId);
            result.OtherEvents.History.Should().BeEquivalentTo(history);
            Assert.Null(result.OtherEvents.UsersDraft);

            var otherResult = _mapper.Map <CaseBreakDownItem>(examination, opt => opt.Items["user"] = otherUser);

            Assert.Equal(latest.EventId, result.OtherEvents.Latest.EventId);
            otherResult.OtherEvents.History.Should().BeEquivalentTo(history);
            Assert.Equal(otherUserDraft.EventId, otherResult.OtherEvents.UsersDraft.EventId);
        }