@@ -31,38 +31,55 @@ def test_version_number
31
31
end
32
32
33
33
def test_client_singleton_inst
34
-
35
34
instance = CfClient . instance
36
- ( 0 ..@counter ) . each {
35
+ ( 0 ..@counter ) . each do
36
+ compare_equal = CfClient . instance
37
+ assert_equal ( instance , compare_equal )
38
+ end
39
+ end
37
40
41
+ def test_client_singleton_init
42
+ instance = CfClient . instance
43
+ ( 0 ..@counter ) . each do
38
44
compare_equal = CfClient . instance
39
- compare_not_equal = CfClient . new ( "test" )
45
+ assert_equal ( instance , compare_equal )
46
+ end
47
+ end
40
48
41
- refute_nil compare_equal
42
- refute_nil compare_not_equal
49
+ def test_client_initialization
50
+ config = ConfigBuilder . new . build
51
+ connector = HarnessConnector . new ( @string , config , nil )
52
+ api_key = "test_api_key"
43
53
44
- assert_equal ( instance , compare_equal )
45
- assert ( instance != compare_not_equal )
46
- }
54
+ client = CfClient . instance
55
+ client . init ( api_key , config , connector )
56
+
57
+ # Verify that @client is initialized and is an instance of InnerClient
58
+ inner_client = client . instance_variable_get ( :@client )
59
+ refute_nil ( inner_client , "InnerClient should be initialized" )
60
+ assert_instance_of ( InnerClient , inner_client , "InnerClient should be an instance of InnerClient" )
47
61
end
48
62
49
- def test_client_constructor_inst
63
+ def test_client_reinitialization
64
+ config1 = ConfigBuilder . new . build
65
+ connector1 = HarnessConnector . new ( @string , config1 , nil )
66
+ api_key1 = "api_key_1"
50
67
51
- test_string = "test"
52
- config = ConfigBuilder . new . build
53
- connector = HarnessConnector . new ( test_string , config , nil )
68
+ client = CfClient . instance
69
+ client . init ( api_key1 , config1 , connector1 )
70
+
71
+ # Capture the initial @client instance
72
+ initial_inner_client = client . instance_variable_get ( :@client )
54
73
55
- instance_with_no_config = CfClient . new ( test_string )
56
- instance_with_config = CfClient . new ( test_string , config )
57
- instance_with_connector = CfClient . new ( test_string , config , connector )
74
+ # Attempt to reinitialize with different parameters
75
+ config2 = ConfigBuilder . new . build
76
+ connector2 = HarnessConnector . new ( @string , config2 , nil )
77
+ api_key2 = "api_key_2"
58
78
59
- refute_nil instance_with_config
60
- refute_nil instance_with_connector
61
- refute_nil instance_with_no_config
79
+ client . init ( api_key2 , config2 , connector2 )
62
80
63
- assert ( instance_with_config != instance_with_no_config )
64
- assert ( instance_with_connector != instance_with_no_config )
65
- assert ( instance_with_connector != instance_with_config )
81
+ # Verify that the @client instance remains the same
82
+ assert_same ( initial_inner_client , client . instance_variable_get ( :@client ) )
66
83
end
67
84
68
85
def test_config_constructor_inst
@@ -76,6 +93,28 @@ def test_config_constructor_inst
76
93
assert ( config != config_not_equal )
77
94
end
78
95
96
+ def test_client_methods
97
+ config = ConfigBuilder . new . build
98
+ connector = HarnessConnector . new ( @string , config , nil )
99
+ api_key = "test_api_key"
100
+
101
+ client = CfClient . instance
102
+ client . init ( api_key , config , connector )
103
+
104
+ inner_client = client . instance_variable_get ( :@client )
105
+ inner_client . stub :bool_variation , true do
106
+ assert_equal ( true , client . bool_variation ( "identifier" , "target" , false ) )
107
+ end
108
+
109
+ inner_client . stub :string_variation , "variation" do
110
+ assert_equal ( "variation" , client . string_variation ( "identifier" , "target" , "default" ) )
111
+ end
112
+
113
+ inner_client . stub :number_variation , 42 do
114
+ assert_equal ( 42 , client . number_variation ( "identifier" , "target" , 0 ) )
115
+ end
116
+ end
117
+
79
118
def test_config_properties
80
119
81
120
config = Config . new
0 commit comments