Skip to content

Commit 257fe7f

Browse files
committed
Add tests for TelemetryEventQueueStats and Event.equals(), add no-op comments
- TelemetryEventQueueStatsTest: verify onQueued/onDropped delegate to telemetry producer - EventTest: comprehensive equals() tests (13 tests covering all fields and equals contract) - NoopEventQueueStats: add no-op comments to methods AI-Session-Id: 22192683-0960-4630-b40d-857b5c44e152 AI-Tool: claude-code AI-Model: unknown
1 parent 7efd093 commit 257fe7f

3 files changed

Lines changed: 273 additions & 2 deletions

File tree

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package io.split.client.events;
2+
3+
import io.split.telemetry.domain.enums.EventsDataRecordsEnum;
4+
import io.split.telemetry.storage.TelemetryRuntimeProducer;
5+
import org.junit.Test;
6+
import org.mockito.Mockito;
7+
8+
import static org.mockito.Mockito.verify;
9+
10+
public class TelemetryEventQueueStatsTest {
11+
12+
@Test
13+
public void onQueuedRecordsEventStats() {
14+
TelemetryRuntimeProducer telemetryRuntimeProducer = Mockito.mock(TelemetryRuntimeProducer.class);
15+
TelemetryEventQueueStats stats = new TelemetryEventQueueStats(telemetryRuntimeProducer);
16+
17+
stats.onQueued(42);
18+
19+
verify(telemetryRuntimeProducer).recordEventStats(EventsDataRecordsEnum.EVENTS_QUEUED, 42);
20+
}
21+
22+
@Test
23+
public void onDroppedRecordsEventStats() {
24+
TelemetryRuntimeProducer telemetryRuntimeProducer = Mockito.mock(TelemetryRuntimeProducer.class);
25+
TelemetryEventQueueStats stats = new TelemetryEventQueueStats(telemetryRuntimeProducer);
26+
27+
stats.onDropped(10);
28+
29+
verify(telemetryRuntimeProducer).recordEventStats(EventsDataRecordsEnum.EVENTS_DROPPED, 10);
30+
}
31+
32+
}

