@@ -86,5 +86,70 @@ def get_config; end
86
86
)
87
87
expect ( optimizely_instance . config_manager ) . to eq ( http_project_config_manager )
88
88
end
89
+
90
+ it 'should take event processor when flush interval and batch size are set' do
91
+ Optimizely ::OptimizelyFactory . max_event_flush_interval ( 5 , spy_logger )
92
+ Optimizely ::OptimizelyFactory . max_event_batch_size ( 100 , spy_logger )
93
+
94
+ event_processor = Optimizely ::BatchEventProcessor . new (
95
+ event_dispatcher : event_dispatcher ,
96
+ batch_size : 100 ,
97
+ flush_interval : 5 ,
98
+ notification_center : notification_center
99
+ )
100
+
101
+ optimizely_instance = Optimizely ::OptimizelyFactory . custom_instance (
102
+ 'sdk_key' ,
103
+ datafile ,
104
+ event_dispatcher ,
105
+ spy_logger ,
106
+ error_handler ,
107
+ false ,
108
+ user_profile_service ,
109
+ nil ,
110
+ notification_center
111
+ )
112
+
113
+ expect ( optimizely_instance . event_processor ) . equal? event_processor
114
+ optimizely_instance . close
115
+ end
116
+ end
117
+
118
+ describe '.max_event_batch_size' do
119
+ it 'should log error message and return nil when invalid batch size provided' do
120
+ expect ( Optimizely ::OptimizelyFactory . max_event_batch_size ( [ ] , spy_logger ) ) . to eq ( nil )
121
+ expect ( Optimizely ::OptimizelyFactory . max_event_batch_size ( true , spy_logger ) ) . to eq ( nil )
122
+ expect ( Optimizely ::OptimizelyFactory . max_event_batch_size ( 'test' , spy_logger ) ) . to eq ( nil )
123
+ expect ( Optimizely ::OptimizelyFactory . max_event_batch_size ( 5.2 , spy_logger ) ) . to eq ( nil )
124
+ expect ( Optimizely ::OptimizelyFactory . max_event_batch_size ( nil , spy_logger ) ) . to eq ( nil )
125
+ expect ( spy_logger ) . to have_received ( :log ) . with ( Logger ::ERROR , 'Batch size is invalid, setting to default batch size 10.' ) . exactly ( 5 ) . times
126
+ expect ( Optimizely ::OptimizelyFactory . max_event_batch_size ( 0 , spy_logger ) ) . to eq ( nil )
127
+ expect ( Optimizely ::OptimizelyFactory . max_event_batch_size ( -2 , spy_logger ) ) . to eq ( nil )
128
+ expect ( spy_logger ) . to have_received ( :log ) . with ( Logger ::ERROR , 'Batch size is negative, setting to default batch size 10.' ) . twice
129
+ end
130
+
131
+ it 'should not log error and return batch size and when valid batch size provided' do
132
+ expect ( Optimizely ::OptimizelyFactory . max_event_batch_size ( 5 , spy_logger ) ) . to eq ( 5 )
133
+ expect ( spy_logger ) . not_to have_received ( :log )
134
+ end
135
+ end
136
+
137
+ describe '.max_event_flush_interval' do
138
+ it 'should log error message and return nil when invalid flush interval provided' do
139
+ expect ( Optimizely ::OptimizelyFactory . max_event_flush_interval ( [ ] , spy_logger ) ) . to eq ( nil )
140
+ expect ( Optimizely ::OptimizelyFactory . max_event_flush_interval ( true , spy_logger ) ) . to eq ( nil )
141
+ expect ( Optimizely ::OptimizelyFactory . max_event_flush_interval ( 'test' , spy_logger ) ) . to eq ( nil )
142
+ expect ( Optimizely ::OptimizelyFactory . max_event_flush_interval ( nil , spy_logger ) ) . to eq ( nil )
143
+ expect ( spy_logger ) . to have_received ( :log ) . with ( Logger ::ERROR , 'Flush interval is invalid, setting to default flush interval 30000.' ) . exactly ( 4 ) . times
144
+ expect ( Optimizely ::OptimizelyFactory . max_event_flush_interval ( 0 , spy_logger ) ) . to eq ( nil )
145
+ expect ( Optimizely ::OptimizelyFactory . max_event_flush_interval ( -2 , spy_logger ) ) . to eq ( nil )
146
+ expect ( spy_logger ) . to have_received ( :log ) . with ( Logger ::ERROR , 'Flush interval is negative, setting to default flush interval 30000.' ) . twice
147
+ end
148
+
149
+ it 'should not log error and return batch size and when valid flush interval provided' do
150
+ expect ( Optimizely ::OptimizelyFactory . max_event_flush_interval ( 5 , spy_logger ) ) . to eq ( 5 )
151
+ expect ( Optimizely ::OptimizelyFactory . max_event_flush_interval ( 5.5 , spy_logger ) ) . to eq ( 5.5 )
152
+ expect ( spy_logger ) . not_to have_received ( :log )
153
+ end
89
154
end
90
155
end
0 commit comments