@@ -7,8 +7,14 @@ class UserRepository {
77 FirebaseDatabase firebaseDatabase;
88
99 Future <String > getUserName (String userId) async {
10- final userNode =
11- firebaseDatabase.reference ().child ('users' ).child ('$userId /name' );
10+ final userNameReference =
11+ firebaseDatabase.reference ().child ('users' ).child (userId).child ('name' );
12+ final dataSnapshot = await userNameReference.once ();
13+ return dataSnapshot.value;
14+ }
15+
16+ Future <Map <String , dynamic >> getUser (String userId) async {
17+ final userNode = firebaseDatabase.reference ().child ('users/$userId ' );
1218 final dataSnapshot = await userNode.once ();
1319 return dataSnapshot.value;
1420 }
@@ -20,18 +26,39 @@ void main() {
2026 // Put fake data
2127 const userId = 'userId' ;
2228 const userName = 'Elon musk' ;
23- MockFirebaseDatabase .instance
24- .reference ()
25- .child ('users' )
26- .child (userId)
27- .child ('name' )
28- .set (userName);
29+ const fakeData = {
30+ 'users' : {
31+ userId: {
32+ 'name' : userName,
33+ 34+ 'photoUrl' : 'url-to-photo.jpg' ,
35+ },
36+ 'otherUserId' : {
37+ 'name' : 'userName' ,
38+ 39+ 'photoUrl' : 'other_url-to-photo.jpg' ,
40+ }
41+ }
42+ };
43+ MockFirebaseDatabase .instance.reference ().set (fakeData);
2944 setUp (() {
3045 firebaseDatabase = MockFirebaseDatabase .instance;
3146 userRepository = UserRepository (firebaseDatabase);
3247 });
33- test ('Should contain value ' , () async {
34- final userNameFromFakeDatabase = userRepository.getUserName (userId);
48+ test ('Should get userName ... ' , () async {
49+ final userNameFromFakeDatabase = await userRepository.getUserName (userId);
3550 expect (userNameFromFakeDatabase, equals (userName));
3651 });
52+
53+ test ('Should get user ...' , () async {
54+ final userNameFromFakeDatabase = await userRepository.getUser (userId);
55+ expect (
56+ userNameFromFakeDatabase,
57+ equals ({
58+ 'name' : userName,
59+ 60+ 'photoUrl' : 'url-to-photo.jpg' ,
61+ }),
62+ );
63+ });
3764}
0 commit comments