public void OnSocketReceivedEvent_ReturnsInSequenceData_RaisesEvents() { // Arrange NavData.NavData navDataReceived = null; _target.NavDataReceived += (sender, args) => navDataReceived = args.NavData; var firstData = new NavData.NavData { Sequence = 1 }; var firstBytes = new byte[] { 1 }; var firstDataReceivedEventArgs = new DataReceivedEventArgs(firstBytes); _mockNavDataFactory.Setup(x => x.Create(firstBytes)).Returns(firstData); var secondData = new NavData.NavData { Sequence = 2 }; var secondBytes = new byte[] { 2 }; var secondDataReceivedEventArgs = new DataReceivedEventArgs(secondBytes); _mockNavDataFactory.Setup(x => x.Create(secondBytes)).Returns(secondData); _target.Run(); // Act _mockUdpSocket.Raise(x => x.DataReceived += null, firstDataReceivedEventArgs); // Assert navDataReceived.Should().Be(firstData); // Act _mockUdpSocket.Raise(x => x.DataReceived += null, secondDataReceivedEventArgs); // Assert navDataReceived.Should().Be(secondData); }