public void TestInitialise() { _OriginalClassFactory = Factory.TakeSnapshot(); _HeartbeatService = TestUtilities.CreateMockSingleton<IHeartbeatService>(); _StandingDataManager = TestUtilities.CreateMockSingleton<IStandingDataManager>(); _StandingDataManager.Setup(r => r.FindCodeBlock(It.IsAny<string>())).Returns(new CodeBlock() { Country = "X" }); _StandingDataManager.Setup(r => r.CodeBlocksLoaded).Returns(true); _Statistics = Factory.Singleton.Resolve<IStatistics>().Singleton; _Statistics.Initialise(); _Statistics.ResetConnectionStatistics(); _Statistics.ResetMessageCounters(); _Translator = Factory.Singleton.Resolve<IRawMessageTranslator>(); _Provider = new Mock<IRawMessageTranslatorProvider>() { DefaultValue = DefaultValue.Mock }.SetupAllProperties(); _Provider.Setup(r => r.UtcNow).Returns(new DateTime(1999, 12, 31)); _Translator.Provider = _Provider.Object; _PositionResetEvent = new EventRecorder<EventArgs<string>>(); _Translator.PositionReset += _PositionResetEvent.Handler; _NowUtc = new DateTime(2012, 1, 2, 3, 4, 5, 6); _ModeSMessage = new ModeSMessage() { DownlinkFormat = DownlinkFormat.AllCallReply, Icao24 = 0x112233, ParityInterrogatorIdentifier = 0 }; _AdsbMessage = new AdsbMessage(_ModeSMessage); _RandomIcaos = new List<int>(); }
/// <summary> /// See interface docs. /// </summary> /// <param name="connector"></param> /// <param name="bytesExtractor"></param> /// <param name="rawMessageTranslator"></param> public void ChangeSource(IConnector connector, IMessageBytesExtractor bytesExtractor, IRawMessageTranslator rawMessageTranslator) { var changed = false; var reconnect = false; lock (_SyncLock) { reconnect = Connector != null && Connector.EstablishingConnections; if (connector != Connector || bytesExtractor != BytesExtractor || rawMessageTranslator != RawMessageTranslator) { if (RawMessageTranslator != null && RawMessageTranslator != rawMessageTranslator) { RawMessageTranslator.Dispose(); } if (Connector != connector) { if (Connector != null) { UnhookConnector(); Connector.Dispose(); } Connector = connector; Connector.IsSingleConnection = true; HookConnector(); } BytesExtractor = bytesExtractor; RawMessageTranslator = rawMessageTranslator; if (RawMessageTranslator != null) { RawMessageTranslator.Statistics = Statistics; } TotalMessages = 0; TotalBadMessages = 0; changed = true; } } if (changed) { OnSourceChanged(EventArgs.Empty); if (reconnect) { Connect(); } } }
/// <summary> /// See interface docs. /// </summary> /// <param name="provider"></param> /// <param name="bytesExtractor"></param> /// <param name="rawMessageTranslator"></param> /// <param name="autoReconnect"></param> public void ChangeSource(IListenerProvider provider, IMessageBytesExtractor bytesExtractor, IRawMessageTranslator rawMessageTranslator, bool autoReconnect) { lock (_SyncLock) { bool changed = false; if (provider != Provider || bytesExtractor != BytesExtractor || rawMessageTranslator != RawMessageTranslator) { if (Provider != null) { Disconnect(); } if (RawMessageTranslator != null && RawMessageTranslator != rawMessageTranslator) { RawMessageTranslator.Dispose(); } Provider = provider; BytesExtractor = bytesExtractor; RawMessageTranslator = rawMessageTranslator; TotalMessages = 0; TotalBadMessages = 0; changed = true; } if (changed) { OnSourceChanged(EventArgs.Empty); if (autoReconnect) { Connect(false); } } } }
public void RawMessageTranslator_Constructor_Initialises_To_Known_State_And_Properties_Work() { _Translator.Dispose(); _Translator = Factory.Singleton.Resolve<IRawMessageTranslator>(); Assert.IsNotNull(_Translator.Provider); TestUtilities.TestProperty(_Translator, r => r.Provider, _Translator.Provider, _Provider.Object); TestUtilities.TestProperty(_Translator, r => r.AcceptIcaoInNonPICount, 0, 100); TestUtilities.TestProperty(_Translator, r => r.AcceptIcaoInNonPIMilliseconds, 0, 100); TestUtilities.TestProperty(_Translator, r => r.AcceptIcaoInPI0Count, 1, 100); TestUtilities.TestProperty(_Translator, r => r.AcceptIcaoInPI0Milliseconds, 1000, 42000); TestUtilities.TestProperty(_Translator, r => r.GlobalDecodeAirborneThresholdMilliseconds, 10000, 15000); TestUtilities.TestProperty(_Translator, r => r.GlobalDecodeFastSurfaceThresholdMilliseconds, 25000, 29000); TestUtilities.TestProperty(_Translator, r => r.GlobalDecodeSlowSurfaceThresholdMilliseconds, 50000, 70000); TestUtilities.TestProperty(_Translator, r => r.IgnoreMilitaryExtendedSquitter, false); TestUtilities.TestProperty(_Translator, r => r.LocalDecodeMaxSpeedAirborne, 15.0, 18.9); TestUtilities.TestProperty(_Translator, r => r.LocalDecodeMaxSpeedTransition, 5.0, 1.4); TestUtilities.TestProperty(_Translator, r => r.LocalDecodeMaxSpeedSurface, 3.0, 2.7); TestUtilities.TestProperty(_Translator, r => r.ReceiverLocation, null, new GlobalCoordinate()); TestUtilities.TestProperty(_Translator, r => r.ReceiverRangeKilometres, 650, 1000); TestUtilities.TestProperty(_Translator, r => r.SuppressReceiverRangeCheck, false); TestUtilities.TestProperty(_Translator, r => r.TrackingTimeoutSeconds, 600, 3600); }
/// <summary> /// See interface docs. /// </summary> /// <param name="connector"></param> /// <param name="bytesExtractor"></param> /// <param name="rawMessageTranslator"></param> public void ChangeSource(IConnector connector, IMessageBytesExtractor bytesExtractor, IRawMessageTranslator rawMessageTranslator) { throw new InvalidOperationException("You cannot call ChangeSource on a merged feed listener"); }
/// <summary> /// See interface docs. /// </summary> /// <param name="connector"></param> /// <param name="bytesExtractor"></param> /// <param name="rawMessageTranslator"></param> public void ChangeSource(IConnector connector, IMessageBytesExtractor bytesExtractor, IRawMessageTranslator rawMessageTranslator) { _Original.ChangeSource(connector, bytesExtractor, rawMessageTranslator); }
/// <summary> /// See interface docs. /// </summary> /// <param name="provider"></param> /// <param name="bytesExtractor"></param> /// <param name="rawMessageTranslator"></param> /// <param name="autoReconnect"></param> public void ChangeSource(IListenerProvider provider, IMessageBytesExtractor bytesExtractor, IRawMessageTranslator rawMessageTranslator, bool autoReconnect) { lock(_SyncLock) { bool changed = false; if(provider != Provider || bytesExtractor != BytesExtractor || rawMessageTranslator != RawMessageTranslator) { if(Provider != null) Disconnect(); if(RawMessageTranslator != null && RawMessageTranslator != rawMessageTranslator) RawMessageTranslator.Dispose(); Provider = provider; BytesExtractor = bytesExtractor; RawMessageTranslator = rawMessageTranslator; TotalMessages = 0; TotalBadMessages = 0; changed = true; } if(changed) { OnSourceChanged(EventArgs.Empty); if(autoReconnect) Connect(false); } } }