
add_test(NAME TestFileGeneratorSource
	COMMAND ${FILE_GENERATOR_PROGRAM} source -n test_source
	WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)

configure_file(scriptTest.sh ${CMAKE_CURRENT_BINARY_DIR}/scriptTest.sh @ONLY)

add_test(NAME TestFileGeneratorSourceWrongWright
	COMMAND ${CMAKE_CURRENT_BINARY_DIR}/scriptTest.sh
	WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)

add_test(NAME TestFileGeneratorClass
	COMMAND ${FILE_GENERATOR_PROGRAM} class -n Shadok
	WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)

add_test(NAME TestFileGeneratorClassEmpty
	COMMAND ${FILE_GENERATOR_PROGRAM} class -n ""
	WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
set_tests_properties(TestFileGeneratorClassEmpty PROPERTIES WILL_FAIL true)

add_test(NAME TestFileGeneratorClassTemplate
	COMMAND ${FILE_GENERATOR_PROGRAM} class -n ShadokT -t "typename T"
	WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)

add_test(NAME TestFileGeneratorClassTemplate2
	COMMAND ${FILE_GENERATOR_PROGRAM} class -n ShadokTU -t "typename T" "typename U"
	WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)

set(CONFIG_PDATA_FILE ${CMAKE_CURRENT_SOURCE_DIR}/ConfigShadok.pdata)

add_test(NAME TestFileGeneratorClassConfig
	COMMAND ${FILE_GENERATOR_PROGRAM} class -n ShadokConfig -c ${CONFIG_PDATA_FILE} 
	WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)

add_test(NAME TestFileGeneratorClassConfigDataStream
	COMMAND ${FILE_GENERATOR_PROGRAM} class -n ShadokConfigDS -c ${CONFIG_PDATA_FILE} -s
	WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)

set(CONFIG_PDATA_NESTED_CALL ${CMAKE_CURRENT_SOURCE_DIR}/PNestedCall.pdata)

add_test(NAME TestFileGeneratorClassConfigNested
	COMMAND ${FILE_GENERATOR_PROGRAM} class -c ${CONFIG_PDATA_NESTED_CALL} 
	WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)

add_test(NAME TestFileGeneratorClassConfigDataStreamNested
	COMMAND ${FILE_GENERATOR_PROGRAM} class -c ${CONFIG_PDATA_NESTED_CALL} -s -y
	WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)

add_test(NAME TestFileGeneratorClassWrongConfig
	COMMAND ${FILE_GENERATOR_PROGRAM} class -c someInexistingConfigFile.pdata
	WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
set_tests_properties(TestFileGeneratorClassWrongConfig PROPERTIES WILL_FAIL true)


set(CONFIG_PDATA_FILE_SHADOK ${CMAKE_CURRENT_SOURCE_DIR}/ConfigShadok.pdata)
set(CONFIG_PDATA_FILE_GIBIS ${CMAKE_CURRENT_SOURCE_DIR}/ConfigGibis.pdata)

add_test(NAME TestFileGeneratorProject
	COMMAND ${FILE_GENERATOR_PROGRAM} project -d ${CMAKE_CURRENT_SOURCE_DIR}/project.toml -c ${CONFIG_PDATA_FILE_SHADOK} ${CONFIG_PDATA_FILE_GIBIS} -s -y -f -u
	WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)

add_test(NAME TestFileGeneratorProjectWithBadConfig
	COMMAND ${FILE_GENERATOR_PROGRAM} project -d ${CMAKE_CURRENT_SOURCE_DIR}/NoExistingDep.toml -c ${CONFIG_PDATA_FILE_SHADOK} -s -y -f -u
	WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
set_tests_properties(TestFileGeneratorProjectWithBadConfig PROPERTIES WILL_FAIL true)

