def METHOD_NAME(self):
    # Do several transactions then undo them.
    oid = self._storage.new_oid()
    revid = None
    for i in range(5):
        revid = self._dostore(oid, revid, data=MinPO(i))
    revs = []
    for i in range(4):
        info = self._storage.undoInfo()
        tid = info[0]["id"]
        # Always undo the most recent txn, so the value will
        # alternate between 3 and 4.
        self._undo(tid, note="undo %d" % i)
        revs.append(load_current(self._storage, oid))
    prev_tid = None
    for i, (data, tid) in enumerate(revs):
        t = self._storage.loadBefore(oid, p64(u64(tid) + 1))
        self.assertEqual(data, t[0])
        self.assertEqual(tid, t[1])
        if prev_tid:
            self.assertTrue(prev_tid < t[1])
        prev_tid = t[1]
        if i < 3:
            self.assertEqual(revs[i+1][1], t[2])
        else:
            self.assertEqual(None, t[2])