NMEA: remove deprecated type talker_id
[marnav.git] / test / nmea / Test_nmea_stn.cpp
blob94257520a9bc574ed77944069129c3ffc1f0fa62
1 #include <gtest/gtest.h>
2 #include <marnav/nmea/stn.hpp>
3 #include <marnav/nmea/nmea.hpp>
4 #include "type_traits_helper.hpp"
6 namespace
9 using namespace marnav;
11 class Test_nmea_stn : public ::testing::Test
15 TEST_F(Test_nmea_stn, contruction)
17 EXPECT_NO_THROW(nmea::stn stn);
20 TEST_F(Test_nmea_stn, properties)
22 nmea_sentence_traits<nmea::stn>();
25 TEST_F(Test_nmea_stn, parse)
27 auto s = nmea::make_sentence("$GPSTN,10*73");
28 ASSERT_NE(nullptr, s);
30 auto stn = nmea::sentence_cast<nmea::stn>(s);
31 ASSERT_NE(nullptr, stn);
34 TEST_F(Test_nmea_stn, create_sentence)
36 const auto s = nmea::create_sentence<nmea::stn>("$GPSTN,0*42");
37 EXPECT_EQ(nmea::sentence_id::STN, s.id());
40 TEST_F(Test_nmea_stn, create_sentence_exception)
42 EXPECT_ANY_THROW(nmea::create_sentence<nmea::stn>(""));
43 EXPECT_ANY_THROW(nmea::create_sentence<nmea::stn>("$IIMWV,084.0,R,10.4,N,A*04"));
46 TEST_F(Test_nmea_stn, parse_invalid_number_of_arguments)
48 EXPECT_ANY_THROW(
49 nmea::detail::factory::sentence_parse<nmea::stn>(nmea::talker::none, {2, "@"}));
52 TEST_F(Test_nmea_stn, empty_to_string)
54 nmea::stn stn;
56 EXPECT_STREQ("$GPSTN,0*42", nmea::to_string(stn).c_str());
59 TEST_F(Test_nmea_stn, set_number)
61 nmea::stn stn;
62 stn.set_number(666);
64 EXPECT_STREQ("$GPSTN,666*44", nmea::to_string(stn).c_str());
67 TEST_F(Test_nmea_stn, get_number)
69 auto s = nmea::make_sentence("$GPSTN,10*73");
70 ASSERT_NE(nullptr, s);
72 auto stn = nmea::sentence_cast<nmea::stn>(s);
73 ASSERT_NE(nullptr, stn);
75 EXPECT_EQ(10u, stn->get_number());