/// <summary>
        /// Constructor expect atleast transponderReceiver to get data
        /// if dataconverter and eventhandler is not provided, default objects will be created
        /// </summary>
        /// <param name="transponderReceiver"></param>
        /// <param name="dataConverter"></param>
        /// <param name="eventHandler"></param>
        public ATMDataDecoder(ITransponderReceiver transponderReceiver, IATMDataConverter dataConverter = null,
            IATMEventHandler eventHandler = null)
        {
            _dataConverter = dataConverter ?? new ATMDataConverter(new ATMAngleConverter(), new ATMVelocityConverter());
            _eventHandler = eventHandler ?? new ATMEventHandler();

            if (transponderReceiver != null) transponderReceiver.TransponderDataReady += OnTransponderDataReady;
        }
        /// <summary>
        /// Constructor expect atleast transponderReceiver to get data
        /// if dataconverter and eventhandler is not provided, default objects will be created
        /// </summary>
        /// <param name="transponderReceiver"></param>
        /// <param name="dataConverter"></param>
        /// <param name="eventHandler"></param>
        public ATMDataDecoder(ITransponderReceiver transponderReceiver, IATMDataConverter dataConverter = null,
                              IATMEventHandler eventHandler = null)
        {
            _dataConverter = dataConverter ?? new ATMDataConverter(new ATMAngleConverter(), new ATMVelocityConverter());
            _eventHandler  = eventHandler ?? new ATMEventHandler();

            if (transponderReceiver != null)
            {
                transponderReceiver.TransponderDataReady += OnTransponderDataReady;
            }
        }
        public void Setup()
        {
            _fakeTransponderDataSource = Substitute.For<ITransponderReceiver>();
            _uut = new ATMDataDecoder(_fakeTransponderDataSource, _atmDataConverter = Substitute.For<IATMDataConverter>(), _atmEventHandler = Substitute.For<IATMEventHandler>());

            _atmDataConverter.Convert(Arg.Any<List<string>>())
                .Returns(new List<IATMTransponderData> { new ATMTransponderData { Tag = "F12" } });
        }
        public void Setup()
        {
            _fakeTransponderDataSource = Substitute.For <ITransponderReceiver>();
            _uut = new ATMDataDecoder(_fakeTransponderDataSource, _atmDataConverter = Substitute.For <IATMDataConverter>(), _atmEventHandler = Substitute.For <IATMEventHandler>());

            _atmDataConverter.Convert(Arg.Any <List <string> >())
            .Returns(new List <IATMTransponderData> {
                new ATMTransponderData {
                    Tag = "F12"
                }
            });
        }