anchor.diff:        tearDown(() async {
           await ref.remove();
           ref = null;
  +        key = null;
         });
   
  -      test("child", () {
  +      test("child and once on value", () async {
           var childRef = ref.child(key);
  -        expect(childRef, isNotNull);
  +        var event = await childRef.once("value");
  +        expect(event.snapshot.key, key);
  +        expect(event.snapshot.val()["text"], "hello");
   
  -        var childChildRef = childRef.child("text");
  -        expect(childChildRef, isNotNull);
  +        childRef = childRef.child("text");
  +        event = await childRef.once("value");
  +        expect(event.snapshot.key, "text");
  +        expect(event.snapshot.val(), "hello");
         });
   
         test("key", () {
  
positive.code:       test("parent", () {
          var childRef = ref.child("text");
          expect(childRef, isNotNull);
          expect(childRef.parent.toString(), "${databaseUrl}/notes");
        });
  
        test("root", () {
          var childRef = ref.child("text");
          expect(childRef.root.toString(), contains(databaseUrl));
        });
      });
    });
  }
  
negative.code:       String key;
  
        setUp(() {
          ref = database.ref("messages");
          key = ref.push({"text": "hello"}).key;
          expect(key, isNotNull);
        });
  