public void ReceivePackets() { if (!_settings.ListenPort.HasValue) { throw new ArgumentException("Listen port is not initialized"); } var msgCache = new MessageCache(); var sender = new UdpPacketSender(); var packetsCount = 10; var msg = Encoding.ASCII.GetBytes("$PANSPT,33,22,1*88\r\n$PANSPT,44,55,1*99\r\n"); using (var receiver = new SISPOSReceiver(_settings, msgCache)) { receiver.Start(); for (int i = 0; i < packetsCount; i++) { sender.SendToLocalhost(_settings.ListenPort.Value, msg); } } Assert.AreEqual(packetsCount, msgCache.Count, "The message was not received"); Assert.IsTrue(msgCache.Pop().ContainsSubArray(msg)); }
public Proxy() { _cts = new CancellationTokenSource(); _token = _cts.Token; var settings = new Settings(); var dbCache = new DbCache(); var inputCache = new MessageCache(); var outputCache = new MessageCache(); var settingsInitTask = settings.InitAsync(); var dbCacheInitTask = dbCache.InitAsync(); Task.WaitAll(new[] { settingsInitTask, dbCacheInitTask }, _token); _dbReceiver = new DbReceiver(settings, dbCache); _sisposReceiver = new SISPOSReceiver(settings, inputCache); _sisposDataProcessor = new SISPOSDataProcessor(settings, dbCache, inputCache, outputCache); _sisposTransmitter = new SISPOSTransmitter(settings, outputCache); }