@@ -11,6 +11,9 @@ expect fun runTest(test: suspend () -> Unit)
11
11
12
12
class FirebaseDatabaseTest {
13
13
14
+ @Serializable
15
+ data class FirebaseDatabaseChildTest (val prop1 : String? = null , val time : Double = 0.0 )
16
+
14
17
@Serializable
15
18
data class DatabaseTest (val title : String , val likes : Int = 0 )
16
19
@@ -34,6 +37,33 @@ class FirebaseDatabaseTest {
34
37
}
35
38
}
36
39
40
+ @Test
41
+ fun testSetValue () = runTest {
42
+ val testValue = " test"
43
+ val testReference = Firebase .database.reference(" testPath" )
44
+
45
+ testReference.setValue(testValue)
46
+
47
+ val testReferenceValue = testReference
48
+ .valueEvents
49
+ .first()
50
+ .value<String >()
51
+
52
+ assertEquals(testValue, testReferenceValue)
53
+ }
54
+
55
+ @Test
56
+ fun testChildCount () = runTest {
57
+ setupRealtimeData()
58
+ val dataSnapshot = Firebase .database
59
+ .reference(" FirebaseRealtimeDatabaseTest" )
60
+ .valueEvents
61
+ .first()
62
+
63
+ val firebaseDatabaseChildCount = dataSnapshot.children.count()
64
+ assertEquals(3 , firebaseDatabaseChildCount)
65
+ }
66
+
37
67
@Test
38
68
fun testBasicIncrementTransaction () = runTest {
39
69
val data = DatabaseTest (" PostOne" , 2 )
@@ -80,6 +110,19 @@ class FirebaseDatabaseTest {
80
110
cleanUp()
81
111
}
82
112
113
+ private suspend fun setupRealtimeData () {
114
+ val firebaseDatabaseTestReference = Firebase .database
115
+ .reference(" FirebaseRealtimeDatabaseTest" )
116
+
117
+ val firebaseDatabaseChildTest1 = FirebaseDatabaseChildTest (" aaa" )
118
+ val firebaseDatabaseChildTest2 = FirebaseDatabaseChildTest (" bbb" )
119
+ val firebaseDatabaseChildTest3 = FirebaseDatabaseChildTest (" ccc" )
120
+
121
+ firebaseDatabaseTestReference.child(" 1" ).setValue(firebaseDatabaseChildTest1)
122
+ firebaseDatabaseTestReference.child(" 2" ).setValue(firebaseDatabaseChildTest2)
123
+ firebaseDatabaseTestReference.child(" 3" ).setValue(firebaseDatabaseChildTest3)
124
+ }
125
+
83
126
private fun cleanUp () {
84
127
Firebase
85
128
.takeIf { Firebase .apps(context).isNotEmpty() }
0 commit comments