public void ThrowEventOfTypeWithSender()
        {
            var objectListening = new FakeObject();
            var objectActing    = new FakeObject {
                Name = "Actor"
            };
            var resultArgs = new RealmEventArgs();

            var handler = new EventHandler(new CommonTimer(), _mockLogger);

            _eventCallback = args => { resultArgs = args; };

            handler.RegisterListener(new EventListener(objectListening, null, typeof(FakeEvent), _eventCallback));

            handler.ThrowEvent <FakeEvent>(objectActing);

            Thread.Sleep(250);

            resultArgs.Sender.Should().NotBeNull();
            resultArgs.Sender.Should().BeAssignableTo <FakeObject>();

            var sender = resultArgs.Sender as FakeObject;

            sender.Name.Should().Be("Actor");
        }
        public void ThrowEvent_ThrowsException_WhenUnknownEventTypeIsPassed()
        {
            var objectListening = new FakeObject();
            var objectActing    = new FakeObject {
                Name = "Actor"
            };

            var handler = new EventHandler(new CommonTimer(), _mockLogger);

            handler.RegisterListener(new EventListener(objectListening, null, typeof(FakeEvent), _eventCallback));

            Action act = () => handler.ThrowEvent <BuggyFakeEvent>(objectActing);

            act.Should().Throw <InstanceNotFoundException>();
        }