use of org.activityinfo.legacy.shared.command.result.SyncRegionUpdate in project activityinfo by bedatadriven.
the class JpaBatchBuilder method buildUpdate.
public SyncRegionUpdate buildUpdate() throws IOException {
SyncRegionUpdate update = new SyncRegionUpdate();
update.setVersion(version);
update.setComplete(complete);
update.setSql(batch.build());
return update;
}
use of org.activityinfo.legacy.shared.command.result.SyncRegionUpdate in project activityinfo by bedatadriven.
the class LocationBuilderTest method sqlBuilding.
@Test
@OnDataSet("/dbunit/sites-simple1.db.xml")
public void sqlBuilding() throws Exception {
EntityManager em = emf.createEntityManager();
int locationType = 3;
GetSyncRegionUpdates request = new GetSyncRegionUpdates("location/" + locationType, null);
LocationUpdateBuilder builder = new LocationUpdateBuilder(em);
SyncRegionUpdate update = builder.build(new User(), request);
System.out.println("sql: " + update.getSql());
System.out.println("size: " + update.getSql().length());
assertThat(update.getSql(), containsString("location"));
assertThat(update.getSql(), containsString("locationadminlink"));
assertThat(update.getSql(), containsString("Shabunda"));
// admin level for Shabunda
assertThat(update.getSql(), containsString("12,7"));
}
use of org.activityinfo.legacy.shared.command.result.SyncRegionUpdate in project activityinfo by bedatadriven.
the class LocationBuilderTest method locationTypeChange.
@Test
@OnDataSet("/dbunit/sites-simple1.db.xml")
public void locationTypeChange() throws Exception {
EntityManager em = emf.createEntityManager();
User user = em.find(User.class, 1);
// Update the location type 1
Map<String, Object> changes = new HashMap<>();
changes.put("name", "Ishamael");
em.getTransaction().begin();
LocationTypePolicy locationTypePolicy = new LocationTypePolicy(em);
locationTypePolicy.update(user, 1, new PropertyMap(changes));
em.getTransaction().commit();
// First update should include this change
String regionId = "location/" + 1;
LocationUpdateBuilder builder = new LocationUpdateBuilder(em);
GetSyncRegionUpdates request = new GetSyncRegionUpdates(regionId, null);
SyncRegionUpdate update = builder.build(user, request);
assertThat(update.isComplete(), equalTo(true));
assertThat(update.getSql(), containsString("Ishamael"));
// We should be up to date now...
GetSyncRegionsHandler getSyncRegionsHandler = new GetSyncRegionsHandler(em);
SyncRegions syncRegions = getSyncRegionsHandler.execute(new GetSyncRegions(), user);
System.out.println(syncRegions.getList());
assertThat(syncRegions, hasItem(new SyncRegion(regionId, update.getVersion())));
}
use of org.activityinfo.legacy.shared.command.result.SyncRegionUpdate in project activityinfo by bedatadriven.
the class SiteUpdateBuilderTest method subsequentCallsAreUpToDate.
@Test
@OnDataSet("/dbunit/sites-simple1.db.xml")
public void subsequentCallsAreUpToDate() throws Exception {
User user = new User();
user.setId(1);
// update one of the sites so we have a realistic nano value type stamp
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
Site site = em.find(Site.class, 1);
site.setComments("I'm slightly new");
site.setDateEdited(new Date());
em.getTransaction().commit();
em.close();
SyncRegionUpdate initialUpdate = builder.get().build(user, new GetSyncRegionUpdates("sites/1", null));
assertThat(initialUpdate.isComplete(), equalTo(true));
assertThat(initialUpdate.getSql(), not(nullValue()));
assertThat(initialUpdate.getSql(), containsString("slightly new"));
System.out.println(initialUpdate.getSql());
// nothing has changed!
SyncRegionUpdate subsequentUpdate = builder.get().build(user, new GetSyncRegionUpdates("sites/1", initialUpdate.getVersion()));
assertThat(subsequentUpdate.isComplete(), equalTo(true));
assertThat(subsequentUpdate.getSql(), nullValue());
assertThat(subsequentUpdate.getVersion(), equalTo(initialUpdate.getVersion()));
}
Aggregations