David Liu

participant tests

@@ -49,6 +49,7 @@ class SubscriberTransportObserver( @@ -49,6 +49,7 @@ class SubscriberTransportObserver(
49 } 49 }
50 50
51 override fun onIceConnectionChange(p0: PeerConnection.IceConnectionState?) { 51 override fun onIceConnectionChange(p0: PeerConnection.IceConnectionState?) {
  52 + Timber.v { "onIceConnection new state: $p0" }
52 } 53 }
53 54
54 override fun onIceConnectionReceivingChange(p0: Boolean) { 55 override fun onIceConnectionReceivingChange(p0: Boolean) {
@@ -21,6 +21,14 @@ open class Participant(var sid: String, identity: String? = null) { @@ -21,6 +21,14 @@ open class Participant(var sid: String, identity: String? = null) {
21 } 21 }
22 } 22 }
23 var metadata: String? = null 23 var metadata: String? = null
  24 + internal set(v) {
  25 + val prevMetadata = field
  26 + field = v
  27 + if (prevMetadata != v) {
  28 + listener?.onMetadataChanged(this, prevMetadata)
  29 + internalListener?.onMetadataChanged(this, prevMetadata)
  30 + }
  31 + }
24 32
25 /** 33 /**
26 * Listener for when participant properties change 34 * Listener for when participant properties change
@@ -64,14 +72,7 @@ open class Participant(var sid: String, identity: String? = null) { @@ -64,14 +72,7 @@ open class Participant(var sid: String, identity: String? = null) {
64 sid = info.sid 72 sid = info.sid
65 identity = info.identity 73 identity = info.identity
66 participantInfo = info 74 participantInfo = info
67 -  
68 - val prevMetadata = metadata  
69 metadata = info.metadata 75 metadata = info.metadata
70 -  
71 - if (prevMetadata != metadata) {  
72 - listener?.onMetadataChanged(this, prevMetadata)  
73 - internalListener?.onMetadataChanged(this, prevMetadata)  
74 - }  
75 } 76 }
76 77
77 override fun equals(other: Any?): Boolean { 78 override fun equals(other: Any?): Boolean {
@@ -15,7 +15,8 @@ import org.webrtc.VideoTrack @@ -15,7 +15,8 @@ import org.webrtc.VideoTrack
15 15
16 class RemoteParticipant( 16 class RemoteParticipant(
17 val rtcClient: RTCClient, 17 val rtcClient: RTCClient,
18 - sid: String, name: String? = null, 18 + sid: String,
  19 + name: String? = null,
19 ) : Participant(sid, name) { 20 ) : Participant(sid, name) {
20 /** 21 /**
21 * @suppress 22 * @suppress
@@ -4,7 +4,10 @@ import livekit.LivekitModels @@ -4,7 +4,10 @@ import livekit.LivekitModels
4 import org.webrtc.DataChannel 4 import org.webrtc.DataChannel
5 import org.webrtc.MediaStreamTrack 5 import org.webrtc.MediaStreamTrack
6 6
7 -open class Track(name: String, kind: LivekitModels.TrackType) { 7 +open class Track(
  8 + name: String,
  9 + kind: LivekitModels.TrackType
  10 +) {
8 var name = name 11 var name = name
9 internal set 12 internal set
10 var kind = kind 13 var kind = kind
  1 +package io.livekit.android.room.participant
  2 +
  3 +import livekit.LivekitModels
  4 +import org.junit.Assert.assertEquals
  5 +import org.junit.Assert.assertTrue
  6 +import org.junit.Before
  7 +import org.junit.Test
  8 +
  9 +class ParticipantTest {
  10 +
  11 + lateinit var participant: Participant
  12 +
  13 + @Before
  14 + fun setup() {
  15 + participant = Participant("", null)
  16 + }
  17 +
  18 + @Test
  19 + fun updateFromInfo() {
  20 + participant.updateFromInfo(INFO)
  21 +
  22 + assertTrue(participant.hasInfo)
  23 + assertEquals(INFO.sid, participant.sid)
  24 + assertEquals(INFO.identity, participant.identity)
  25 + assertEquals(INFO.metadata, participant.metadata)
  26 + }
  27 +
  28 + @Test
  29 + fun setMetadataCallsListeners() {
  30 + class MetadataListener : ParticipantListener {
  31 + var wasCalled = false
  32 + lateinit var participantValue: Participant
  33 + var prevMetadataValue: String? = null
  34 + override fun onMetadataChanged(participant: Participant, prevMetadata: String?) {
  35 + wasCalled = true
  36 + participantValue = participant
  37 + prevMetadataValue = prevMetadata
  38 + }
  39 + }
  40 +
  41 + val publicListener = MetadataListener()
  42 + val internalListener = MetadataListener()
  43 +
  44 + participant.listener = publicListener
  45 + participant.internalListener = internalListener
  46 +
  47 + val prevMetadata = participant.metadata
  48 + val metadata = "metadata"
  49 + participant.metadata = metadata
  50 +
  51 + fun checkValues(listener: MetadataListener) {
  52 + assertTrue(listener.wasCalled)
  53 + assertEquals(participant, listener.participantValue)
  54 + assertEquals(prevMetadata, listener.prevMetadataValue)
  55 + }
  56 +
  57 + checkValues(publicListener)
  58 + checkValues(internalListener)
  59 +
  60 + }
  61 +
  62 + companion object {
  63 + val INFO = LivekitModels.ParticipantInfo.newBuilder()
  64 + .setSid("sid")
  65 + .setIdentity("identity")
  66 + .setMetadata("metadata")
  67 + .build()
  68 + }
  69 +}
  1 +package io.livekit.android.room.participant
  2 +
  3 +import org.junit.Test
  4 +
  5 +import org.junit.Assert.*
  6 +
  7 +class RemoteParticipantTest {
  8 + @Test
  9 + fun addition_isCorrect() {
  10 + assertEquals(4, 2 + 2)
  11 + }
  12 +}