diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-12-04 06:12:03 -0500 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-12-04 06:15:20 -0500 |
| commit | 3c1fec18cc1d11d247cfd0bd23c199ea65f3d7bd (patch) | |
| tree | 81a7e6bd2264f0e2740a74be05aa708c53f01000 /tests/fix_basic | |
chore: OCL.FIX module, initial commit.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'tests/fix_basic')
| -rw-r--r-- | tests/fix_basic/CMakeLists.txt | 23 | ||||
| -rw-r--r-- | tests/fix_basic/fix_test.cc | 38 |
2 files changed, 61 insertions, 0 deletions
diff --git a/tests/fix_basic/CMakeLists.txt b/tests/fix_basic/CMakeLists.txt new file mode 100644 index 0000000..b94e3b5 --- /dev/null +++ b/tests/fix_basic/CMakeLists.txt @@ -0,0 +1,23 @@ +cmake_minimum_required(VERSION 3.10) +project(FIXTestBasic) + +include(FetchContent) +FetchContent_Declare( + googletest + URL https://github.com/google/googletest/archive/refs/tags/v1.14.0.zip +) + +# For Windows: Prevent overriding the parent project's compiler/linker settings +set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) +FetchContent_MakeAvailable(googletest) + +enable_testing() + +add_executable(FIXTestBasic fix_test.cc) +target_link_libraries(FIXTestBasic gtest_main) + +set_property(TARGET FIXTestBasic PROPERTY CXX_STANDARD 20) +target_include_directories(FIXTestBasic PUBLIC ../../include/ocl) + +include(GoogleTest) +gtest_discover_tests(FIXTestBasic) diff --git a/tests/fix_basic/fix_test.cc b/tests/fix_basic/fix_test.cc new file mode 100644 index 0000000..85b80d4 --- /dev/null +++ b/tests/fix_basic/fix_test.cc @@ -0,0 +1,38 @@ +/* + * File: tests/fix_test.cc + * Purpose: Custom FIX protocol tests. + * Author: Amlal El Mahrouss (amlal@nekernel.org) + * Copyright 2025, Amlal El Mahrouss, licensed under the Boost Software License. + */ + +#include <ocl/fix/parser.hpp> +#include <gtest/gtest.h> + +constexpr const char default_fix[] = { + '8', '=', 'F', 'I', 'X', '.', '4', '.', '2', 0x01, + '9', '=', '6', '3', 0x01, // BodyLength = 63 + '3', '5', '=', 'A', 0x01, + '4', '9', '=', 'S', 'E', 'R', 'V', 'E', 'R', 0x01, + '5', '6', '=', 'C', 'L', 'I', 'E', 'N', 'T', 0x01, + '3', '4', '=', '1', '7', '7', 0x01, + '5', '2', '=', '2', '0', '0', '9', '0', '1', '0', '7', '-', '1', '8', ':', '1', '5', ':', '1', '6', 0x01, + '9', '8', '=', '0', 0x01, + '1', '0', '8', '=', '3', '0', 0x01, + '1', '0', '=', '1', '4', '3', 0x01, 0x00 // CheckSum = 143 +}; + +ocl::fix::basic_visitor basic_visitor; +ocl::fix::basic_range_data fix = basic_visitor.visit(default_fix); + +TEST(FIXTest, FIX1) +{ + EXPECT_TRUE(fix.is_valid()); + EXPECT_TRUE(fix["35"].empty() == false && fix["35"] == "A"); + EXPECT_TRUE(fix["49"].empty() == false && fix["49"] == "SERVER"); +} + +TEST(FIXTest, FIX2) +{ + EXPECT_TRUE(fix["133"].empty() == true && fix["133"] != ""); + EXPECT_TRUE(fix["49"].empty() == false && fix["49"] != "A"); +} |
