@@ -11,6 +11,9 @@ expect fun runTest(test: suspend () -> Unit)
1111
1212class FirebaseDatabaseTest {
1313
14+ @Serializable
15+ data class FirebaseDatabaseChildTest (val prop1 : String? = null , val time : Double = 0.0 )
16+
1417 @Serializable
1518 data class DatabaseTest (val title : String , val likes : Int = 0 )
1619
@@ -34,6 +37,33 @@ class FirebaseDatabaseTest {
3437 }
3538 }
3639
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+
3767 @Test
3868 fun testBasicIncrementTransaction () = runTest {
3969 val data = DatabaseTest (" PostOne" , 2 )
@@ -80,6 +110,19 @@ class FirebaseDatabaseTest {
80110 cleanUp()
81111 }
82112
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+
83126 private fun cleanUp () {
84127 Firebase
85128 .takeIf { Firebase .apps(context).isNotEmpty() }
0 commit comments