public void NoMessageInterestTest() { var keys = FeedRoutingKeyBuilder.GenerateKeys(new List <MessageInterest>()); Assert.IsNotNull(keys); Assert.IsTrue(keys.Any()); }
/// <summary> /// Constructs and returns a <see cref="IEnumerable{String}"/> containing routing keys for the specified session /// </summary> /// <param name="session">The <see cref="OddsFeedSession"/> for which to get the routing keys</param> /// <returns>The <see cref="IEnumerable{String}"/> containing routing keys for the specified session</returns> private IEnumerable <string> GetSessionRoutingKeys(OddsFeedSession session) { var interests = Sessions.Select(s => ((OddsFeedSession)s).MessageInterest); var keys = FeedRoutingKeyBuilder.GenerateKeys(interests, InternalConfig.NodeId).ToList(); return(keys[Sessions.IndexOf(session)]); }
public void MessageReceivedEventIsRaisedForUnparsableRoutingKey() { _messageReceiver.Open(MessageInterest.AllMessages, FeedRoutingKeyBuilder.GetStandardKeys()); var eventRaised = false; _messageReceiver.FeedMessageReceived += (sender, args) => { eventRaised = true; }; _mock.Raise(mock => mock.Received += null, new BasicDeliverEventArgs("", 1, false, ",", "routing_key", null, GetFileContent("odds_change.xml"))); Assert.IsTrue(eventRaised, "eventRaised flag should be set to true"); }
/// <summary> /// Opens the current instance /// </summary> /// <exception cref="InvalidOperationException">Current FeedSystemSession is already opened</exception> public void Open() { if (Interlocked.CompareExchange(ref _isOpened, 1, 0) == 1) { throw new InvalidOperationException("Current FeedSystemSession is already opened"); } _messageReceiver.FeedMessageReceived += OnFeedMessageReceived; _messageReceiver.FeedMessageDeserializationFailed += OnFeedMessageDeserializationFailed; _messageReceiver.Open(null, FeedRoutingKeyBuilder.GetLiveKeys()); }
public void NullOrEmptyDataDoesNotRaiseDeserializationFailedEvent() { _messageReceiver.Open(MessageInterest.AllMessages, FeedRoutingKeyBuilder.GetStandardKeys()); var deserializationFailed = false; _messageReceiver.FeedMessageDeserializationFailed += (sender, args) => { deserializationFailed = true; }; _mock.Raise(mock => mock.Received += null, new BasicDeliverEventArgs("", 1, false, ",", null, null, null)); _mock.Raise(mock => mock.Received += null, new BasicDeliverEventArgs("", 1, false, ",", null, null, new byte[0])); Assert.IsFalse(deserializationFailed, "deserializationFailed should be false"); }
public void CorrectDataIsPassedToDeserializationFailedEvent() { _messageReceiver.Open(MessageInterest.AllMessages, FeedRoutingKeyBuilder.GetStandardKeys()); byte[] data = null; var messageData = new byte[] { 1, 2, 3, 4, 100, 99 }; _messageReceiver.FeedMessageDeserializationFailed += (sender, args) => { data = args.RawData.ToArray(); }; _mock.Raise(mock => mock.Received += null, new BasicDeliverEventArgs("", 1, false, ",", null, null, messageData)); var areEqual = messageData.SequenceEqual(data); Assert.IsTrue(areEqual, "both arrays should be equal"); }
public void MessageReceivedEventIsRaisedForOddsChange() { _messageReceiver.Open(MessageInterest.AllMessages, FeedRoutingKeyBuilder.GetStandardKeys()); var routingKey = "hi.-.live.odds_change.2.sr:match.9900415"; FeedMessage message = null; _messageReceiver.FeedMessageReceived += (sender, args) => { message = args.Message; }; _mock.Raise(mock => mock.Received += null, new BasicDeliverEventArgs("", 1, false, ",", routingKey, null, GetFileContent("odds_change.xml"))); Assert.IsNotNull(message, "message should not be a null reference"); var expectedSportId = URN.Parse("sr:sport:2"); Assert.AreEqual(expectedSportId, message.SportId, $"SportId on the messages should be {expectedSportId}"); }
public void SingleMessageInterestTest() { var interests = new List <MessageInterest> { MessageInterest.AllMessages }; var keys = FeedRoutingKeyBuilder.GenerateKeys(interests); Assert.IsNotNull(keys); Assert.IsTrue(keys.Any()); interests = new List <MessageInterest> { MessageInterest.PrematchMessagesOnly }; keys = FeedRoutingKeyBuilder.GenerateKeys(interests); Assert.IsNotNull(keys); Assert.IsTrue(keys.Any()); interests = new List <MessageInterest> { MessageInterest.LiveMessagesOnly }; keys = FeedRoutingKeyBuilder.GenerateKeys(interests); Assert.IsNotNull(keys); Assert.IsTrue(keys.Any()); interests = new List <MessageInterest> { MessageInterest.HighPriorityMessages }; keys = FeedRoutingKeyBuilder.GenerateKeys(interests); Assert.IsNotNull(keys); Assert.IsTrue(keys.Any()); interests = new List <MessageInterest> { MessageInterest.LowPriorityMessages }; keys = FeedRoutingKeyBuilder.GenerateKeys(interests); Assert.IsNotNull(keys); Assert.IsTrue(keys.Any()); interests = new List <MessageInterest> { MessageInterest.VirtualSportMessages }; keys = FeedRoutingKeyBuilder.GenerateKeys(interests); Assert.IsNotNull(keys); Assert.IsTrue(keys.Any()); }
public void EventsAreRaisedWhenTheReceiverIsOpened() { _messageReceiver.Open(MessageInterest.AllMessages, FeedRoutingKeyBuilder.GetStandardKeys()); var messageReceived = false; var deserializationFailed = false; var messageData = GetFileContent("odds_change.xml"); _messageReceiver.FeedMessageReceived += (sender, args) => { messageReceived = true; }; _messageReceiver.FeedMessageDeserializationFailed += (sender, args) => { deserializationFailed = true; }; _mock.Raise(mock => mock.Received += null, new BasicDeliverEventArgs("", 1, false, ",", null, null, messageData)); _mock.Raise(mock => mock.Received += null, new BasicDeliverEventArgs("", 1, false, ",", null, null, new [] { (byte)1 })); Assert.IsTrue(messageReceived, "messageReceived should be true"); Assert.IsTrue(deserializationFailed, "deserializationFailed should be true"); }
public void EventsAreNotRaisedAfterTheReceiverIsClosed() { _messageReceiver.Open(MessageInterest.AllMessages, FeedRoutingKeyBuilder.GetStandardKeys()); _messageReceiver.Close(); EventsAreNotRaisedBeforeTheReceiverIsOpened(); }