public void ReceiveBalloonMessage() { // arrange var fakeModuleClient = new FakeModuleClient(); var telemetryMessage = CreateTelemetryMessage(); var balloonMessage = CreateBalloonMessage(); var trackerModule = new WeatherBalloon.TrackerModule.TrackerModule(); // act trackerModule.Receive(telemetryMessage); var task = trackerModule.Receive(balloonMessage, fakeModuleClient); // verify task.Result.ShouldBe(true); fakeModuleClient.SentMessages.Count.ShouldBe(2); // Sent on correct output? fakeModuleClient.SentMessages[0].Item1.ShouldBe(WeatherBalloon.TrackerModule.TrackerModule.TrackerOutputName); // Correct message? var rawMessage0 = fakeModuleClient.SentMessages[0].Item2; var receivedBalloonMessage = MessageHelper.ParseMessage <BalloonMessage>(rawMessage0); var rawMessage1 = fakeModuleClient.SentMessages[1].Item2; var receivedTrackerMessage = MessageHelper.ParseMessage <TrackerMessage>(rawMessage1); // balloon message fields receivedBalloonMessage.Location.track.ShouldBe(balloonMessage.Location.track); [email protected](balloonMessage.Location.@long); receivedBalloonMessage.Location.lat.ShouldBe(balloonMessage.Location.lat); receivedBalloonMessage.Location.mode.ShouldBe(balloonMessage.Location.mode); receivedBalloonMessage.Location.time.ShouldBe(balloonMessage.Location.time); receivedBalloonMessage.Location.speed.ShouldBe(balloonMessage.Location.speed); receivedBalloonMessage.Location.climb.ShouldBe(balloonMessage.Location.climb); receivedBalloonMessage.State.ShouldBe(balloonMessage.State); receivedBalloonMessage.AveAscent.ShouldBe(balloonMessage.AveAscent); receivedBalloonMessage.AveDescent.ShouldBe(balloonMessage.AveDescent); receivedBalloonMessage.FlightId.ShouldBe(balloonMessage.FlightId); receivedBalloonMessage.DeviceName.ShouldBe("Weather Balloon"); // tracker message fields receivedTrackerMessage.Location.track.ShouldBe(telemetryMessage.track); [email protected](telemetryMessage.@long); receivedTrackerMessage.Location.lat.ShouldBe(telemetryMessage.lat); receivedTrackerMessage.Location.mode.ShouldBe(telemetryMessage.mode); receivedTrackerMessage.Location.time.ShouldBe(telemetryMessage.time); receivedTrackerMessage.Location.speed.ShouldBe(telemetryMessage.speed); receivedTrackerMessage.Location.climb.ShouldBe(telemetryMessage.climb); receivedTrackerMessage.FlightId.ShouldBe(balloonMessage.FlightId); }
public void TransmitError() { // arrange var fakeModuleClient = A.Fake <IModuleClient>(); A.CallTo(fakeModuleClient).Throws(new Exception("Fake exception generated for testing")); var telemetryMessage = CreateTelemetryMessage(); var balloonMessage = CreateBalloonMessage(); var trackerModule = new WeatherBalloon.TrackerModule.TrackerModule(); // act trackerModule.Receive(telemetryMessage); var task = trackerModule.Receive(balloonMessage, fakeModuleClient); // verify task.Result.ShouldBe(false); }
public void ReceiveTelemetryMessageTest() { // arrange var telemetryMessage = CreateTelemetryMessage(); var trackerModule = new WeatherBalloon.TrackerModule.TrackerModule(); // act trackerModule.Receive(telemetryMessage); // verify trackerModule.Location.track.ShouldBe(telemetryMessage.track); [email protected](telemetryMessage.@long); trackerModule.Location.lat.ShouldBe(telemetryMessage.lat); trackerModule.Location.mode.ShouldBe(telemetryMessage.mode); trackerModule.Location.time.ShouldBe(telemetryMessage.time); trackerModule.Location.speed.ShouldBe(telemetryMessage.speed); trackerModule.Location.climb.ShouldBe(telemetryMessage.climb); }