anchor.diff:        })
         .then(_getDebugController)
         .then(testFunc)
  -      .whenComplete(() => storage.dispose());
  +      .whenComplete(() {
  +        if(storage != null) {
  +          storage.dispose();
  +        }
  +      });
     });
   }
   
  
positive.code:     .then(_whenUpdated);
  }
  
  Future<Storage> _customStorageFactory(Storage sourceStorageFactory(), int runCount, Map<String, dynamic> initialNoteValues) {
    Storage store;
    return new Future(sourceStorageFactory)
      .then((Storage value) {
        store = value;
        return store.set('runCount', runCount);
      })
      .then((_) => store);
  }
  
negative.code: 
      _testAppController('initial search', storageFactory, _initialSearch);
  
      _testAppController('legacy note value', () =>
          _customStorageFactory(storageFactory, 4, [_V0_NOTE_SERIALIZE]),
          (AppController ac) {
  
        expect(ac.runCount, 5);
        expect(ac.notes, hasLength(1));
  
        expect(ac.notes[0].value.title, _V0_NOTE_SERIALIZE['title']);
        expect(ac.notes[0].value.content, _V0_NOTE_SERIALIZE['content']);
      });
  
      _testAppController('weird behavior', storageFactory, (AppController ac) {
  