diff --git a/src/dotnet/design/Mil/Navy/Nrl/Norm/NormData.puml b/src/dotnet/design/Mil/Navy/Nrl/Norm/NormData.puml index 658ec09..e11e79e 100644 --- a/src/dotnet/design/Mil/Navy/Nrl/Norm/NormData.puml +++ b/src/dotnet/design/Mil/Navy/Nrl/Norm/NormData.puml @@ -1,7 +1,7 @@ @startuml class NormData { ~ NormData(handle:long) - + byte[] Data <> + + byte[] GetData() } NormObject <|-- NormData @enduml \ No newline at end of file diff --git a/src/dotnet/src/Mil.Navy.Nrl.Norm/NormData.cs b/src/dotnet/src/Mil.Navy.Nrl.Norm/NormData.cs index bc55bc7..a0a13e1 100644 --- a/src/dotnet/src/Mil.Navy.Nrl.Norm/NormData.cs +++ b/src/dotnet/src/Mil.Navy.Nrl.Norm/NormData.cs @@ -3,7 +3,7 @@ namespace Mil.Navy.Nrl.Norm { /// - /// A transport object of type NORM_OBJECT_FILE. + /// A transport object of type NORM_OBJECT_DATA. /// /// /// The data storage area for the specified transport object. @@ -11,21 +11,15 @@ namespace Mil.Navy.Nrl.Norm public class NormData : NormObject { /// - /// The data storage area associated with a transport object of type NORM_OBJECT_DATA. + /// Get the data storage area associated with a transport object of type NORM_OBJECT_DATA. /// - public byte[] Data + public byte[] GetData() { - get - { - var dataPointer = NormDataAccessData(_handle); - var length = NormObjectGetSize(_handle); - var data = new byte[length]; - for (var i = 0; i < length; i++) - { - data[i] = Marshal.ReadByte(dataPointer, i); - } - return data; - } + var dataPointer = NormDataAccessData(_handle); + var length = NormObjectGetSize(_handle); + var data = new byte[length]; + Marshal.Copy(dataPointer, data, 0, length); + return data; } /// diff --git a/src/dotnet/tests/Mil.Navy.Nrl.Norm.IntegrationTests/NormSessionTests.cs b/src/dotnet/tests/Mil.Navy.Nrl.Norm.IntegrationTests/NormSessionTests.cs index ba2c8be..1470c07 100644 --- a/src/dotnet/tests/Mil.Navy.Nrl.Norm.IntegrationTests/NormSessionTests.cs +++ b/src/dotnet/tests/Mil.Navy.Nrl.Norm.IntegrationTests/NormSessionTests.cs @@ -93,7 +93,7 @@ namespace Mil.Navy.Nrl.Norm.IntegrationTests if (_isReceiverStarted && !_isReceiverStopped) { _normSession.StopReceiver(); - _isSenderStopped = true; + _isReceiverStopped = true; } } @@ -412,7 +412,7 @@ namespace Mil.Navy.Nrl.Norm.IntegrationTests var expectedEventTypes = new List { NormEventType.NORM_TX_OBJECT_SENT, NormEventType.NORM_TX_QUEUE_EMPTY }; var actualEventTypes = GetEvents().Select(e => e.Type).ToList(); Assert.Equal(expectedEventTypes, actualEventTypes); - var actualData = normData.Data; + var actualData = normData.GetData(); Assert.Equal(expectedData, actualData); var actualContent = Encoding.ASCII.GetString(actualData); Assert.Equal(expectedContent, actualContent); @@ -464,9 +464,9 @@ namespace Mil.Navy.Nrl.Norm.IntegrationTests Assert.Equivalent(expectedEventTypes, actualEventTypes); var actualEvent = actualEvents.FirstOrDefault(e => e.Type == NormEventType.NORM_RX_OBJECT_COMPLETED); - var actualNormData = Assert.IsType(actualEvent.Object); + var actualNormData = Assert.IsType(actualEvent?.Object); - var actualData = actualNormData.Data; + var actualData = actualNormData.GetData(); Assert.Equal(expectedData, actualData); var actualContent = Encoding.ASCII.GetString(actualData); Assert.Equal(expectedContent, actualContent);