package com.nimbits.it.basic; import com.nimbits.client.enums.subscription.SubscriptionNotifyMethod; import com.nimbits.client.enums.subscription.SubscriptionType; import com.nimbits.client.io.http.NimbitsClientException; import com.nimbits.client.model.point.Point; import com.nimbits.client.model.point.PointModel; import com.nimbits.client.model.subscription.Subscription; import com.nimbits.client.model.subscription.SubscriptionModel; import com.nimbits.client.model.value.Value; import com.nimbits.client.model.webhook.DataChannel; import com.nimbits.client.model.webhook.HttpMethod; import com.nimbits.client.model.webhook.WebHook; import com.nimbits.client.model.webhook.WebHookModel; import com.nimbits.it.AbstractNimbitsTest; import org.junit.Before; import org.junit.Test; import java.util.UUID; public class V3CreateAndTestWebHooksAbstract extends AbstractNimbitsTest { private final static String TAG = V3CreateAndTestWebHooksAbstract.class.getName(); @Before public void setUp() throws Exception { super.setUp(); } @Test public void executeTest() throws InterruptedException { String targetPointName = TAG + " Download Target Point " + UUID.randomUUID().toString(); String triggerPointName = TAG + " Trigger Point " + UUID.randomUUID().toString(); String subscriptionName = TAG + " Subscription " + UUID.randomUUID().toString(); Point downloadTarget = nimbits.addPoint(user, new PointModel.Builder() .name(targetPointName) .create()); Point trigger = nimbits.addPoint(downloadTarget, new PointModel.Builder() .name(triggerPointName) .create()); WebHook webHook = nimbits.addWebHook(downloadTarget, new WebHookModel.Builder() .name(TAG + " web hook " + UUID.randomUUID().toString()) .url("http://scooterlabs.com/echo.json?") .method(HttpMethod.GET) .downloadTarget(downloadTarget.getId()) .pathChannel(DataChannel.data) .bodyChannel(DataChannel.meta) .create()); Subscription subscription = nimbits.addSubscription(downloadTarget, new SubscriptionModel.Builder() .name(subscriptionName) .subscribedEntity(trigger.getId()) .notifyMethod(SubscriptionNotifyMethod.webhook) .subscriptionType(SubscriptionType.newValue) .target(webHook.getId()) .create()); String data = UUID.randomUUID().toString(); nimbits.recordValue(trigger, new Value.Builder() .data("value=" + data) .create()); Thread.sleep(1000); Value snapshot = nimbits.getSnapshot(targetPointName); log(snapshot.toString()); log("cleanup " + TAG); try { // nimbits.deleteEntity(webHook); // nimbits.deleteEntity(downloadTarget); } catch (NimbitsClientException ex) { log(ex.getMessage()); ex.printStackTrace(); } log("done " + TAG); } }