public void Usage(CommonResponseCode responseCode, byte responseCode0, byte responseCode1) { var commonErrorResponse = new CommonErrorResponse(responseCode, 0, 0, 0, 0, 0); commonErrorResponse.ResponseCode0.Should().Be(responseCode0); commonErrorResponse.ResponseCode1.Should().Be(responseCode1); }
public byte[] HandleReceivedBytes(byte[] receivedBytes) { var requestType0 = receivedBytes[1]; var requestType1 = receivedBytes[2]; var requestType2 = receivedBytes[3]; var requestType3 = receivedBytes[4]; var counter = BitConverter.ToUInt16(receivedBytes, 7); IResponse response; try { var request = _requestParser.Parse(receivedBytes); var requestType = (RequestTypeAttribute)request.GetType().GetCustomAttributes(typeof(RequestTypeAttribute), true)[0]; if (request is IConnectionRequiredRequest connectionRequiredRequest && !_connectionHandler.IsConnected(new[] { connectionRequiredRequest.ConnectionIdentifier0, connectionRequiredRequest.ConnectionIdentifier1, connectionRequiredRequest.ConnectionIdentifier2, connectionRequiredRequest.ConnectionIdentifier3 })) { response = new CommonErrorResponse(CommonResponseCode.NotConnected, counter, requestType0, requestType1, requestType2, requestType3); } else if (!_requestHandlerTypes.TryGetValue(requestType, out var requestHandlerType)) { response = new CommonErrorResponse(CommonResponseCode.UnknownCommand, counter, requestType0, requestType1, requestType2, requestType3); } else { var requestHandler = (IRequestHandler)_serviceLocator.Locate(requestHandlerType); response = requestHandler.Handle(request); } }