Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
import kotlinx.coroutines.*
import kotlinx.coroutines.channels.consumeEach
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.broadcastIn
import kotlinx.coroutines.test.runBlockingTest
import org.junit.Test
class StateFlowBroadcastTest {
@ExperimentalCoroutinesApi
companion object {
private val stateFlow = MutableStateFlow("initial value")
@FlowPreview
val broadcastChannel =
stateFlow.broadcastIn(CoroutineScope(Dispatchers.Unconfined), CoroutineStart.LAZY)
@FlowPreview
val receiveChannel = broadcastChannel.openSubscription()
}
@FlowPreview
@ExperimentalCoroutinesApi
@Test
fun `send and receive a bullshit`() {
runBlockingTest {
launch {
receiveChannel.consumeEach {
println(it)
}
}
launch {
delay(2000)
broadcastChannel.send("heyyyyy" + 1)
delay(2000)
broadcastChannel.close()
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment