package com.nimbits.it.basic; import com.google.common.base.Optional; import com.google.gson.Gson; import com.nimbits.client.model.entity.Entity; import com.nimbits.client.model.subscription.Subscription; import com.nimbits.client.model.subscription.SubscriptionModel; import com.nimbits.it.AbstractNimbitsTest; import com.nimbits.server.gson.GsonFactory; import org.junit.Before; import org.junit.Test; import retrofit.Callback; import retrofit.RetrofitError; import retrofit.client.Response; import java.util.UUID; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import static org.junit.Assert.*; public class V3UpdateEntityTestAbstract extends AbstractNimbitsTest { private CountDownLatch lock = new CountDownLatch(1); @Before public void setUp() throws Exception { super.setUp(); } @Test public void testSetup() { assertTrue(true); } @Test public void executeTest() throws InterruptedException { final String name = UUID.randomUUID().toString(); Subscription subscription = new SubscriptionModel.Builder().name(name) .target("foo").create(); Gson gson = GsonFactory.getInstance(true); String json = gson.toJson(subscription); log(json); Entity entity = gson.fromJson(json, Entity.class); Subscription subscription1 = (Subscription) entity; assertNotNull(subscription1.getTarget()); assertEquals(name, entity.getName().getValue()); nimbits.addSubscription(user, subscription); Optional<Subscription> returnedSubscription = nimbits.findSubscription(name); assertTrue(returnedSubscription.isPresent()); //update it Subscription r1 = returnedSubscription.get(); assertEquals(name, r1.getName().getValue()); r1.setTarget("bar"); nimbits.updateEntity(r1, new Callback<Void>() { @Override public void success(Void aVoid, Response response) { lock.countDown(); } @Override public void failure(RetrofitError retrofitError) { fail(retrofitError.getMessage()); } }); lock.await(2000, TimeUnit.MILLISECONDS); log("checking"); Optional<Subscription> secondReturned = nimbits.findSubscription(name); assertTrue(secondReturned.isPresent()); Subscription r2 = secondReturned.get(); assertEquals("bar", r2.getTarget()); } }