Compare commits
1 Commits
test_20260
...
main
| Author | SHA1 | Date |
|---|---|---|
|
|
499557edf9 |
|
|
@ -1,25 +0,0 @@
|
||||||
cmake_minimum_required(VERSION 3.10.0)
|
|
||||||
project(test_auto_plan)
|
|
||||||
include(FetchContent)
|
|
||||||
if (MSVC)
|
|
||||||
add_compile_options(/utf-8)
|
|
||||||
endif()
|
|
||||||
FetchContent_Declare(
|
|
||||||
googletest
|
|
||||||
URL https://github.com/google/googletest/archive/03597a01ee50ed33e9dfd640b249b4be3799d395.zip
|
|
||||||
)
|
|
||||||
# For Windows: Prevent overriding the parent project's compiler/linker settings
|
|
||||||
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
|
||||||
FetchContent_MakeAvailable(googletest)
|
|
||||||
set(CMAKE_CXX_STANDARD 14)
|
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
||||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../include)
|
|
||||||
|
|
||||||
include(CTest)
|
|
||||||
enable_testing()
|
|
||||||
|
|
||||||
add_executable(test_auto_plan test_codegen.cpp ../src/codegen.cpp)
|
|
||||||
|
|
||||||
target_link_libraries(test_auto_plan gtest gmock gtest_main)
|
|
||||||
include(GoogleTest)
|
|
||||||
gtest_discover_tests(test_auto_plan)
|
|
||||||
|
|
@ -1,78 +0,0 @@
|
||||||
#include <gtest/gtest.h>
|
|
||||||
#include "aise/codegen.hpp"
|
|
||||||
#include <string>
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
namespace aise {
|
|
||||||
|
|
||||||
class CodegenModuleTest : public ::testing::Test {
|
|
||||||
protected:
|
|
||||||
CodegenModule module_;
|
|
||||||
};
|
|
||||||
|
|
||||||
TEST_F(CodegenModuleTest, testGenerateNormalInputCpp) {
|
|
||||||
auto result = module_.generate("SRS-001", "C++", "");
|
|
||||||
EXPECT_TRUE(result.success);
|
|
||||||
EXPECT_EQ(result.generated_files.size(), 1);
|
|
||||||
EXPECT_EQ(result.generated_files[0], "SRS-001_impl.cpp");
|
|
||||||
EXPECT_EQ(result.trace_links.size(), 1);
|
|
||||||
EXPECT_EQ(result.trace_links[0].req_id, "SRS-001");
|
|
||||||
EXPECT_EQ(result.output_dir, "./generated/SRS-001");
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST_F(CodegenModuleTest, testGenerateNormalInputJava) {
|
|
||||||
auto result = module_.generate("REQ-002", "Java", "");
|
|
||||||
EXPECT_TRUE(result.success);
|
|
||||||
EXPECT_EQ(result.generated_files[0], "REQ-002_impl.java");
|
|
||||||
EXPECT_EQ(result.trace_links[0].req_id, "REQ-002");
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST_F(CodegenModuleTest, testGenerateUnsupportedLanguage) {
|
|
||||||
auto result = module_.generate("SRS-003", "Python", "");
|
|
||||||
EXPECT_FALSE(result.success);
|
|
||||||
EXPECT_EQ(result.error_msg, "Unsupported language: Python");
|
|
||||||
EXPECT_TRUE(result.generated_files.empty());
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST_F(CodegenModuleTest, testGenerateEmptyReqId) {
|
|
||||||
auto result = module_.generate("", "C++", "");
|
|
||||||
EXPECT_TRUE(result.success);
|
|
||||||
EXPECT_EQ(result.generated_files[0], "_impl.cpp");
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST_F(CodegenModuleTest, testGetTraceLinksExisting) {
|
|
||||||
module_.generate("SRS-001", "C++", "");
|
|
||||||
auto links = module_.getTraceLinks("SRS-001");
|
|
||||||
ASSERT_EQ(links.size(), 1);
|
|
||||||
EXPECT_EQ(links[0].req_id, "SRS-001");
|
|
||||||
EXPECT_EQ(links[0].file_path, "SRS-001_impl.cpp");
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST_F(CodegenModuleTest, testGetTraceLinksNonExisting) {
|
|
||||||
auto links = module_.getTraceLinks("NONEXISTENT");
|
|
||||||
EXPECT_TRUE(links.empty());
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST_F(CodegenModuleTest, testGenerateCppSkeletonNormal) {
|
|
||||||
RequirementItem req;
|
|
||||||
req.id = "SRS-001";
|
|
||||||
req.title = "Test Requirement";
|
|
||||||
req.description = "Test Description";
|
|
||||||
std::string code = module_.generateCppSkeleton(req);
|
|
||||||
EXPECT_NE(code.find("class SRSModule"), std::string::npos);
|
|
||||||
EXPECT_NE(code.find("// Requirement: SRS-001 - Test Requirement"), std::string::npos);
|
|
||||||
EXPECT_NE(code.find("void execute()"), std::string::npos);
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST_F(CodegenModuleTest, testGenerateJavaSkeletonNormal) {
|
|
||||||
RequirementItem req;
|
|
||||||
req.id = "REQ-002";
|
|
||||||
req.title = "Java Requirement";
|
|
||||||
req.description = "Java Description";
|
|
||||||
std::string code = module_.generateJavaSkeleton(req);
|
|
||||||
EXPECT_NE(code.find("public class REQModule"), std::string::npos);
|
|
||||||
EXPECT_NE(code.find("public void execute()"), std::string::npos);
|
|
||||||
EXPECT_NE(code.find("System.out.println"), std::string::npos);
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace aise
|
|
||||||
Loading…
Reference in New Issue