tracker/src/main/java/io/split/client/events/NoopEventQueueStats.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@ public final class NoopEventQueueStats implements EventQueueStats {
44
public static final NoopEventQueueStats INSTANCE = new NoopEventQueueStats();
55
private NoopEventQueueStats() {}
66

7-
@Override public void onQueued(long count) {}
8-
@Override public void onDropped(long count) {}
7+
@Override public void onQueued(long count) {
8+
// no-op
9+
}
10+
11+
@Override public void onDropped(long count) {
12+
// no-op
13+
}
914
}
Lines changed: 234 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,234 @@
1+
package io.split.client.dtos;
2+
3+
import org.junit.Test;
4+
5+
import java.util.HashMap;
6+
7+
import static org.junit.Assert.*;
8+
9+
public class EventTest {
10+
11+
@Test
12+
public void equalsReturnsTrueForSameObject() {
13+
Event event = new Event();
14+
assertTrue(event.equals(event));
15+
}
16+
17+
@Test
18+
public void equalsReturnsFalseForNull() {
19+
Event event = new Event();
20+
assertFalse(event.equals(null));
21+
}
22+
23+
@Test
24+
public void equalsReturnsFalseForDifferentClass() {
25+
Event event = new Event();
26+
assertFalse(event.equals("not an event"));
27+
}
28+
29+
@Test
30+
public void equalsReturnsTrueForIdenticalEvents() {
31+
Event event1 = new Event();
32+
event1.eventTypeId = "purchase";
33+
event1.trafficTypeName = "user";
34+
event1.key = "user123";
35+
event1.value = 100.0;
36+
event1.timestamp = 1000L;
37+
38+
Event event2 = new Event();
39+
event2.eventTypeId = "purchase";
40+
event2.trafficTypeName = "user";
41+
event2.key = "user123";
42+
event2.value = 100.0;
43+
event2.timestamp = 1000L;
44+
45+
assertTrue(event1.equals(event2));
46+
}
47+
48+
@Test
49+
public void equalsReturnsFalseForDifferentEventTypeId() {
50+
Event event1 = new Event();
51+
event1.eventTypeId = "purchase";
52+
event1.trafficTypeName = "user";
53+
event1.key = "user123";
54+
event1.value = 100.0;
55+
event1.timestamp = 1000L;
56+
57+
Event event2 = new Event();
58+
event2.eventTypeId = "view";
59+
event2.trafficTypeName = "user";
60+
event2.key = "user123";
61+
event2.value = 100.0;
62+
event2.timestamp = 1000L;
63+
64+
assertFalse(event1.equals(event2));
65+
}
66+
67+
@Test
68+
public void equalsReturnsFalseForDifferentTrafficTypeName() {
69+
Event event1 = new Event();
70+
event1.eventTypeId = "purchase";
71+
event1.trafficTypeName = "user";
72+
event1.key = "user123";
73+
event1.value = 100.0;
74+
event1.timestamp = 1000L;
75+
76+
Event event2 = new Event();
77+
event2.eventTypeId = "purchase";
78+
event2.trafficTypeName = "account";
79+
event2.key = "user123";
80+
event2.value = 100.0;
81+
event2.timestamp = 1000L;
82+
83+
assertFalse(event1.equals(event2));
84+
}
85+
86+
@Test
87+
public void equalsReturnsFalseForDifferentKey() {
88+
Event event1 = new Event();
89+
event1.eventTypeId = "purchase";
90+
event1.trafficTypeName = "user";
91+
event1.key = "user123";
92+
event1.value = 100.0;
93+
event1.timestamp = 1000L;
94+
95+
Event event2 = new Event();
96+
event2.eventTypeId = "purchase";
97+
event2.trafficTypeName = "user";
98+
event2.key = "user456";
99+
event2.value = 100.0;
100+
event2.timestamp = 1000L;
101+
102+
assertFalse(event1.equals(event2));
103+
}
104+
105+
@Test
106+
public void equalsReturnsFalseForDifferentValue() {
107+
Event event1 = new Event();
108+
event1.eventTypeId = "purchase";
109+
event1.trafficTypeName = "user";
110+
event1.key = "user123";
111+
event1.value = 100.0;
112+
event1.timestamp = 1000L;
113+
114+
Event event2 = new Event();
115+
event2.eventTypeId = "purchase";
116+
event2.trafficTypeName = "user";
117+
event2.key = "user123";
118+
event2.value = 200.0;
119+
event2.timestamp = 1000L;
120+
121+
assertFalse(event1.equals(event2));
122+
}
123+
124+
@Test
125+
public void equalsReturnsFalseForDifferentTimestamp() {
126+
Event event1 = new Event();
127+
event1.eventTypeId = "purchase";
128+
event1.trafficTypeName = "user";
129+
event1.key = "user123";
130+
event1.value = 100.0;
131+
event1.timestamp = 1000L;
132+
133+
Event event2 = new Event();
134+
event2.eventTypeId = "purchase";
135+
event2.trafficTypeName = "user";
136+
event2.key = "user123";
137+
event2.value = 100.0;
138+
event2.timestamp = 2000L;
139+
140+
assertFalse(event1.equals(event2));
141+
}
142+
143+
@Test
144+
public void equalsIgnoresPropertiesField() {
145+
Event event1 = new Event();
146+
event1.eventTypeId = "purchase";
147+
event1.trafficTypeName = "user";
148+
event1.key = "user123";
149+
event1.value = 100.0;
150+
event1.timestamp = 1000L;
151+
event1.properties = new HashMap<>();
152+
event1.properties.put("color", "red");
153+
154+
Event event2 = new Event();
155+
event2.eventTypeId = "purchase";
156+
event2.trafficTypeName = "user";
157+
event2.key = "user123";
158+
event2.value = 100.0;
159+
event2.timestamp = 1000L;
160+
event2.properties = new HashMap<>();
161+
event2.properties.put("size", "large");
162+
163+
assertTrue(event1.equals(event2));
164+
}
165+
166+
@Test
167+
public void equalsIsSelfConsistent() {
168+
Event event1 = new Event();
169+
event1.eventTypeId = "purchase";
170+
event1.trafficTypeName = "user";
171+
event1.key = "user123";
172+
event1.value = 100.0;
173+
event1.timestamp = 1000L;
174+
175+
Event event2 = new Event();
176+
event2.eventTypeId = "purchase";
177+
event2.trafficTypeName = "user";
178+
event2.key = "user123";
179+
event2.value = 100.0;
180+
event2.timestamp = 1000L;
181+
182+
assertTrue(event1.equals(event2));
183+
assertTrue(event1.equals(event2));
184+
}
185+
186+
@Test
187+
public void equalsIsSymmetric() {
188+
Event event1 = new Event();
189+
event1.eventTypeId = "purchase";
190+
event1.trafficTypeName = "user";
191+
event1.key = "user123";
192+
event1.value = 100.0;
193+
event1.timestamp = 1000L;
194+
195+
Event event2 = new Event();
196+
event2.eventTypeId = "purchase";
197+
event2.trafficTypeName = "user";
198+
event2.key = "user123";
199+
event2.value = 100.0;
200+
event2.timestamp = 1000L;
201+
202+
assertTrue(event1.equals(event2));
203+
assertTrue(event2.equals(event1));
204+
}
205+
206+
@Test
207+
public void equalsIsTransitive() {
208+
Event event1 = new Event();
209+
event1.eventTypeId = "purchase";
210+
event1.trafficTypeName = "user";
211+
event1.key = "user123";
212+
event1.value = 100.0;
213+
event1.timestamp = 1000L;
214+
215+
Event event2 = new Event();
216+
event2.eventTypeId = "purchase";
217+
event2.trafficTypeName = "user";
218+
event2.key = "user123";
219+
event2.value = 100.0;
220+
event2.timestamp = 1000L;
221+
222+
Event event3 = new Event();
223+
event3.eventTypeId = "purchase";
224+
event3.trafficTypeName = "user";
225+
event3.key = "user123";
226+
event3.value = 100.0;
227+
event3.timestamp = 1000L;
228+
229+
assertTrue(event1.equals(event2));
230+
assertTrue(event2.equals(event3));
231+
assertTrue(event1.equals(event3));
232+
}
233+
234+
}

0 commit comments

Comments
 (0)