Java tutorial
/** * JBoss, Home of Professional Open Source * Copyright Red Hat, Inc., and individual contributors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.jboss.aerogear.unifiedpush.utils.variant; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.UUID; import org.apache.http.HttpStatus; import org.jboss.aerogear.test.ContentTypes; import org.jboss.aerogear.test.Headers; import org.jboss.aerogear.test.Session; import org.jboss.aerogear.test.UnexpectedResponseException; import org.jboss.aerogear.test.Validate; import org.jboss.aerogear.unifiedpush.api.PushApplication; import org.jboss.aerogear.unifiedpush.api.SimplePushVariant; import org.json.simple.JSONObject; import com.jayway.restassured.path.json.JsonPath; import com.jayway.restassured.response.Response; public final class SimplePushVariantUtils { private static final int SINGLE = 1; private SimplePushVariantUtils() { } public static SimplePushVariant create(String name, String description, String developer) { SimplePushVariant simplePushVariant = new SimplePushVariant(); simplePushVariant.setName(name); simplePushVariant.setDescription(description); simplePushVariant.setDeveloper(developer); return simplePushVariant; } public static SimplePushVariant createAndRegister(String name, String description, String developer, PushApplication pushApplication, Session session) { SimplePushVariant simplePushVariant = create(name, description, developer); register(simplePushVariant, pushApplication, session); return simplePushVariant; } public static SimplePushVariant generate() { return generate(SINGLE).iterator().next(); } public static List<SimplePushVariant> generate(int count) { List<SimplePushVariant> simplePushVariants = new ArrayList<SimplePushVariant>(); for (int i = 0; i < count; i++) { String name = UUID.randomUUID().toString(); String description = UUID.randomUUID().toString(); String developer = "admin"; SimplePushVariant simplePushVariant = create(name, description, developer); simplePushVariants.add(simplePushVariant); } return simplePushVariants; } public static SimplePushVariant generateAndRegister(PushApplication pushApplication, Session session) { return generateAndRegister(SINGLE, pushApplication, session).iterator().next(); } public static List<SimplePushVariant> generateAndRegister(int count, PushApplication pushApplication, Session session) { List<SimplePushVariant> simplePushVariants = generate(count); for (SimplePushVariant simplePushVariant : simplePushVariants) { register(simplePushVariant, pushApplication, session); } return simplePushVariants; } public static void register(SimplePushVariant simplePushVariant, PushApplication pushApplication, Session session) { register(simplePushVariant, pushApplication, session, ContentTypes.json()); } public static void register(SimplePushVariant simplePushVariant, PushApplication pushApplication, Session session, String contentType) { Response response = session.givenAuthorized().contentType(contentType).header(Headers.acceptJson()) .body(toJSONString(simplePushVariant)) .post("/rest/applications/{pushApplicationID}/simplePush", pushApplication.getPushApplicationID()); UnexpectedResponseException.verifyResponse(response, HttpStatus.SC_CREATED); setFromJsonPath(response.jsonPath(), simplePushVariant); } public static List<SimplePushVariant> listAll(PushApplication pushApplication, Session session) { Response response = session.givenAuthorized().contentType(ContentTypes.json()).header(Headers.acceptJson()) .get("/rest/applications/{pushApplicationID}/simplePush", pushApplication.getPushApplicationID()); UnexpectedResponseException.verifyResponse(response, HttpStatus.SC_OK); List<SimplePushVariant> simplePushVariants = new ArrayList<SimplePushVariant>(); JsonPath jsonPath = response.jsonPath(); List<Map<String, ?>> items = jsonPath.getList(""); for (int i = 0; i < items.size(); i++) { jsonPath.setRoot("[" + i + "]"); SimplePushVariant simplePushVariant = fromJsonPath(jsonPath); simplePushVariants.add(simplePushVariant); } return simplePushVariants; } public static SimplePushVariant findById(String variantID, PushApplication pushApplication, Session session) { Response response = session.givenAuthorized().contentType(ContentTypes.json()).header(Headers.acceptJson()) .get("/rest/applications/{pushApplicationID}/android/{variantID}", pushApplication.getPushApplicationID(), variantID); UnexpectedResponseException.verifyResponse(response, HttpStatus.SC_OK); return fromJsonPath(response.jsonPath()); } public static void update(SimplePushVariant simplePushVariant, PushApplication pushApplication, Session session) { update(simplePushVariant, pushApplication, session, ContentTypes.json()); } public static void update(SimplePushVariant simplePushVariant, PushApplication pushApplication, Session session, String contentType) { Validate.notNull(session); Response response = session.givenAuthorized().contentType(contentType).header(Headers.acceptJson()) .body(toJSONString(simplePushVariant)) .put("/rest/applications/{pushApplicationID}/simplePush/{variantID}", pushApplication.getPushApplicationID(), simplePushVariant.getVariantID()); UnexpectedResponseException.verifyResponse(response, HttpStatus.SC_NO_CONTENT); } public static void delete(SimplePushVariant simplePushVariant, PushApplication pushApplication, Session session) { Validate.notNull(session); Response response = session.givenAuthorized().contentType(ContentTypes.json()).header(Headers.acceptJson()) .delete("/rest/applications/{pushApplicationID}/simplePush/{variantID}", pushApplication.getPushApplicationID(), simplePushVariant.getVariantID()); UnexpectedResponseException.verifyResponse(response, HttpStatus.SC_NO_CONTENT); } public static JSONObject toJSONObject(SimplePushVariant simplePushVariant) { JSONObject jsonObject = new JSONObject(); jsonObject.put("name", simplePushVariant.getName()); jsonObject.put("description", simplePushVariant.getDescription()); return jsonObject; } public static String toJSONString(SimplePushVariant simplePushVariant) { return toJSONObject(simplePushVariant).toJSONString(); } public static SimplePushVariant fromJsonPath(JsonPath jsonPath) { SimplePushVariant simplePushVariant = new SimplePushVariant(); setFromJsonPath(jsonPath, simplePushVariant); return simplePushVariant; } public static void setFromJsonPath(JsonPath jsonPath, SimplePushVariant simplePushVariant) { simplePushVariant.setId(jsonPath.getString("id")); simplePushVariant.setVariantID(jsonPath.getString("variantID")); simplePushVariant.setDeveloper(jsonPath.getString("developer")); simplePushVariant.setDescription(jsonPath.getString("description")); simplePushVariant.setName(jsonPath.getString("name")); simplePushVariant.setSecret(jsonPath.getString("secret")); } public static SimplePushVariant createSimplePushVariant(String name, String description, String variantID, String secret, String developer) { SimplePushVariant variant = new SimplePushVariant(); variant.setName(name); variant.setDescription(description); variant.setVariantID(variantID); variant.setSecret(secret); variant.setDeveloper(developer); return variant; } /* * public static void checkEquality(SimplePushVariant expected, SimplePushVariant actual) { assertEquals(expected.getName(), * actual.getName()); assertEquals(expected.getDescription(), actual.getDescription()); * assertEquals(expected.getVariantID(), actual.getVariantID()); assertEquals(expected.getSecret(), actual.getSecret()); * assertEquals(expected.getDeveloper(), actual.getDeveloper()); } */ @SuppressWarnings("unchecked") public static Response registerSimplePushVariant(String pushAppId, SimplePushVariant variant, Session session) { JSONObject jsonObject = new JSONObject(); jsonObject.put("name", variant.getName()); jsonObject.put("description", variant.getDescription()); Response response = session.givenAuthorized().contentType(ContentTypes.json()).header(Headers.acceptJson()) .body(jsonObject.toString()).post("/rest/applications/{pushAppId}/simplePush", pushAppId); return response; } @SuppressWarnings("unchecked") public static Response updateSimplePushVariant(String pushAppId, SimplePushVariant variant, String variantId, Session session) { JSONObject jsonObject = new JSONObject(); jsonObject.put("name", variant.getName()); jsonObject.put("description", variant.getDescription()); Response response = session.givenAuthorized().contentType(ContentTypes.json()).header(Headers.acceptJson()) .body(jsonObject.toString()) .put("/rest/applications/{pushAppId}/simplePush/{variantId}", pushAppId, variantId); return response; } public static Response listAllSimplePushVariants(String pushAppId, Session session) { Response response = session.givenAuthorized().contentType(ContentTypes.json()).header(Headers.acceptJson()) .get("/rest/applications/{pushAppId}/simplePush", pushAppId); return response; } public static Response findSimplePushVariantById(String pushAppId, String variantId, Session session) { Response response = session.givenAuthorized().contentType(ContentTypes.json()).header(Headers.acceptJson()) .get("/rest/applications/{pushAppId}/simplePush/{variantId}", pushAppId, variantId); return response; } public static Response deleteSimplePushVariant(String pushAppId, String variantId, Session session) { Response response = session.givenAuthorized() .delete("/rest/applications/{pushAppId}/simplePush/{variantId}", pushAppId, variantId); return response; } }