Database System 0.1.0
Advanced C++20 Database System with Multi-Backend Support
Loading...
Searching...
No Matches
DataMaskingTest Class Reference

Test fixture for data masking security tests. More...

Inheritance diagram for DataMaskingTest:
Inheritance graph
Collaboration diagram for DataMaskingTest:
Collaboration graph

Protected Member Functions

void SetUp () override
 
void TearDown () override
 
bool containsSensitiveData (const std::string &str)
 Helper to check if string contains any sensitive patterns.
 

Protected Attributes

std::unique_ptr< sqlite_backenddb_
 

Detailed Description

Test fixture for data masking security tests.

Definition at line 34 of file data_masking_test.cpp.

Member Function Documentation

◆ containsSensitiveData()

bool DataMaskingTest::containsSensitiveData ( const std::string & str)
inlineprotected

Helper to check if string contains any sensitive patterns.

Definition at line 77 of file data_masking_test.cpp.

77 {
78 std::vector<std::string> sensitive_patterns = {
79 "123-45-6789", // SSN
80 "4111111111111111", // Credit card
81 "ACC123456789", // Bank account
82 "hash_secret_123", // Password hash
83 };
84
85 for (const auto& pattern : sensitive_patterns) {
86 if (str.find(pattern) != std::string::npos) {
87 return true;
88 }
89 }
90 return false;
91 }

◆ SetUp()

void DataMaskingTest::SetUp ( )
inlineoverrideprotected

Definition at line 38 of file data_masking_test.cpp.

38 {
39 db_ = std::make_unique<sqlite_backend>();
40#ifdef USE_SQLITE
41 connection_config config;
42 config.database = ":memory:";
43 ASSERT_TRUE(db_->initialize(config).is_ok());
44
45 // Create tables with sensitive data
46 ASSERT_TRUE(db_->execute_query(
47 "CREATE TABLE sensitive_data ("
48 " id INTEGER PRIMARY KEY,"
49 " ssn TEXT,"
50 " credit_card TEXT,"
51 " bank_account TEXT,"
52 " password_hash TEXT"
53 ")"
54 ).is_ok());
55
56 // Insert test sensitive data
57 auto insert_result = db_->execute_query(
58 "INSERT INTO sensitive_data "
59 "(id, ssn, credit_card, bank_account, password_hash) VALUES "
60 "(1, '123-45-6789', '4111111111111111', 'ACC123456789', 'hash_secret_123')"
61 );
62 ASSERT_TRUE(insert_result.is_ok());
63#else
64 GTEST_SKIP() << "SQLite not available";
65#endif
66 }
std::unique_ptr< sqlite_backend > db_
Configuration for database connection.
#define ASSERT_TRUE(condition, message)

References ASSERT_TRUE, database::core::connection_config::database, and db_.

◆ TearDown()

void DataMaskingTest::TearDown ( )
inlineoverrideprotected

Definition at line 68 of file data_masking_test.cpp.

68 {
69 if (db_ && db_->is_initialized()) {
70 db_->shutdown();
71 }
72 }

References db_.

Member Data Documentation

◆ db_

std::unique_ptr<sqlite_backend> DataMaskingTest::db_
protected

Definition at line 36 of file data_masking_test.cpp.

Referenced by SetUp(), and TearDown().


The documentation for this class was generated from the following file: