@Override public void write(JSONStringer writer) throws JSONException { JSONUtils.write(writer, ID, getId()); JSONUtils.write(writer, VER, getVer()); JSONUtils.write(writer, NAME, getName()); JSONUtils.write(writer, LOCALE, getLocale()); JSONUtils.write(writer, USER_ID, getUserId()); }
assertNull(logBeforeSetProperty.getExt().getApp().getLocale()); assertNull(logBeforeSetProperty.getExt().getApp().getName()); assertNull(logBeforeSetProperty.getExt().getUser().getLocalId()); assertEquals("appLocale", logAfterSetProperty.getExt().getApp().getLocale()); assertEquals("appName", logAfterSetProperty.getExt().getApp().getName()); assertEquals("c:alice", logAfterSetProperty.getExt().getUser().getLocalId());
@Test public void commonSchemaPropertiesNotSetWhenDisabled() { CommonSchemaLog log = new CommonSchemaEventLog(); log.setExt(new Extensions()); log.getExt().setApp(new AppExtension()); log.getExt().setUser(new UserExtension()); /* Get target, disable it, and set properties. */ AnalyticsTransmissionTarget target = Analytics.getTransmissionTarget("test"); target.setEnabledAsync(false).get(); target.getPropertyConfigurator().setAppVersion("appVersion"); target.getPropertyConfigurator().setAppName("appName"); target.getPropertyConfigurator().setAppLocale("appLocale"); target.getPropertyConfigurator().setUserId("c:alice"); /* Simulate what the pipeline does to convert from App Center to Common Schema. */ log.addTransmissionTarget("test"); log.setTag(target); target.getPropertyConfigurator().onPreparingLog(log, "groupName"); /* Assert properties are null. */ assertNull(log.getExt().getApp().getVer()); assertNull(log.getExt().getApp().getName()); assertNull(log.getExt().getApp().getLocale()); assertNull(log.getExt().getUser().getLocalId()); /* The properties are not applied but are saved, if we enable now we can see the values. */ target.setEnabledAsync(true).get(); target.getPropertyConfigurator().onPreparingLog(log, "groupName"); assertEquals("appVersion", log.getExt().getApp().getVer()); assertEquals("appName", log.getExt().getApp().getName()); assertEquals("appLocale", log.getExt().getApp().getLocale()); assertEquals("c:alice", log.getExt().getUser().getLocalId()); }
@Test public void setCommonSchemaProperties() { CommonSchemaLog log = new CommonSchemaEventLog(); log.setExt(new Extensions()); log.getExt().setApp(new AppExtension()); log.getExt().setUser(new UserExtension()); /* Get property configurator and set properties. */ PropertyConfigurator pc = Analytics.getTransmissionTarget("test").getPropertyConfigurator(); pc.setAppVersion("appVersion"); pc.setAppName("appName"); pc.setAppLocale("appLocale"); pc.setUserId("c:bob"); /* Simulate what the pipeline does to convert from App Center to Common Schema. */ log.addTransmissionTarget("test"); log.setTag(Analytics.getTransmissionTarget("test")); pc.onPreparingLog(log, "groupName"); /* Assert properties set on common schema. */ assertEquals("appVersion", log.getExt().getApp().getVer()); assertEquals("appName", log.getExt().getApp().getName()); assertEquals("appLocale", log.getExt().getApp().getLocale()); assertEquals("c:bob", log.getExt().getUser().getLocalId()); }
@Test public void grandparentsHaveNoPropertiesSet() { CommonSchemaLog log = new CommonSchemaEventLog(); log.setExt(new Extensions()); log.getExt().setApp(new AppExtension()); log.getExt().setUser(new UserExtension()); /* Set up empty chain of parents. */ AnalyticsTransmissionTarget grandparent = Analytics.getTransmissionTarget("grandparent"); AnalyticsTransmissionTarget parent = grandparent.getTransmissionTarget("parent"); AnalyticsTransmissionTarget child = parent.getTransmissionTarget("child"); /* Simulate channel callbacks. */ log.addTransmissionTarget("child"); log.setTag(child); grandparent.getPropertyConfigurator().onPreparingLog(log, "groupName"); parent.getPropertyConfigurator().onPreparingLog(log, "groupName"); child.getPropertyConfigurator().onPreparingLog(log, "groupName"); /* Assert properties not set on common schema for child. */ assertNull(log.getExt().getApp().getVer()); assertNull(log.getExt().getApp().getName()); assertNull(log.getExt().getApp().getLocale()); assertNull(log.getExt().getUser().getLocalId()); }
@Test public void inheritCommonSchemaPropertiesFromGrandparent() { CommonSchemaLog log = new CommonSchemaEventLog(); log.setExt(new Extensions()); log.getExt().setApp(new AppExtension()); log.getExt().setUser(new UserExtension()); /* Set properties on parent to override unset properties on child */ AnalyticsTransmissionTarget grandparent = Analytics.getTransmissionTarget("grandparent"); grandparent.getPropertyConfigurator().setAppVersion("appVersion"); grandparent.getPropertyConfigurator().setAppName("appName"); grandparent.getPropertyConfigurator().setAppLocale("appLocale"); grandparent.getPropertyConfigurator().setUserId("c:alice"); /* Set up hierarchy. */ AnalyticsTransmissionTarget parent = grandparent.getTransmissionTarget("parent"); AnalyticsTransmissionTarget child = parent.getTransmissionTarget("child"); /* Simulate channel callbacks. */ log.addTransmissionTarget("child"); log.setTag(child); grandparent.getPropertyConfigurator().onPreparingLog(log, "groupName"); parent.getPropertyConfigurator().onPreparingLog(log, "groupName"); child.getPropertyConfigurator().onPreparingLog(log, "groupName"); /* Assert properties set on common schema. */ assertEquals("appVersion", log.getExt().getApp().getVer()); assertEquals("appName", log.getExt().getApp().getName()); assertEquals("appLocale", log.getExt().getApp().getLocale()); assertEquals("c:alice", log.getExt().getUser().getLocalId()); }
@Test public void checkGrandParentNotOverriddenByDescendants() { CommonSchemaLog log = new CommonSchemaEventLog(); log.setExt(new Extensions()); log.getExt().setApp(new AppExtension()); log.getExt().setUser(new UserExtension()); /* Set up hierarchy. */ AnalyticsTransmissionTarget grandparent = Analytics.getTransmissionTarget("grandparent"); AnalyticsTransmissionTarget parent = grandparent.getTransmissionTarget("parent"); AnalyticsTransmissionTarget child = parent.getTransmissionTarget("child"); /* Set properties on parent to override unset properties on child (but not grandparent). */ parent.getPropertyConfigurator().setAppVersion("appVersion"); parent.getPropertyConfigurator().setAppName("appName"); parent.getPropertyConfigurator().setAppLocale("appLocale"); parent.getPropertyConfigurator().setUserId("c:bob"); /* Also set 1 on child. */ child.getPropertyConfigurator().setAppName("childName"); /* Simulate channel callbacks. */ log.addTransmissionTarget("grandParent"); log.setTag(grandparent); grandparent.getPropertyConfigurator().onPreparingLog(log, "groupName"); parent.getPropertyConfigurator().onPreparingLog(log, "groupName"); child.getPropertyConfigurator().onPreparingLog(log, "groupName"); /* Assert properties not set on common schema for grandparent. */ assertNull(log.getExt().getApp().getVer()); assertNull(log.getExt().getApp().getName()); assertNull(log.getExt().getApp().getLocale()); assertNull(log.getExt().getUser().getLocalId()); }