Skip to content

Commit ff5f9f1

Browse files
authored
feat: XEI (#40)
1 parent 3d79c6b commit ff5f9f1

File tree

4 files changed

+55
-9
lines changed

4 files changed

+55
-9
lines changed

src/main/java/io/growing/sdk/java/dto/GioCdpEventMessage.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ public class GioCdpEventMessage extends GioCDPMessage<EventV3Dto> implements Ser
1919

2020
private static final long serialVersionUID = -2414503426226355459L;
2121

22+
public static final String XEI_USER_KEY = "$notuser";
23+
2224
private final EventV3Dto event;
2325

2426
private GioCdpEventMessage(EventV3Dto.Builder builder) {
@@ -49,9 +51,11 @@ public boolean isIllegal() {
4951
return true;
5052
}
5153

52-
if (StringUtils.isBlank(event.getUserId()) && StringUtils.isBlank(event.getDeviceId())) {
53-
GioLogger.error("GioCdpEventMessage: userId and anonymousId are empty");
54-
return true;
54+
if (!XEI_USER_KEY.equals(event.getUserKey())) {
55+
if (StringUtils.isBlank(event.getUserId()) && StringUtils.isBlank(event.getDeviceId())) {
56+
GioLogger.error("GioCdpEventMessage: userId and anonymousId are empty");
57+
return true;
58+
}
5559
}
5660

5761
return false;

src/test/java/io/growing/sdk/java/test/Case0PropertiesTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public void checkProperties() {
3333

3434
Properties properties = new Properties();
3535

36-
properties.setProperty("api.host", "http://localhost:8080");
36+
properties.setProperty("api.host", "https://www.growingio.com");
3737
properties.setProperty("project.id", "123456654321");
3838
properties.setProperty("msg.store.strategy", "abortPolicy");
3939
properties.setProperty("run.mode", "production");

src/test/java/io/growing/sdk/java/test/Case1MockHttpTest.java

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public static void before() {
3636
setStaticField(RunMode.class, "currentMode", null);
3737
Properties properties = new Properties();
3838
properties.setProperty("run.mode", "production");
39-
properties.setProperty("api.host", "http://117.50.105.254:8080");
39+
properties.setProperty("api.host", "https://www.growingio.com");
4040
GrowingAPI.initConfig(properties);
4141
sender = new GrowingAPI.Builder().setDataSourceId(DATASOURCE_ID).setProjectKey(PROJECT_KEY).build();
4242
factory = new StubStreamHandlerFactory();
@@ -68,6 +68,45 @@ public void afterTest() {
6868
}
6969
}
7070

71+
@Test
72+
public void sendXEIEvent() throws InterruptedException {
73+
final CountDownLatch countDownLatch = new CountDownLatch(1);
74+
75+
factory.setStubHttpURLConnectionListener(new StubStreamHandlerFactory.StubHttpURLConnectionListener() {
76+
@Override
77+
public void onSend(URL url, byte[] msg) {
78+
try {
79+
EventV3List eventList = EventV3List.parseFrom(msg);
80+
EventV3Dto customEvent = eventList.getValues(0);
81+
Assert.assertEquals(DATASOURCE_ID, customEvent.getDataSourceId());
82+
Assert.assertEquals(PROJECT_KEY, customEvent.getProjectKey());
83+
84+
Assert.assertEquals("CUSTOM", customEvent.getEventType().name());
85+
Assert.assertEquals("payOrder", customEvent.getEventName());
86+
87+
Assert.assertEquals(GioCdpEventMessage.XEI_USER_KEY, customEvent.getUserKey());
88+
Map<String, String> attributes = customEvent.getAttributesMap();
89+
Assert.assertEquals("0001", attributes.get("prod_id"));
90+
Assert.assertEquals("15.52", attributes.get("money"));
91+
92+
} catch (Exception e) {
93+
mException = e;
94+
}
95+
96+
countDownLatch.countDown();
97+
}
98+
});
99+
100+
sender.send(new GioCdpEventMessage.Builder()
101+
.eventKey("payOrder")
102+
.loginUserKey(GioCdpEventMessage.XEI_USER_KEY)
103+
.addEventVariable("prod_id", "0001")
104+
.addEventVariable("money", "15.52")
105+
.build());
106+
107+
countDownLatch.await();
108+
}
109+
71110
@Test
72111
public void sendCustomEvent() throws InterruptedException {
73112
final CountDownLatch countDownLatch = new CountDownLatch(1);

src/test/java/io/growing/sdk/java/test/Case3EventMessageTest.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
package io.growing.sdk.java.test;
22

3-
import io.growing.sdk.java.dto.GioCdpEventMessage;
4-
import io.growing.sdk.java.dto.GioCdpItemMessage;
5-
import io.growing.sdk.java.dto.GioCdpUserMappingMessage;
6-
import io.growing.sdk.java.dto.GioCdpUserMessage;
3+
import io.growing.sdk.java.dto.*;
74
import org.junit.Assert;
85
import org.junit.Test;
96
import org.junit.runner.RunWith;
@@ -26,6 +23,12 @@ public void checkCustomMessage() {
2623
.build();
2724
Assert.assertFalse(eventMessage.isIllegal());
2825

26+
eventMessage = new GioCdpEventMessage.Builder()
27+
.eventKey("event_name")
28+
.loginUserKey(GioCdpEventMessage.XEI_USER_KEY)
29+
.build();
30+
Assert.assertFalse(eventMessage.isIllegal());
31+
2932
eventMessage = new GioCdpEventMessage.Builder()
3033
.eventKey("event_name")
3134
.build();

0 commit comments

Comments
 (0)