@@ -64,6 +64,72 @@ public void GetDataItemMessageTest()
6464 Assert . That ( parametersBytes . Count ( ) , Is . EqualTo ( parametersLength ) ) ;
6565 }
6666
67- //TODO: add more NetSdrMessageHelper tests
67+ [ Test ]
68+ public void GetSamples_WithValid16BitData_ReturnsCorrectIntegers ( )
69+ {
70+ // Arrange
71+ ushort sampleSize = 16 ;
72+ byte [ ] body = new byte [ ] { 0x01 , 0x00 , 0x00 , 0x01 } ;
73+
74+ // Act
75+ var result = NetSdrMessageHelper . GetSamples ( sampleSize , body ) . ToList ( ) ;
76+
77+ // Assert
78+ Assert . That ( result , Has . Count . EqualTo ( 2 ) ) ;
79+ Assert . That ( result [ 0 ] , Is . EqualTo ( 1 ) ) ;
80+ Assert . That ( result [ 1 ] , Is . EqualTo ( 256 ) ) ;
81+ }
82+
83+ [ Test ]
84+ public void GetSamples_WithInvalidSampleSize_ThrowsException ( )
85+ {
86+ // Arrange
87+ ushort invalidSampleSize = 64 ; // > 4B (32 b)
88+ byte [ ] body = new byte [ ] { 0x01 , 0x02 } ;
89+
90+ // Act & Assert
91+ Assert . Throws < ArgumentOutOfRangeException > ( ( ) =>
92+ NetSdrMessageHelper . GetSamples ( invalidSampleSize , body ) . ToList ( ) ) ;
93+ }
94+
95+ [ Test ]
96+ public void TranslateMessage_WithValidData_ReturnsTrueAndCorrectBody ( )
97+ {
98+ // Arrange
99+ var type = NetSdrMessageHelper . MsgTypes . Ack ;
100+ var code = NetSdrMessageHelper . ControlItemCodes . RFFilter ;
101+ byte [ ] dummyParams = new byte [ ] { 0x01 , 0x02 } ;
102+ byte [ ] rawMessage = NetSdrMessageHelper . GetControlItemMessage ( type , code , dummyParams ) ;
103+
104+ // Act
105+ bool success = NetSdrMessageHelper . TranslateMessage (
106+ rawMessage , out var outType , out var outCode , out var seqNum , out var outBody ) ;
107+
108+ // Assert
109+ Assert . That ( success , Is . True ) ;
110+ Assert . That ( outType , Is . EqualTo ( type ) ) ;
111+ Assert . That ( outCode , Is . EqualTo ( code ) ) ;
112+ Assert . That ( outBody , Is . EquivalentTo ( dummyParams ) ) ;
113+ }
114+
115+ [ Test ]
116+ public void TranslateMessage_WithInvalidControlItemCode_ReturnsFalse ( )
117+ {
118+ // Arrange
119+ var type = NetSdrMessageHelper . MsgTypes . Ack ;
120+ var validCode = NetSdrMessageHelper . ControlItemCodes . ReceiverState ;
121+ byte [ ] rawMessage = NetSdrMessageHelper . GetControlItemMessage ( type , validCode , Array . Empty < byte > ( ) ) ;
122+
123+ rawMessage [ 2 ] = 0xFF ;
124+ rawMessage [ 3 ] = 0xFF ;
125+
126+ // Act
127+ bool success = NetSdrMessageHelper . TranslateMessage (
128+ rawMessage , out var outType , out var outCode , out var seqNum , out var outBody ) ;
129+
130+ // Assert
131+ Assert . That ( success , Is . False ) ;
132+ Assert . That ( outCode , Is . EqualTo ( NetSdrMessageHelper . ControlItemCodes . None ) ) ;
133+ }
68134 }
69135}
0 commit comments