コード例 #1
0
        public void Constructor_AddEventDuplicate_ShouldThrowInvalidOperation()
        {
            var eventAddIn = new FakeEventAddIn();
              var eventManager = CreateEventManager (new[] { eventAddIn, eventAddIn });

              Assert.That (() => eventManager.LoadAddIns(), Throws.InvalidOperationException);
        }
コード例 #2
0
 public void Constructor_AddSharedExternalEvents_ShouldSucceed()
 {
     var eventAddIn = new FakeEventAddIn();
       var eventManager = CreateEventManager (new[] { eventAddIn });
       eventManager.LoadAddIns();
       Assert.That (eventManager.HasEvent (eventAddIn.Name, eventAddIn.FakeEventName), Is.True);
       Assert.That (eventAddIn.IsLoaded && eventAddIn.EventsRegistered, Is.True);
 }
コード例 #3
0
        public void Dispose_SharedEventIsNotDisposed_ShouldSucceed()
        {
            var eventAddIn = new FakeEventAddIn();
              var eventManager = CreateEventManager (new[] { eventAddIn });
              eventManager.LoadAddIns();
              Assert.That (eventManager.HasEvent (eventAddIn.Name, eventAddIn.FakeEventName), Is.True);
              Assert.That (eventAddIn.IsLoaded && eventAddIn.EventsRegistered, Is.True);

              eventManager.Dispose();
              Assert.That (eventAddIn, Is.Not.Null);
              Assert.That (eventAddIn.IsLoaded && eventAddIn.EventsRegistered, Is.False);
        }
コード例 #4
0
 public void Event_FireSharedEvent_ShouldSucceed()
 {
     var eventAddIn = new FakeEventAddIn();
       var eventManager = CreateEventManager (new[] { eventAddIn });
       eventManager.LoadAddIns();
       var wasCalled = false;
       eventManager.EventFired += (sender, args) =>
                          {
                            Assert.That (args.ScriptArgs, Is.TypeOf<FakeEventData>());
                            Assert.That (args.ScriptArgs.EventID, Is.EqualTo (c_fakeEventID));
                            Assert.That (((FakeEventData) args.ScriptArgs).ContainsData, Is.True);
                            wasCalled = true;
                          };
       eventManager.Register (eventAddIn.FakeEventName, "some callback", eventAddIn.Name, new Condition (CreateCondition()));
       Assert.That (() => eventAddIn.RaiseEvent(), Throws.Nothing);
       Assert.That (wasCalled, Is.True);
 }
コード例 #5
0
        public void UnegisterEvent_EventDeregistration_ShouldSucceed()
        {
            ScriptEvent scriptEvent = null;
              var eventManager = CreateEventManager (new List<EventAddInBase>());

              var eventAddIn = new FakeEventAddIn();

              Assert.That (
              () => eventManager.RegisterEvent (eventAddIn, ref scriptEvent, eventAddIn.FakeEventName),
              Throws.Nothing);

              Assert.That (
              () => eventManager.UnregisterEvent (eventAddIn, ref scriptEvent, eventAddIn.FakeEventName),
              Throws.Nothing);
              Assert.That (scriptEvent, Is.Null);
              Assert.That (eventManager.HasEvent (eventAddIn.Name, eventAddIn.FakeEventName), Is.False);
              Assert.That (eventAddIn.IsLoaded && eventAddIn.EventsRegistered, Is.False);
        }
コード例 #6
0
        public void RegisterEvent_EventDuplicateRegistration_ShouldThrowInvalidOperation()
        {
            ScriptEvent scriptEvent = null;
              var eventManager = CreateEventManager (new List<EventAddInBase>());

              var eventAddIn = new FakeEventAddIn();

              Assert.That (
              () => eventManager.RegisterEvent (eventAddIn, ref scriptEvent, eventAddIn.FakeEventName),
              Throws.Nothing);
              Assert.That (
              () => eventManager.RegisterEvent (eventAddIn, ref scriptEvent, eventAddIn.FakeEventName),
              Throws.InvalidOperationException.With.Message.Contains ("already registered."));

              Assert.That (scriptEvent, Is.Not.Null);
              Assert.That (eventManager.HasEvent (eventAddIn.Name, eventAddIn.FakeEventName), Is.True);
        }
コード例 #7
0
        public void HasEvent_EventDoesExist_ShouldReturnTrue()
        {
            var eventManager = CreateEventManager (new List<EventAddInBase>());
              var eventAddIn = new FakeEventAddIn();
              eventAddIn.RegisterEvents (eventManager);

              Assert.That (eventManager.HasEvent (eventAddIn.Name, eventAddIn.FakeEventName), Is.True);
        }
コード例 #8
0
        public void Event_FireUnregisteredEventInRegisteredModule_ShouldThrow()
        {
            var eventAddIn = new FakeEventAddIn();
              var eventManager = CreateEventManager (new[] { eventAddIn });
              eventManager.LoadAddIns();
              eventManager.EventFired += (sender, args) => { }; // will never be called

              eventManager.Register (eventAddIn.FakeEventName, "some callback", eventAddIn.Name, new Condition (CreateCondition()));
              eventAddIn.FakeEventName = "some other event";
              Assert.That (
              () => eventAddIn.RaiseEvent(),
              Throws.InvalidOperationException
              .With.Message.EqualTo (string.Format ("Cannot find '{0}.{1}'.", eventAddIn.Name,  eventAddIn.FakeEventName)));
        }