@@ -20,6 +20,74 @@ TEST(GPS_Tests, standard_message)
2020 ASSERT_NEAR (msg->Long_deg , 11.51667 , 0.001 );
2121}
2222
23+ TEST (GPS_Tests,invalid_data_unfixed)
24+ {
25+ GPS_Broadcaster broadcaster;
26+ std::string token_string = " $GPGGA,1,4.0,N,011.1,E,0,08,0.9,545.4,M,46.9,M,,*47" ;
27+
28+ std::istringstream ss (token_string);
29+ std::string tokens[10 ];
30+
31+ for (int i = 0 ; i < 10 ; i++)
32+ {
33+ std::getline (ss, tokens[i], ' ,' );
34+ }
35+
36+ robobuggy::GPS* msg = broadcaster.parse_tokens (tokens);
37+ ASSERT_TRUE (msg==NULL );
38+ }
39+
40+ TEST (GPS_Tests,valid_data_unfixed)
41+ {
42+ GPS_Broadcaster broadcaster;
43+ std::string token_string = " $GPGGA,123519,4807.038,N,01131.000,E,0,08,0.9,545.4,M,46.9,M,,*47" ;
44+
45+ std::istringstream ss (token_string);
46+ std::string tokens[10 ];
47+
48+ for (int i = 0 ; i < 10 ; i++)
49+ {
50+ std::getline (ss, tokens[i], ' ,' );
51+ }
52+
53+ robobuggy::GPS* msg = broadcaster.parse_tokens (tokens);
54+ ASSERT_TRUE (msg==NULL );
55+ }
56+
57+ TEST (GPS_Tests,non_GGA_format)
58+ {
59+ GPS_Broadcaster broadcaster;
60+ std::string token_string = " $GPVTG,123519,4807.038,N,01131.000,E,0,08,0.9,545.4,M,46.9,M,,*47" ;
61+
62+ std::istringstream ss (token_string);
63+ std::string tokens[10 ];
64+
65+ for (int i = 0 ; i < 10 ; i++)
66+ {
67+ std::getline (ss, tokens[i], ' ,' );
68+ }
69+
70+ robobuggy::GPS* msg = broadcaster.parse_tokens (tokens);
71+ ASSERT_TRUE (msg==NULL );
72+ }
73+
74+ TEST (GPS_Tests,missing_field)
75+ {
76+ GPS_Broadcaster broadcaster;
77+ std::string token_string = " $GPGGA,123519,4807.038,N,,E,1,08,0.9,545.4,M,46.9,M,,*47" ;
78+
79+ std::istringstream ss (token_string);
80+ std::string tokens[10 ];
81+
82+ for (int i = 0 ; i < 10 ; i++)
83+ {
84+ std::getline (ss, tokens[i], ' ,' );
85+ }
86+
87+ robobuggy::GPS* msg = broadcaster.parse_tokens (tokens);
88+ ASSERT_TRUE (msg==NULL );
89+ }
90+
2391TEST (GPS_Tests, not_fixed)
2492{
2593 GPS_Broadcaster broadcaster;
0 commit comments