#include "../generator.h" #include "resources/config.h" #include #include #include #include #include #include #include #include #include using namespace std; using namespace CPPUNIT_NS; using namespace IoUtilities; using namespace ConversionUtilities; using namespace TestUtilities; using namespace ReflectiveRapidJSON; class OverallTests : public TestFixture { CPPUNIT_TEST_SUITE(OverallTests); CPPUNIT_TEST(testGenerator); CPPUNIT_TEST(testCLI); CPPUNIT_TEST_SUITE_END(); public: void setUp(); void tearDown(); void testGenerator(); void testCLI(); private: }; CPPUNIT_TEST_SUITE_REGISTRATION(OverallTests); void OverallTests::setUp() { } void OverallTests::tearDown() { } void OverallTests::testGenerator() { const string inputFilePath(testFilePath("some_structs.h")); stringstream buffer; generateReflectionCode({ inputFilePath.data() }, buffer); CPPUNIT_ASSERT_EQUAL("test"s, buffer.str()); } void OverallTests::testCLI() { #ifdef PLATFORM_UNIX const string inputFilePath(testFilePath("some_structs.h")); string stdout, stderr; const char *const args1[] = { PROJECT_NAME, "-i", inputFilePath.data(), nullptr }; TESTUTILS_ASSERT_EXEC(args1); CPPUNIT_ASSERT_EQUAL("test"s, stdout); #endif }