added simple Selenium Test for TrackedEventsResource

This commit is contained in:
Steffen Jacobs committed 2019-06-25 14:08:47 +02:00
1 parent ac1ba531aa
commit 0c237b8572
3 files changed
+162 -6

No files matched your search

@@ -0,0 +1,123 @@
package com.sap.sailing.selenium.api.event;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import com.sap.sailing.selenium.api.core.ApiContext;
import com.sap.sailing.selenium.api.core.JsonWrapper;
public class TrackedEventsApi {
private static final String TRACKED_EVENTS_URL = "/api/v1/events/trackedevents/";
private static final String KEY_TRACKED_EVENTS = "trackedEvents";
private static final String KEY_EVENT_ID = "eventId";
private static final String KEY_EVENT_IS_ARCHIVED = "isArchived";
private static final String KEY_EVENT_NAME = "name";
private static final String KEY_EVENT_START = "start";
private static final String KEY_EVENT_END = "end";
private static final String KEY_EVENT_BASE_URL = "url";
private static final String KEY_EVENT_IS_OWNER = "isOwner";
private static final String KEY_EVENT_TRACKED_ELEMENTS = "trackedElements";
private static final String KEY_TRACKED_ELEMENT_DEVICE_ID = "deviceId";
private static final String KEY_TRACKED_ELEMENT_COMPETITOR_ID = "competitorId";
private static final String KEY_TRACKED_ELEMENT_BOAT_ID = "boatId";
private static final String KEY_TRACKED_ELEMENT_MARK_ID = "markId";
public TrackedEvents getTrackedEvents(ApiContext ctx, boolean isArchived) {
final Map<String, String> queryParams = new HashMap<>();
queryParams.put(KEY_EVENT_IS_ARCHIVED, Boolean.toString(isArchived));
return new TrackedEvents(ctx.get(TRACKED_EVENTS_URL, queryParams));
}
public class TrackedElement extends JsonWrapper {
public TrackedElement(JSONObject json) {
super(json);
}
public String getCompetitorId() {
return get(KEY_TRACKED_ELEMENT_COMPETITOR_ID);
}
public String getBoatId() {
return get(KEY_TRACKED_ELEMENT_BOAT_ID);
}
public String getMarkId() {
return get(KEY_TRACKED_ELEMENT_MARK_ID);
}
public String getDeviceId() {
return get(KEY_TRACKED_ELEMENT_DEVICE_ID);
}
}
public class TrackedEvents extends JsonWrapper {
public TrackedEvents(JSONObject json) {
super(json);
}
public Iterable<TrackedEvent> getEvents() {
final Collection<TrackedEvent> events = new ArrayList<>();
JSONArray array = get(KEY_TRACKED_EVENTS);
for (Object json : array) {
events.add((TrackedEvent) json);
}
return events;
}
}
public class TrackedEvent extends JsonWrapper {
public TrackedEvent(JSONObject json) {
super(json);
}
public String getEventId() {
return get(KEY_EVENT_ID);
}
public String getEventName() {
return get(KEY_EVENT_NAME);
}
public String getEventStart() {
return get(KEY_EVENT_START);
}
public String getEventEnd() {
return get(KEY_EVENT_END);
}
public String getEventBaseUrl() {
return get(KEY_EVENT_BASE_URL);
}
public boolean isArchived() {
return get(KEY_EVENT_IS_ARCHIVED);
}
public boolean isOwner() {
return get(KEY_EVENT_IS_OWNER);
}
public Iterable<TrackedElement> getTrackedElements() {
JSONArray array = get(KEY_EVENT_TRACKED_ELEMENTS);
Collection<TrackedElement> col = new ArrayList<>();
if (array != null) {
for (Object w : array) {
col.add((TrackedElement) w);
}
}
return col;
}
}
}
@@ -0,0 +1,33 @@
package com.sap.sailing.selenium.api.test;
import static com.sap.sailing.selenium.api.core.ApiContext.SERVER_CONTEXT;
import static com.sap.sailing.selenium.api.core.ApiContext.createAdminApiContext;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import com.sap.sailing.selenium.api.core.ApiContext;
import com.sap.sailing.selenium.api.event.TrackedEventsApi;
import com.sap.sailing.selenium.api.event.TrackedEventsApi.TrackedEvents;
import com.sap.sailing.selenium.test.AbstractSeleniumTest;
import com.sap.sse.common.Util;
public class TrackedEventsResourceApiTest extends AbstractSeleniumTest {
private final TrackedEventsApi trackedEventsApi = new TrackedEventsApi();
@Before
public void setUp() {
clearState(getContextRoot());
}
@Test
public void testGetTrackedEventsEmpty() {
final ApiContext adminCtx = createAdminApiContext(getContextRoot(), SERVER_CONTEXT);
final TrackedEvents trackedEvents = trackedEventsApi.getTrackedEvents(adminCtx, true);
Assert.assertNotNull(trackedEvents);
Assert.assertTrue(Util.isEmpty(trackedEvents.getEvents()));
}
}
@@ -88,7 +88,7 @@ public class TrackedEventsResource extends AbstractSailingServerResource {
final JSONArray deviceIdsWithTrackedElementJson = new JSONArray();
for(TrackedElementWithDeviceId trackedElement : pref.getTrackedElements()) {
JSONObject trackedElementJson = new JSONObject();
final JSONObject trackedElementJson = new JSONObject();
trackedElementJson.put(KEY_TRACKED_ELEMENT_DEVICE_ID, trackedElement.getDeviceId());
if(trackedElement.getTrackedCompetitorId() != null) {
trackedElementJson.put(KEY_TRACKED_ELEMENT_COMPETITOR_ID, trackedElement.getTrackedCompetitorId().toString());
@@ -111,10 +111,10 @@ public class TrackedEventsResource extends AbstractSailingServerResource {
}
}
JSONObject resultEvents = new JSONObject();
final JSONObject resultEvents = new JSONObject();
resultEvents.put(KEY_TRACKED_EVENTS, result);
String json = resultEvents.toJSONString();
builder = Response.ok(json).header("Content-Type", MediaType.APPLICATION_JSON + ";charset=UTF-8");
final String jsonString = resultEvents.toJSONString();
builder = Response.ok(jsonString).header("Content-Type", MediaType.APPLICATION_JSON + ";charset=UTF-8");
} else {
builder = Response.status(Status.UNAUTHORIZED);
}
@@ -145,8 +145,8 @@ public class TrackedEventsResource extends AbstractSailingServerResource {
prefs = new TrackedEventPreferences();
}
Collection<TrackedEventPreference> prefsNew = new ArrayList<>();
Iterator<TrackedEventPreference> it = prefs.getTrackedEvents().iterator();
final Collection<TrackedEventPreference> prefsNew = new ArrayList<>();
final Iterator<TrackedEventPreference> it = prefs.getTrackedEvents().iterator();
while (it.hasNext()) {
final TrackedEventPreference pref = it.next();
if (pref.getEventId().equals(uuid)) {