### Question:
ActivityLogController implements Serializable { public void saveActivityLog(final Player player, final ActivityType activityType, String... data) { saveActivityLog(((player != null) ? player.getId() : null), activityType, data); } @SuppressWarnings({"WeakerAccess"})  ActivityLogController(); void saveActivityLog(final Player player, final ActivityType activityType, String... data); void saveActivityLog(final ObjectId objectId, final ActivityType activityType, String... data); static final int DATA_COMPONENT_SIZE_WITH_KEY_VALUE; }### Answer:
@Test public void saveActivityLog() throws Exception { ActivityLogController cut = new ActivityLogController(); cut.datastore = getDatastore(); cut.dateTimeService = dateTimeService; cut.saveActivityLog(getPlayer(), ActivityType.LOGIN_SUCCESS, "data1", "testdata1", "data2", "testdata2"); final List<ActivityLog> activityLogList = getDatastore().createQuery(ActivityLog.class).asList(); assertThat(activityLogList, notNullValue()); assertThat(activityLogList.size(), is(1)); assertThat(activityLogList.get(0).getActivityType(), is(ActivityType.LOGIN_SUCCESS)); assertThat(activityLogList.get(0).getActivityFamily(), is(ActivityFamily.LOGIN)); assertThat(activityLogList.get(0).getPlayerId(), is(TEST_PLAYER_ID)); assertThat(activityLogList.get(0).getData().containsKey("data1"), is(true)); assertThat(activityLogList.get(0).getData().containsValue("testdata1"), is(true)); assertThat(activityLogList.get(0).getData().containsKey("data2"), is(true)); assertThat(activityLogList.get(0).getData().containsValue("testdata2"), is(true)); }