NerfUS / NerfUSXbee

Dependents:   NerfUS-Coord NerfUSTarget

Fork of APP3_xbee by Team APP

Revision:
3:37ea92feece2
Parent:
2:5d437f1b1548
Child:
4:e97cfe6cc18c
--- a/test.cpp	Sat Feb 11 20:55:08 2017 +0000
+++ b/test.cpp	Sun Feb 12 20:31:46 2017 +0000
@@ -5,12 +5,15 @@
 
 void run_all_tests()
 {
-    assert_vector_equal_test();
+    vectors_are_equal_test();
     generate_transmit_request_test();
     parse_receive_packet_test();
+    parse_frame_parses_receive_packet_test();
+    parse_frame_parses_transmit_status_test();
+    parse_frame_parses_at_command_response_test();
 }
 
-void assert_vector_equal_test()
+void vectors_are_equal_test()
 {
     vector<char> v1;    
     v1.push_back(1);
@@ -20,15 +23,27 @@
     v2.push_back(1);
     v2.push_back(2);
     
-    assert_vector_equal(v1, v2);
+    vector<char> v3;
+    v3.push_back(1);
+    v3.push_back(2);
+    v3.push_back(3);
+    
+    vector<char> v4;
+    v4.push_back(1);
+    v4.push_back(1);
+    
+    assert(vectors_are_equal(v1, v2));
+    
+    assert(!vectors_are_equal(v1, v3));
+    assert(!vectors_are_equal(v1, v4));
 }
 
-void assert_vector_equal(const vector<char> v1, const vector<char> v2)
+bool vectors_are_equal(const vector<char> v1, const vector<char> v2)
 {
-    assert(v1.size() == v2.size());
+    if(v1.size() != v2.size()) return false;
     
     const bool all_elements_are_equal = equal(v1.begin(), v1.end(), v2.begin());
-    assert(all_elements_are_equal);
+    return all_elements_are_equal;
 }
 
 vector<char> construct_vector(const char* content, int length)
@@ -48,7 +63,7 @@
     
     vector<char> actual_request = generate_transmit_request("Test", 4);
         
-    assert_vector_equal(actual_request, expected_request);
+    assert(vectors_are_equal(actual_request, expected_request));
 }
 
 void parse_receive_packet_test()
@@ -61,5 +76,44 @@
     
     vector<char> actual_message = parse_receive_packet(receive_packet);
     
-    assert_vector_equal(actual_message, expected_message);
+    assert(vectors_are_equal(actual_message, expected_message));
+}
+
+void parse_frame_parses_receive_packet_test()
+{
+    const char frame_to_parse_array[] = {0x7E, 0x00, 0x10, 0x90, 0x00, 0x13, 0xA2, 0x00, 0x40, 0x86, 0xDA, 0x0E, 0x90, 0x1D, 0x01, 0x54, 0x65, 0x73, 0x74, 0xBE};
+    const vector<char> frame_to_parse = construct_vector(frame_to_parse_array, 20);
+    
+    const char expected_parsed_frame_array[] = {FRAME_TYPE_RECEIVE_PACKET, 'T', 'e', 's', 't'};
+    const vector<char> expected_parsed_frame = construct_vector(expected_parsed_frame_array, 5);
+    
+    const vector<char> actual_parsed_frame = parse_frame(frame_to_parse);
+    
+    assert(vectors_are_equal(expected_parsed_frame, actual_parsed_frame));
+}
+
+void parse_frame_parses_transmit_status_test()
+{    
+    const char frame_to_parse_array[] = {0x7E, 0x00, 0x07, 0x8B, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73};
+    const vector<char> frame_to_parse = construct_vector(frame_to_parse_array, 11);
+    
+    const char expected_parsed_frame_array[] = {FRAME_TYPE_TRANSMIT_STATUS, TRANSMIT_STATUS_SUCCESS};
+    const vector<char> expected_parsed_frame = construct_vector(expected_parsed_frame_array, 2);
+    
+    const vector<char> actual_parsed_frame = parse_frame(frame_to_parse);
+    
+    assert(vectors_are_equal(expected_parsed_frame, actual_parsed_frame));
+}
+
+void parse_frame_parses_at_command_response_test()
+{
+    const char frame_to_parse_array[] = {0x7E, 0x00, 0x05, 0x88, 0x01, 0x4E, 0x4A, 0x00, 0xDE};
+    const vector<char> frame_to_parse = construct_vector(frame_to_parse_array, 9);
+    
+    const char expected_parsed_frame_array[] = {FRAME_TYPE_AT_COMMAND_RESPONSE, AT_COMMAND_RESPONSE_STATUS_OK};
+    const vector<char> expected_parsed_frame = construct_vector(expected_parsed_frame_array, 2);
+    
+    const vector<char> actual_parsed_frame = parse_frame(frame_to_parse);
+    
+    assert(vectors_are_equal(expected_parsed_frame, actual_parsed_frame));
 }
\ No newline at end of file