package com.nimbits.it.basic; import com.google.common.base.Optional; import com.nimbits.client.model.point.Point; import com.nimbits.client.model.point.PointModel; import com.nimbits.it.AbstractNimbitsTest; import org.junit.Before; import org.junit.Test; import retrofit.Callback; import retrofit.RetrofitError; import retrofit.client.Response; import java.util.UUID; import static org.junit.Assert.*; public class AlarmTestAbstract extends AbstractNimbitsTest { @Before public void setUp() throws Exception { super.setUp(); } @Test public void executeIdleSetTest() throws InterruptedException { doTest(true, true, true); doTest(true, true, false); doTest(true, false, true); doTest(false, true, true); doTest(true, false, false); doTest(false, true, false); doTest(false, false, true); doTest(false, false, false); } private void doTest(boolean idleSetting, boolean lowSetting, boolean highSetting) throws InterruptedException { String pointName = UUID.randomUUID().toString(); final boolean[] gotCallback = {false}; Point point; Callback<Void> callback = new Callback<Void>() { @Override public void success(Void aVoid, Response response) { gotCallback[0] = true; } @Override public void failure(RetrofitError retrofitError) { fail(); retrofitError.printStackTrace(); } }; nimbits.addPoint(user, new PointModel.Builder().name(pointName).create()); Optional<Point> serversVersion; serversVersion = nimbits.findPointByName(pointName); assertTrue(serversVersion.isPresent()); assertNotNull(serversVersion.get().getId()); point = serversVersion.get(); assertEquals(pointName, point.getName().getValue()); point.setIdleAlarmOn(idleSetting); point.setLowAlarmOn(lowSetting); point.setHighAlarmOn(highSetting); assertTrue(point.isIdleAlarmOn() == idleSetting); assertTrue(point.isLowAlarmOn() == lowSetting); assertTrue(point.isHighAlarmOn() == highSetting); nimbits.updateEntity(point, callback); while (! gotCallback[0]) { Thread.sleep(1); //wait for callback } serversVersion = nimbits.findPointByName(pointName); assertTrue(serversVersion.isPresent()); point = serversVersion.get(); assertEquals(idleSetting, point.isIdleAlarmOn()); assertEquals(lowSetting, point.isLowAlarmOn()); assertEquals(highSetting, point.isHighAlarmOn()); } }