NormData Refactor (#30)
* Switched NormData Data property to a method * Corrected NormData summary comment * Updated NormData GetData to use Marshal.Copy * Fixed warnings * Updated NormData designpull/85/head
parent
1d91fdef33
commit
3cdb415e8a
|
|
@ -1,7 +1,7 @@
|
||||||
@startuml
|
@startuml
|
||||||
class NormData {
|
class NormData {
|
||||||
~ NormData(handle:long)
|
~ NormData(handle:long)
|
||||||
+ byte[] Data <<get>>
|
+ byte[] GetData()
|
||||||
}
|
}
|
||||||
NormObject <|-- NormData
|
NormObject <|-- NormData
|
||||||
@enduml
|
@enduml
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
namespace Mil.Navy.Nrl.Norm
|
namespace Mil.Navy.Nrl.Norm
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// A transport object of type NORM_OBJECT_FILE.
|
/// A transport object of type NORM_OBJECT_DATA.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// The data storage area for the specified transport object.
|
/// The data storage area for the specified transport object.
|
||||||
|
|
@ -11,21 +11,15 @@ namespace Mil.Navy.Nrl.Norm
|
||||||
public class NormData : NormObject
|
public class NormData : NormObject
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 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.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public byte[] Data
|
public byte[] GetData()
|
||||||
{
|
{
|
||||||
get
|
var dataPointer = NormDataAccessData(_handle);
|
||||||
{
|
var length = NormObjectGetSize(_handle);
|
||||||
var dataPointer = NormDataAccessData(_handle);
|
var data = new byte[length];
|
||||||
var length = NormObjectGetSize(_handle);
|
Marshal.Copy(dataPointer, data, 0, length);
|
||||||
var data = new byte[length];
|
return data;
|
||||||
for (var i = 0; i < length; i++)
|
|
||||||
{
|
|
||||||
data[i] = Marshal.ReadByte(dataPointer, i);
|
|
||||||
}
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
||||||
|
|
@ -93,7 +93,7 @@ namespace Mil.Navy.Nrl.Norm.IntegrationTests
|
||||||
if (_isReceiverStarted && !_isReceiverStopped)
|
if (_isReceiverStarted && !_isReceiverStopped)
|
||||||
{
|
{
|
||||||
_normSession.StopReceiver();
|
_normSession.StopReceiver();
|
||||||
_isSenderStopped = true;
|
_isReceiverStopped = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -412,7 +412,7 @@ namespace Mil.Navy.Nrl.Norm.IntegrationTests
|
||||||
var expectedEventTypes = new List<NormEventType> { NormEventType.NORM_TX_OBJECT_SENT, NormEventType.NORM_TX_QUEUE_EMPTY };
|
var expectedEventTypes = new List<NormEventType> { NormEventType.NORM_TX_OBJECT_SENT, NormEventType.NORM_TX_QUEUE_EMPTY };
|
||||||
var actualEventTypes = GetEvents().Select(e => e.Type).ToList();
|
var actualEventTypes = GetEvents().Select(e => e.Type).ToList();
|
||||||
Assert.Equal(expectedEventTypes, actualEventTypes);
|
Assert.Equal(expectedEventTypes, actualEventTypes);
|
||||||
var actualData = normData.Data;
|
var actualData = normData.GetData();
|
||||||
Assert.Equal(expectedData, actualData);
|
Assert.Equal(expectedData, actualData);
|
||||||
var actualContent = Encoding.ASCII.GetString(actualData);
|
var actualContent = Encoding.ASCII.GetString(actualData);
|
||||||
Assert.Equal(expectedContent, actualContent);
|
Assert.Equal(expectedContent, actualContent);
|
||||||
|
|
@ -464,9 +464,9 @@ namespace Mil.Navy.Nrl.Norm.IntegrationTests
|
||||||
Assert.Equivalent(expectedEventTypes, actualEventTypes);
|
Assert.Equivalent(expectedEventTypes, actualEventTypes);
|
||||||
|
|
||||||
var actualEvent = actualEvents.FirstOrDefault(e => e.Type == NormEventType.NORM_RX_OBJECT_COMPLETED);
|
var actualEvent = actualEvents.FirstOrDefault(e => e.Type == NormEventType.NORM_RX_OBJECT_COMPLETED);
|
||||||
var actualNormData = Assert.IsType<NormData>(actualEvent.Object);
|
var actualNormData = Assert.IsType<NormData>(actualEvent?.Object);
|
||||||
|
|
||||||
var actualData = actualNormData.Data;
|
var actualData = actualNormData.GetData();
|
||||||
Assert.Equal(expectedData, actualData);
|
Assert.Equal(expectedData, actualData);
|
||||||
var actualContent = Encoding.ASCII.GetString(actualData);
|
var actualContent = Encoding.ASCII.GetString(actualData);
|
||||||
Assert.Equal(expectedContent, actualContent);
|
Assert.Equal(expectedContent, actualContent);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue