public async Task SendAsync_MessageDispatcherStarted_WebSocketShouldSendCorrectByteArray() { //arrange object message = new { Test = "testMessage" }; JObject jsonMessage = JObject.FromObject(message); RosPublishMessage rosPublishMessage = new RosPublishMessage() { Id = _publisher._uniqueId, Topic = TOPIC, Message = jsonMessage }; byte[] serialized = _messageSerializer.Serialize(rosPublishMessage); _clientWebSocketMock.SetupGet(clientWebSocket => clientWebSocket.State).Returns(WebSocketState.Open); await _messageDispatcher.StartAsync(); //act await _publisher.PublishAsync(message); //assert _clientWebSocketMock.Verify(clientWebSocket => clientWebSocket.SendAsync( It.Is <ArraySegment <byte> >(arraySegment => arraySegment.Array.SequenceEqual(serialized)), WebSocketMessageType.Text, true, _cancellationTokenSource.Token)); }
private void RosbridgeMessageReceived(object sender, RosbridgeMessageReceivedEventArgs args) { if (null != args) { RosPublishMessage receivedPublishMessage = args.RosbridgeMessage.ToObject <RosPublishMessage>(); if (null != RosMessageReceived && null != receivedPublishMessage && !string.IsNullOrEmpty(receivedPublishMessage.Topic) && receivedPublishMessage.Topic.Equals(this.Topic)) { TRosMessage receivedRosMessage = receivedPublishMessage.Message.ToObject <TRosMessage>(); RosMessageReceived(this, new RosMessageReceivedEventArgs <TRosMessage>(receivedRosMessage)); } } }