diff --git a/test/unit-tests/CMakeLists.txt b/test/unit-tests/CMakeLists.txt index 5b594e4..a9bcb79 100644 --- a/test/unit-tests/CMakeLists.txt +++ b/test/unit-tests/CMakeLists.txt @@ -1,13 +1,18 @@ project(unit-tests) -include_directories(${gtest_SOURCE_DIR}/include) +include_directories( + ${unit-tests_SOURCE_DIR} + ${gtest_SOURCE_DIR}/include +) add_executable(unit-tests unit-tests.cpp unit-tests.h unit-tests_Namespace.h - unit-tests_MidiMessage.cpp + + tests/unit-tests_MidiMessage.cpp + tests/unit-tests_Settings.cpp ) target_link_libraries(unit-tests @@ -19,4 +24,3 @@ target_link_libraries(unit-tests add_custom_command(TARGET unit-tests POST_BUILD COMMAND ${unit-tests_BINARY_DIR}/unit-tests ) - diff --git a/test/unit-tests/unit-tests_MidiMessage.cpp b/test/unit-tests/tests/unit-tests_MidiMessage.cpp similarity index 79% rename from test/unit-tests/unit-tests_MidiMessage.cpp rename to test/unit-tests/tests/unit-tests_MidiMessage.cpp index 79cfac1..13b0a02 100644 --- a/test/unit-tests/unit-tests_MidiMessage.cpp +++ b/test/unit-tests/tests/unit-tests_MidiMessage.cpp @@ -1,6 +1,17 @@ #include "unit-tests.h" #include -#include + +BEGIN_MIDI_NAMESPACE + +// Declare references: +// http://stackoverflow.com/questions/4891067/weird-undefined-symbols-of-static-constants-inside-a-struct-class + +template +const unsigned Message::sSysExMaxSize; + +END_MIDI_NAMESPACE + +// ----------------------------------------------------------------------------- BEGIN_UNNAMED_NAMESPACE @@ -28,9 +39,8 @@ TEST(MidiMessage, getSysExSize) // Small message { typedef midi::Message<32> Message; + ASSERT_EQ(Message::sSysExMaxSize, 32); Message message = Message(); - ASSERT_EQ(Message::getSysExMaxSize(), 32); - ASSERT_EQ(message.getSysExMaxSize(), 32); const unsigned sizeUnder = 20; setSysExSize(message, sizeUnder); @@ -43,9 +53,8 @@ TEST(MidiMessage, getSysExSize) // Medium message { typedef midi::Message<256> Message; + ASSERT_EQ(Message::sSysExMaxSize, 256); Message message = Message(); - ASSERT_EQ(Message::getSysExMaxSize(), 256); - ASSERT_EQ(message.getSysExMaxSize(), 256); const unsigned sizeUnder = 200; setSysExSize(message, sizeUnder); @@ -58,9 +67,8 @@ TEST(MidiMessage, getSysExSize) // Large message { typedef midi::Message<1024> Message; + ASSERT_EQ(Message::sSysExMaxSize, 1024); Message message = Message(); - ASSERT_EQ(Message::getSysExMaxSize(), 1024); - ASSERT_EQ(message.getSysExMaxSize(), 1024); const unsigned sizeUnder = 1000; setSysExSize(message, sizeUnder); diff --git a/test/unit-tests/tests/unit-tests_Settings.cpp b/test/unit-tests/tests/unit-tests_Settings.cpp new file mode 100644 index 0000000..49a3613 --- /dev/null +++ b/test/unit-tests/tests/unit-tests_Settings.cpp @@ -0,0 +1,27 @@ +#include "unit-tests.h" +#include + +BEGIN_MIDI_NAMESPACE + +const bool DefaultSettings::UseRunningStatus; +const bool DefaultSettings::HandleNullVelocityNoteOnAsNoteOff; +const bool DefaultSettings::Use1ByteParsing; +const long DefaultSettings::BaudRate; +const unsigned DefaultSettings::SysExMaxSize; + +END_MIDI_NAMESPACE + +// ----------------------------------------------------------------------------- + +BEGIN_UNNAMED_NAMESPACE + +TEST(Settings, hasTheRightDefaultValues) +{ + EXPECT_EQ(midi::DefaultSettings::UseRunningStatus, true); + EXPECT_EQ(midi::DefaultSettings::HandleNullVelocityNoteOnAsNoteOff, true); + EXPECT_EQ(midi::DefaultSettings::Use1ByteParsing, true); + EXPECT_EQ(midi::DefaultSettings::BaudRate, 31250); + EXPECT_EQ(midi::DefaultSettings::SysExMaxSize, 128); +} + +END_UNNAMED_NAMESPACE