11#include " test/e2e/context_storing_provider.h"
22
3+ #include < gtest/gtest.h>
4+
5+ #include < cucumber-cpp/autodetect.hpp>
6+
37#include " openfeature/flag_metadata.h"
48#include " openfeature/reason.h"
9+ #include " openfeature/value.h"
10+
11+ using cucumber::ScenarioScope;
512
613namespace openfeature_e2e {
714
@@ -13,15 +20,77 @@ std::unique_ptr<openfeature::BoolResolutionDetails>
1320ContextStoringProvider::GetBooleanEvaluation (
1421 std::string_view key, bool default_value,
1522 const openfeature::EvaluationContext& ctx) {
16- // Store a copy of the evaluation context.
17- // We need to copy because `ctx` is passed by const reference.
18- this ->last_evaluation_context_ = ctx;
23+ last_ctx = ctx;
1924
2025 return std::make_unique<openfeature::BoolResolutionDetails>(
2126 default_value, // The default value
2227 openfeature::Reason::kDefault , // Reason for resolution
2328 " default-variant" , // A generic variant identifier
24- openfeature::FlagMetadata (), // Empty metadata
29+ openfeature::FlagMetadata{}, // Empty metadata
30+ std::nullopt , // No error code
31+ " " // Empty error message
32+ );
33+ }
34+
35+ std::unique_ptr<openfeature::StringResolutionDetails>
36+ ContextStoringProvider::GetStringEvaluation (
37+ std::string_view key, std::string_view default_value,
38+ const openfeature::EvaluationContext& ctx) {
39+ last_ctx = ctx;
40+ std::string default_str (default_value);
41+ return std::make_unique<openfeature::StringResolutionDetails>(
42+ default_str, // The default value
43+ openfeature::Reason::kDefault , // Reason for resolution
44+ " default-variant" , // A generic variant identifier
45+ openfeature::FlagMetadata{}, // Empty metadata
46+ std::nullopt , // No error code
47+ " " // Empty error message
48+ );
49+ }
50+
51+ std::unique_ptr<openfeature::IntResolutionDetails>
52+ ContextStoringProvider::GetIntegerEvaluation (
53+ std::string_view key, int64_t default_value,
54+ const openfeature::EvaluationContext& ctx) {
55+ last_ctx = ctx;
56+
57+ return std::make_unique<openfeature::IntResolutionDetails>(
58+ default_value, // The default value
59+ openfeature::Reason::kDefault , // Reason for resolution
60+ " default-variant" , // A generic variant identifier
61+ openfeature::FlagMetadata{}, // Empty metadata
62+ std::nullopt , // No error code
63+ " " // Empty error message
64+ );
65+ }
66+
67+ std::unique_ptr<openfeature::DoubleResolutionDetails>
68+ ContextStoringProvider::GetDoubleEvaluation (
69+ std::string_view key, double default_value,
70+ const openfeature::EvaluationContext& ctx) {
71+ last_ctx = ctx;
72+
73+ return std::make_unique<openfeature::DoubleResolutionDetails>(
74+ default_value, // The default value
75+ openfeature::Reason::kDefault , // Reason for resolution
76+ " default-variant" , // A generic variant identifier
77+ openfeature::FlagMetadata{}, // Empty metadata
78+ std::nullopt , // No error code
79+ " " // Empty error message
80+ );
81+ }
82+
83+ std::unique_ptr<openfeature::ObjectResolutionDetails>
84+ ContextStoringProvider::GetObjectEvaluation (
85+ std::string_view key, const openfeature::Value default_value,
86+ const openfeature::EvaluationContext& ctx) {
87+ last_ctx = ctx;
88+
89+ return std::make_unique<openfeature::ObjectResolutionDetails>(
90+ default_value, // The default value
91+ openfeature::Reason::kDefault , // Reason for resolution
92+ " default-variant" , // A generic variant identifier
93+ openfeature::FlagMetadata{}, // Empty metadata
2594 std::nullopt , // No error code
2695 " " // Empty error message
2796 );
0 commit comments