public void ThenShouldBeNotEqualGivenSameTickerAndDifferentContext() { //arrange var record1 = new TickerTrackerRecord("F", "hss"); var record2 = new TickerTrackerRecord("F", "r-wsb"); //act var @equals = record1.Equals(record2); //assert Assert.That(@equals, Is.False); }
public void ThenShouldBeEqualGivenSameTickerAndSameContext() { //arrange var record1 = new TickerTrackerRecord("TSLA", "r-wsb"); var record2 = new TickerTrackerRecord("TSLA", "r-wsb"); //act var @equals = record1.Equals(record2); //assert Assert.That(@equals, Is.True); }
public List<string> GetResponse(IrcMessage ircMessage) { var ticker = ircMessage.Message.Substring(1); if (_tickerTransformDictionary.ContainsKey(ticker)) { ticker = _tickerTransformDictionary[ticker]; } var responses = new List<string>(); if (string.IsNullOrWhiteSpace(ticker)) { responses.Add("Not found"); } else { var requestTime = DateTime.Now; var @private = ircMessage.Target == _username; var tickerTrackerRecord = new TickerTrackerRecord(ticker, @private ? ircMessage.Sender : _channel); var requestDifference = new TimeSpan(); var repeat = false; if (_tickerTracker.ContainsKey(tickerTrackerRecord)) { requestDifference = requestTime.Subtract(_tickerTracker[tickerTrackerRecord]); repeat = requestDifference < _norepeat; if (!repeat) { _tickerTracker[tickerTrackerRecord] = requestTime; } } else { _tickerTracker.Add(tickerTrackerRecord, requestTime); } foreach (var pricingData in _stockTickerDataSource.GetPricingData(ticker)) { if (repeat) { responses.Add(string.Format(@"PRIVMSG {0} : I am configured to only post tickers every {3:mm\:ss}. Ticker was requested {1:mm\:ss} ago. Please wait {2:mm\:ss} before requesting again.", ircMessage.Sender, requestDifference, _norepeat.Subtract(requestDifference), _norepeat)); } else { responses.Add(string.Format(@"PRIVMSG {0} :{1}", @private ? ircMessage.Sender : ircMessage.Target, pricingData)); } } } return responses; }