void test_parseDatalinkBufferPopCommandMultiple(void) { parseUplinkPacket_StubWithCallback((CMOCK_parseUplinkPacket_CALLBACK) parseDatalinkBufferValidDataMock); parseDatalinkBuffer(); parseUplinkPacket_StubWithCallback((CMOCK_parseUplinkPacket_CALLBACK) parseDatalinkBufferValidDataMock2); parseDatalinkBuffer(); DatalinkCommand* command1 = popDatalinkCommand(); DatalinkCommand* command2 = popDatalinkCommand(); TEST_ASSERT_EQUAL_UINT8_MESSAGE(test_data[0], command1->cmd, "Command ID should be first byte of received uplink"); TEST_ASSERT_EQUAL_UINT8_ARRAY_MESSAGE(&test_data[1], command1->data, test_data_length - 1, "Command payload should be copied correctly"); TEST_ASSERT_NULL(command1->next); TEST_ASSERT_EQUAL_UINT8_MESSAGE(test_data2[0], command2->cmd, "Command ID should be first byte of received uplink"); TEST_ASSERT_EQUAL_UINT8_ARRAY_MESSAGE(&test_data2[1], command2->data, test_data2_length - 1, "Command payload should be copied correctly"); TEST_ASSERT_NULL(command2->next); free(command1); free(command2); }
void test_parseDatalinkBufferShouldAddToCommandQueueWithIncomingData(void) { parseUplinkPacket_StubWithCallback((CMOCK_parseUplinkPacket_CALLBACK) parseDatalinkBufferValidDataMock); parseDatalinkBuffer(); DatalinkCommand* command = popDatalinkCommand(); TEST_ASSERT_EQUAL_UINT8_MESSAGE(test_data[0], command->cmd, "Command ID should be first byte of received uplink"); TEST_ASSERT_EQUAL_UINT8_ARRAY_MESSAGE(&test_data[1], command->data, test_data_length - 1, "Command payload should be copied correctly"); TEST_ASSERT_NULL(command->next); free(command); }
void tearDown() { // Make sure parameters have been transmitted correctly if (expectedSend) { TEST_ASSERT_EQUAL_INT_MESSAGE(sizeof(parameterData) + 1, mock_driver.sendBuffer.size, "Parameter send buffer has wrong size"); TEST_ASSERT_EQUAL_UINT8_MESSAGE(operation, mock_driver.sendBuffer.data[0], "Operation byte not correctly set"); TEST_ASSERT_EQUAL_UINT8_ARRAY_MESSAGE(parameterData, mock_driver.sendBuffer.data + 1, sizeof(parameterData), "Parameter data is not correct"); } // Check returned values TEST_ASSERT_EQUAL_INT_MESSAGE(expectedStatus.status, status.status, "Unexpected rpc client result status"); TEST_ASSERT_EQUAL_INT_MESSAGE(expectedStatus.server_status, status.server_status, "Unexpected rpc client server status"); TEST_ASSERT_EQUAL_INT_MESSAGE(expectedStatus.handler_status, status.handler_status, "Unexpected rpc handler status"); TEST_ASSERT_EQUAL_MESSAGE(expectedSend || expectedReceive, mock_driver.waitedForCompletion, "Should (not) have waited for completion"); TEST_ASSERT_EQUAL_MESSAGE(expectedSend, mock_driver.sent, "rpc call should (not) have sent something"); TEST_ASSERT_EQUAL_MESSAGE(expectedReceive, mock_driver.received, "rpc call should (not) have received something"); }