public void AdvancedResponse_GetSoftwareVersion_FrameError() { // act var data = new Byte[] { /*0x02*/ 0xFF, 0x00, 0x0F, 0x00, 0x65, 0x00, 0x03, 0x03, 0x00, 0x44, 0x53, 0x0D, 0x30, 0x74, 0x68, }; var span = BufferSpan.From(data, 0, data.Length); var result = FeigResponse.TryParse(span, FeigProtocol.Advanced); // assert Check.That(result.Status).IsEqualTo(FeigParseStatus.FrameError); Check.That(result.Response).IsNull(); }
/// <summary> /// Returns a result indicating a successfully transfer operation. /// </summary> /// /// <exception cref="ArgumentNullException"> /// A null reference was passed to a method that did not accept it as a valid argument.</exception> public static FeigTransferResult Success(FeigRequest request, FeigResponse response) { Verify.NotNull(request, nameof(request)); Verify.NotNull(response, nameof(response)); return(new FeigTransferResult(FeigTransferStatus.Success, request, response)); }
/// <summary> /// Returns a result indicating that the transfer operation failed because an unexpected response /// has been received. /// </summary> /// /// <exception cref="ArgumentNullException"> /// A null reference was passed to a method that did not accept it as a valid argument.</exception> public static FeigTransferResult UnexpectedResponse(FeigRequest request, FeigResponse response) { Verify.NotNull(request, nameof(request)); Verify.NotNull(response, nameof(response)); return(new FeigTransferResult(FeigTransferStatus.UnexpectedResponse, request, response)); }
public void Success_With_Response() { // act var response = new FeigResponse(); var result = FeigParseResult.Success(response); // assert Check.That(result.Status).IsEqualTo(FeigParseStatus.Success); Check.That(result.Response).IsSameReferenceAs(response); Check.That(result.ToString()) .IsEqualTo("Status: Success, Response: { Address: 0, Command: None, Status: OK, Data: <empty> }"); }
public void Succeed_With_MessageRequestResponse() { // act var request = new FeigRequest(); var response = new FeigResponse(); var exception = new FeigException("MSG", request, response); // assert Check.That(exception.Message).IsEqualTo("MSG"); Check.That(exception.InnerException).IsNull(); Check.That(exception.Request).IsSameReferenceAs(request); Check.That(exception.Response).IsSameReferenceAs(response); }
public void Succeed_With_RequestResponse() { // act var request = new FeigRequest(); var response = new FeigResponse(); var exception = new FeigException(request, response); // assert Check.That(exception.Message).Contains("InlayTester.Drivers.Feig.FeigException"); Check.That(exception.InnerException).IsNull(); Check.That(exception.Request).IsSameReferenceAs(request); Check.That(exception.Response).IsSameReferenceAs(response); }
public void AdvancedResponse_GetSoftwareVersion_ChecksumError() { // act var data = new Byte[] { 0x02, 0x00, 0x0F, 0x00, 0x65, 0x00, 0x03, 0x03, 0x00, 0x44, 0x53, 0x0D, 0x30, 0x74, /*0x69*/ 0x68, }; var span = BufferSpan.From(data, 0, data.Length); var result = FeigResponse.TryParse(span, FeigProtocol.Advanced); // assert Check.That(result.Status).IsEqualTo(FeigParseStatus.ChecksumError); Check.That(result.Response).IsNotNull(); Check.That(result.Response.FrameLength).IsEqualTo(15); Check.That(result.Response.Address).IsEqualTo(0x00); Check.That(result.Response.Command).IsEqualTo(FeigCommand.GetSoftwareVersion); Check.That(result.Response.Status).IsEqualTo(FeigStatus.OK); Check.That(result.Response.Data.ToArray()) .ContainsExactly( 0x03, 0x03, 0x00, 0x44, 0x53, 0x0D, 0x30 ); Check.That(result.Response.Crc).IsEqualTo(0x6974); Check.That(result.Response.ToString()) .IsEqualTo("Address: 0, Command: GetSoftwareVersion, Status: OK, Data: 03-03-00-44-53-0D-30"); }
public void Success() { // act var request = new FeigRequest(); var response = new FeigResponse(); var result = FeigTransferResult.UnexpectedResponse(request, response); // assert Check.That(result.Status).IsEqualTo(FeigTransferStatus.UnexpectedResponse); Check.That(result.Request).IsSameReferenceAs(request); Check.That(result.Response).IsSameReferenceAs(response); Check.That(result.ToString()) .IsEqualTo( "Status: UnexpectedResponse, Request: { Address: 255, Command: None, Data: <empty> }, Response: { Address: 0, Command: None, Status: OK, Data: <empty> }" ); }
public void StandardResponse_GetSoftwareVersion_ByteByByte() { var data = new Byte[] { 0xFF, 0xFF, 0x0D, 0x00, 0x65, 0x00, 0x03, 0x03, 0x00, 0x44, 0x53, 0x0D, 0x30, 0x33, 0x09, 0xFF, 0xFF, }; // act var result = FeigResponse.TryParse(BufferSpan.From(data, 2, 0), FeigProtocol.Standard); // assert Check.That(result.Status).IsEqualTo(FeigParseStatus.MoreDataNeeded); Check.That(result.Response).IsNull(); // act result = FeigResponse.TryParse(BufferSpan.From(data, 2, 1), FeigProtocol.Standard); // assert Check.That(result.Status).IsEqualTo(FeigParseStatus.MoreDataNeeded); Check.That(result.Response).IsNull(); // act result = FeigResponse.TryParse(BufferSpan.From(data, 2, 2), FeigProtocol.Standard); // assert Check.That(result.Status).IsEqualTo(FeigParseStatus.MoreDataNeeded); Check.That(result.Response).IsNull(); // act result = FeigResponse.TryParse(BufferSpan.From(data, 2, 12), FeigProtocol.Standard); // assert Check.That(result.Status).IsEqualTo(FeigParseStatus.MoreDataNeeded); Check.That(result.Response).IsNull(); // act result = FeigResponse.TryParse(BufferSpan.From(data, 2, 13), FeigProtocol.Standard); // assert Check.That(result.Status).IsEqualTo(FeigParseStatus.Success); Check.That(result.Response).IsNotNull(); Check.That(result.Response.FrameLength).IsEqualTo(13); Check.That(result.Response.Address).IsEqualTo(0x00); Check.That(result.Response.Command).IsEqualTo(FeigCommand.GetSoftwareVersion); Check.That(result.Response.Status).IsEqualTo(FeigStatus.OK); Check.That(result.Response.Data.ToArray()) .ContainsExactly( 0x03, 0x03, 0x00, 0x44, 0x53, 0x0D, 0x30 ); Check.That(result.Response.Crc).IsEqualTo(0x0933); Check.That(result.Response.ToString()) .IsEqualTo("Address: 0, Command: GetSoftwareVersion, Status: OK, Data: 03-03-00-44-53-0D-30"); }
/// <summary> /// Returns a result indicating a successfully parsed response. /// </summary> /// /// <exception cref="ArgumentNullException"> /// A null reference was passed to a method that did not accept it as a valid argument.</exception> public static FeigParseResult Success(FeigResponse response) { Verify.NotNull(response, nameof(response)); return(new FeigParseResult(FeigParseStatus.Success, response)); }
/// <summary> /// Returns a result indicating that a checksum error has been detected. /// </summary> /// /// <exception cref="ArgumentNullException"> /// A null reference was passed to a method that did not accept it as a valid argument.</exception> public static FeigParseResult ChecksumError(FeigResponse response) { Verify.NotNull(response, nameof(response)); return(new FeigParseResult(FeigParseStatus.ChecksumError, response)); }