public void TestInitialise() { _Statistics = Factory.Singleton.Resolve<IStatistics>().Singleton; _Statistics.Initialise(); _Statistics.ResetConnectionStatistics(); _Statistics.ResetMessageCounters(); _OriginalClassFactory = Factory.TakeSnapshot(); _RuntimeEnvironment = TestUtilities.CreateMockSingleton<IRuntimeEnvironment>(); _RuntimeEnvironment.Setup(r => r.IsTest).Returns(true); _Port30003Translator = TestUtilities.CreateMockImplementation<IBaseStationMessageTranslator>(); _ModeSTranslator = TestUtilities.CreateMockImplementation<IModeSTranslator>(); _AdsbTranslator = TestUtilities.CreateMockImplementation<IAdsbTranslator>(); _RawMessageTranslator = new Mock<IRawMessageTranslator>(MockBehavior.Default) { DefaultValue = DefaultValue.Mock }; _ModeSParity = TestUtilities.CreateMockImplementation<IModeSParity>(); _ModeSMessage = new ModeSMessage(); _AdsbMessage = new AdsbMessage(_ModeSMessage); _Port30003Message = new BaseStationMessage(); _Port30003Translator.Setup(r => r.Translate(It.IsAny<string>())).Returns(_Port30003Message); _AdsbTranslator.Setup(r => r.Translate(It.IsAny<ModeSMessage>())).Returns(_AdsbMessage); _ModeSTranslator.Setup(r => r.Translate(It.IsAny<byte[]>())).Returns(_ModeSMessage); _ModeSTranslator.Setup(r => r.Translate(It.IsAny<byte[]>(), It.IsAny<int>())).Returns(_ModeSMessage); _RawMessageTranslator.Setup(r => r.Translate(It.IsAny<DateTime>(), It.IsAny<ModeSMessage>(), It.IsAny<AdsbMessage>())).Returns(_Port30003Message); _Listener = Factory.Singleton.Resolve<IListener>(); _Provider = new MockListenerProvider(); _BytesExtractor = new MockMessageBytesExtractor(); _ExceptionCaughtEvent = new EventRecorder<EventArgs<Exception>>(); _ConnectionStateChangedEvent = new EventRecorder<EventArgs>(); _ModeSMessageReceivedEvent = new EventRecorder<ModeSMessageEventArgs>(); _Port30003MessageReceivedEvent = new EventRecorder<BaseStationMessageEventArgs>(); _SourceChangedEvent = new EventRecorder<EventArgs>(); _Listener.ConnectionStateChanged += _ConnectionStateChangedEvent.Handler; _Listener.ExceptionCaught += _ExceptionCaughtEvent.Handler; _Listener.ModeSMessageReceived += _ModeSMessageReceivedEvent.Handler; _Listener.Port30003MessageReceived += _Port30003MessageReceivedEvent.Handler; _Listener.SourceChanged += _SourceChangedEvent.Handler; _ExceptionCaughtEvent.EventRaised += DefaultExceptionCaughtHandler; }
public void Listener_ChangeSource_With_Reconnec_True_Connects_New_Provider_Even_If_Not_Originally_Connected() { var firstProvider = new MockListenerProvider(); var firstExtractor = new MockMessageBytesExtractor(); firstProvider.ConfigureForConnect(); _Listener.ChangeSource(firstProvider.Object, firstExtractor.Object, _RawMessageTranslator.Object, false); _Provider.ConfigureForConnect(); _Listener.ChangeSource(_Provider.Object, _BytesExtractor.Object, _RawMessageTranslator.Object, true); _Provider.Verify(p => p.BeginConnect(It.IsAny<AsyncCallback>()), Times.Once()); }
public void Listener_ChangeSource_Disconnects_Existing_Provider_Even_If_Not_Connected() { var firstProvider = new MockListenerProvider(); var firstExtractor = new MockMessageBytesExtractor(); firstProvider.ConfigureForConnect(); _Listener.ChangeSource(firstProvider.Object, firstExtractor.Object, _RawMessageTranslator.Object, false); _Provider.ConfigureForConnect(); _Listener.ChangeSource(_Provider.Object, _BytesExtractor.Object, _RawMessageTranslator.Object, false); firstProvider.Verify(p => p.Close(), Times.Once()); }
public void Listener_ChangeSource_AutoReconnect_Does_Not_Reconnect_If_Clear() { var firstProvider = new MockListenerProvider(); var firstExtractor = new MockMessageBytesExtractor(); firstProvider.ConfigureForConnect(); _Listener.ChangeSource(firstProvider.Object, firstExtractor.Object, _RawMessageTranslator.Object, false); _Listener.Connect(false); _Provider.ConfigureForConnect(); _Listener.ChangeSource(_Provider.Object, _BytesExtractor.Object, _RawMessageTranslator.Object, false); firstProvider.Verify(p => p.Close(), Times.Once()); _Provider.Verify(p => p.BeginConnect(It.IsAny<AsyncCallback>()), Times.Never()); }
public void Listener_ChangeSource_AutoReconnect_Reconnects_If_Set() { var firstProvider = new MockListenerProvider(); var firstExtractor = new MockMessageBytesExtractor(); firstProvider.Setup(p => p.Close()).Callback(() => { Assert.AreSame(firstProvider.Object, _Listener.Provider); Assert.AreSame(firstExtractor.Object, _Listener.BytesExtractor); }); firstProvider.ConfigureForConnect(); _Listener.ChangeSource(firstProvider.Object, firstExtractor.Object, _RawMessageTranslator.Object, false); _Listener.Connect(false); _Provider.ConfigureForConnect(); _Listener.ChangeSource(_Provider.Object, _BytesExtractor.Object, _RawMessageTranslator.Object, true); firstProvider.Verify(p => p.Close(), Times.Once()); _Provider.Verify(p => p.BeginConnect(It.IsAny<AsyncCallback>()), Times.Once()); }
public void Listener_ChangeSource_Is_Not_Raised_If_Nothing_Changes() { var newProvider = new MockListenerProvider(); var newExtractor = new MockMessageBytesExtractor(); var newRawMessageTranslator = new Mock<IRawMessageTranslator>(MockBehavior.Default) { DefaultValue = DefaultValue.Mock }; _Listener.ChangeSource(_Provider.Object, _BytesExtractor.Object, _RawMessageTranslator.Object, false); Assert.AreEqual(1, _SourceChangedEvent.CallCount); _Listener.ChangeSource(newProvider.Object, _BytesExtractor.Object, _RawMessageTranslator.Object, false); Assert.AreEqual(2, _SourceChangedEvent.CallCount); _Listener.ChangeSource(newProvider.Object, newExtractor.Object, _RawMessageTranslator.Object, false); Assert.AreEqual(3, _SourceChangedEvent.CallCount); _Listener.ChangeSource(newProvider.Object, newExtractor.Object, newRawMessageTranslator.Object, false); Assert.AreEqual(4, _SourceChangedEvent.CallCount); _Listener.ChangeSource(newProvider.Object, newExtractor.Object, newRawMessageTranslator.Object, false); Assert.AreEqual(4, _SourceChangedEvent.CallCount); }