CustomEvent extends Event implements JsonSerializable { @NonNull public CustomEvent track() { UAirship.shared().getAnalytics().addEvent(this); return this; } private  CustomEvent(@NonNull Builder builder); @NonNull static Builder newBuilder(@NonNull String name); @NonNull String getEventName(); @Nullable BigDecimal getEventValue(); @Nullable String getTransactionId(); @Nullable String getInteractionType(); @Nullable String getInteractionId(); @NonNull JsonMap getProperties(); @NonNull @Override final String getType(); @NonNull @Override @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP) final JsonMap getEventData(); @NonNull @Override JsonValue toJsonValue(); @Override boolean isValid(); @NonNull CustomEvent track(); @NonNull
    static final String INTERACTION_ID; @NonNull
    static final String INTERACTION_TYPE; @NonNull
    static final String EVENT_NAME; @NonNull
    static final String EVENT_VALUE; @NonNull
    static final String TRANSACTION_ID; @NonNull
    static final String MCRAP_TRANSACTION_TYPE; @NonNull
    static final String CONVERSION_SEND_ID; @NonNull
    static final String CONVERSION_METADATA; @NonNull
    static final String LAST_RECEIVED_METADATA; @NonNull
    static final String TEMPLATE_TYPE; @NonNull
    static final String PROPERTIES; static final int MAX_CHARACTER_LENGTH; static final int MAX_TOTAL_PROPERTIES_SIZE; }
@Test public void testTrack() { CustomEvent event = CustomEvent.newBuilder("event name").build(); event.track(); ArgumentCaptor<Event> argument = ArgumentCaptor.forClass(Event.class); verify(analytics).addEvent(argument.capture()); assertEquals("Add event should add the event.", event, argument.getValue()); }