@Test
  public void partialUpdateTest() throws Exception {
    MorphiumSingleton.get().clearCollection(PartUpdTestObj.class);
    PartUpdTestObj o = new PartUpdTestObj();
    o.setName("1st");
    o.setValue(5);
    MorphiumSingleton.get().store(o);
    waitForWrites();

    Query<PartUpdTestObj> q = MorphiumSingleton.get().createQueryFor(PartUpdTestObj.class);
    q = q.f("value").eq(5);
    PartUpdTestObj po = q.get();
    assert (po.getValue() == o.getValue()) : "Values different?";
    assert (po.getName().equals(o.getName())) : "Names different?";
    assert (po instanceof PartiallyUpdateable) : "No partial updateable?";
    po.inc();
    assert (((PartiallyUpdateable) po).getAlteredFields().contains("value")) : "Value not changed?";
    MorphiumSingleton.get().store(po);

    po.setName("neuer Name");
    assert (!((PartiallyUpdateable) po).getAlteredFields().contains("value"))
        : "Value still in altered fields?";
    assert (((PartiallyUpdateable) po).getAlteredFields().contains("name")) : "Name not changed?";
    MorphiumSingleton.get().store(po);
    waitForWrites();
    q.setReadPreferenceLevel(ReadPreferenceLevel.PRIMARY);
    po = q.q().f("value").eq(6).get();
    assert (po.getName().equals("neuer Name")) : "Name not changed?";
  }