package Ġcom . she pel ie v . webrtc _ plugin Ċ Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġcom . n ha ar man . mock it ok otlin 2 .* Ċ import Ġcom . she pel ie v . webrtc _ plugin . plugin . Flutter Backend Registry Ċ import Ġcom . she pel ie v . webrtc _ plugin . plugin . new String Id Ċ import Ġcom . she pel ie v . webrtc _ plugin . webrtc . Video Capt urer Factory Ċ import Ġio . flutter . plugin . common . MethodCall Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . mockito . Mock Ċ import Ġorg . mockito . junit . Mockito JUnit Runner Ċ import Ġorg . webrtc .* Ċ Ċ @ RunWith ( Mockito JUnit Runner :: class ) Ċ class ĠUser Media Test Ġ{ ĊĊĠĠĠ Ġ@ Mock Ġprivate Ġlateinit Ġvar Ġpeer ConnectionFactory : ĠPeer ConnectionFactory ĊĠĠĠ Ġ@ Mock Ġprivate Ġlateinit Ġvar Ġvideo Capt urer Factory : ĠVideo Capt urer Factory ĊĠĠĠ Ġ@ Mock Ġprivate Ġlateinit Ġvar Ġvideo Capt urer : ĠCamera Video Capt urer ĊĠĠĠ Ġ@ Mock Ġprivate Ġlateinit Ġvar Ġbackend Registry : ĠFlutter Backend Registry ĊĠĠĠ Ġ@ Mock Ġprivate Ġlateinit Ġvar Ġaudio Source : ĠAudio Source ĊĠĠĠ Ġ@ Mock Ġprivate Ġlateinit Ġvar Ġvideo Source : ĠVideo Source ĊĠĠĠ Ġ@ Mock Ġprivate Ġlateinit Ġvar Ġcapt urer Observer : ĠCapt urer Observer ĊĠĠĠ Ġ@ Mock Ġprivate Ġlateinit Ġvar Ġvideo Track : ĠVideo Track ĊĠĠĠ Ġ@ Mock Ġprivate Ġlateinit Ġvar Ġaudio Track : ĠAudio Track ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġuser Media : ĠUser Media ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġwhenever ( peer ConnectionFactory . create Audio Source ( any ())) Ġdo Return Ġaudio Source ĊĠĠĠĠĠĠĠ Ġwhenever ( peer ConnectionFactory . create Video Source ( any ())) Ġdo Return Ġvideo Source ĊĊĠĠĠĠĠĠĠ Ġwhenever ( video Source . capt urer Observer ) Ġdo Return Ġcapt urer Observer ĊĊĠĠĠĠĠĠĠ Ġwhenever ( video Capt urer Factory . create Camera Video Capt urer ( any ())) Ġdo Return Ġvideo Capt urer ĊĊĠĠĠĠĠĠĠ Ġuser Media Ġ= ĠUser Media ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpeer ConnectionFactory , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvideo Capt urer Factory , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbackend Registry ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġis Global () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( user Media . is Global ). isTrue () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġfun Ġinitialize User Media () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġarrange ĊĠĠĠĠĠĠĠ Ġval Ġhandler Ġ= Ġuser Media . method Handlers . getValue (" initialize User Media ") ĊĠĠĠĠĠĠĠ Ġval Ġvideo Constraints Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" min Width " Ġto Ġ 6 4 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" maxWidth " Ġto Ġ 1 2 8 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" min Height " Ġto Ġ 4 8 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" max Height " Ġto Ġ 7 2 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" min F ps " Ġto Ġ 1 5 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" max F ps " Ġto Ġ 3 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" facing Mode " Ġto Ġ" user " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġconstraints Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" audio " Ġto Ġempty Map (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" video " Ġto Ġvideo Constraints ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġact ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġhandler ( MethodCall (" initialize User Media ", Ġconstraints )) ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( result ). isNull () ĊĠĠĠĠĠĠĠ Ġargument Captor < Media Constraints >(). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( peer ConnectionFactory ). create Audio Source ( capture ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( first Value . mandatory ). isEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( first Value . optional ). isEmpty () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( peer ConnectionFactory ). create Video Source ( false ) ĊĠĠĠĠĠĠĠ Ġverify ( video Capt urer Factory ). create Camera Video Capt urer ( capt urer Observer ) ĊĠĠĠĠĠĠĠ Ġverify ( video Capt urer ). start Capture ( 6 4 0 , Ġ 4 8 0 , Ġ 1 5 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġfun Ġinitialize User Media _ without _ audio () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġarrange ĊĠĠĠĠĠĠĠ Ġval Ġhandler Ġ= Ġuser Media . method Handlers . getValue (" initialize User Media ") ĊĠĠĠĠĠĠĠ Ġval Ġvideo Constraints Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" min Width " Ġto Ġ 6 4 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" maxWidth " Ġto Ġ 1 2 8 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" min Height " Ġto Ġ 4 8 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" max Height " Ġto Ġ 7 2 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" min F ps " Ġto Ġ 1 5 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" max F ps " Ġto Ġ 3 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" facing Mode " Ġto Ġ" user " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġconstraints Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" audio " Ġto Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" video " Ġto Ġvideo Constraints ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġact ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġhandler ( MethodCall (" initialize User Media ", Ġconstraints )) ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( result ). isNull () ĊĠĠĠĠĠĠĠ Ġverify ( peer ConnectionFactory , Ġnever ()). create Audio Source ( any ()) ĊĠĠĠĠĠĠĠ Ġverify ( peer ConnectionFactory ). create Video Source ( false ) ĊĠĠĠĠĠĠĠ Ġverify ( video Capt urer Factory ). create Camera Video Capt urer ( capt urer Observer ) ĊĠĠĠĠĠĠĠ Ġverify ( video Capt urer ). start Capture ( 6 4 0 , Ġ 4 8 0 , Ġ 1 5 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġfun Ġinitialize User Media _ without _ video () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġarrange ĊĠĠĠĠĠĠĠ Ġval Ġhandler Ġ= Ġuser Media . method Handlers . getValue (" initialize User Media ") ĊĠĠĠĠĠĠĠ Ġval Ġconstraints Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" audio " Ġto Ġempty Map < String , ĠAny >(), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" video " Ġto Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġact ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġhandler ( MethodCall (" initialize User Media ", Ġconstraints )) ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( result ). isNull () ĊĠĠĠĠĠĠĠ Ġargument Captor < Media Constraints >(). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( peer ConnectionFactory ). create Audio Source ( capture ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( first Value . mandatory ). isEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( first Value . optional ). isEmpty () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( peer ConnectionFactory , Ġnever ()). create Video Source ( any ()) ĊĠĠĠĠĠĠĠ Ġverify ( video Capt urer Factory , Ġnever ()). create Camera Video Capt urer ( any ()) ĊĠĠĠĠĠĠĠ Ġverify ( video Capt urer , Ġnever ()). start Capture ( any (), Ġany (), Ġany ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġfun Ġinitialize User Media _ without _ video _ ne ither _ audio () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġarrange ĊĠĠĠĠĠĠĠ Ġval Ġhandler Ġ= Ġuser Media . method Handlers . getValue (" initialize User Media ") ĊĠĠĠĠĠĠĠ Ġval Ġconstraints Ġ= Ġmap Of (" audio " Ġto Ġnull , Ġ" video " Ġto Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġact ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġhandler ( MethodCall (" initialize User Media ", Ġconstraints )) ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( result ). isNull () ĊĠĠĠĠĠĠĠ Ġverify ( peer ConnectionFactory , Ġnever ()). create Audio Source ( any ()) ĊĠĠĠĠĠĠĠ Ġverify ( peer ConnectionFactory , Ġnever ()). create Video Source ( any ()) ĊĠĠĠĠĠĠĠ Ġverify ( video Capt urer Factory , Ġnever ()). create Camera Video Capt urer ( any ()) ĊĠĠĠĠĠĠĠ Ġverify ( video Capt urer , Ġnever ()). start Capture ( any (), Ġany (), Ġany ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġfun Ġcreate Local Media Stream () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġarrange ĊĠĠĠĠĠĠĠ Ġval Ġmedia Stream Ġ= ĠFake Media Stream ( new String Id ()) ĊĠĠĠĠĠĠĠ Ġwhenever ( peer ConnectionFactory . create Local Media Stream ( any ())) Ġdo Return Ġmedia Stream ĊĠĠĠĠĠĠĠ Ġwhenever ( peer ConnectionFactory . create Audio Track ( any (), Ġany ())) Ġdo Return Ġaudio Track ĊĠĠĠĠĠĠĠ Ġwhenever ( peer ConnectionFactory . create Video Track ( any (), Ġany ())) Ġdo Return Ġvideo Track ĊĠĠĠĠĠĠĠ Ġwhenever ( video Track . id ()) Ġdo Return Ġ" video Track :: 4 2 " ĊĠĠĠĠĠĠĠ Ġwhenever ( audio Track . id ()) Ġdo Return Ġ" audio Track :: 4 2 " ĊĠĠĠĠĠĠĠ Ġval Ġinitialize User Media Handler Ġ= Ġuser Media . method Handlers . getValue (" initialize User Media ") ĊĠĠĠĠĠĠĠ Ġval Ġvideo Constraints Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" min Width " Ġto Ġ 6 4 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" maxWidth " Ġto Ġ 1 2 8 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" min Height " Ġto Ġ 4 8 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" max Height " Ġto Ġ 7 2 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" min F ps " Ġto Ġ 1 5 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" max F ps " Ġto Ġ 3 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" facing Mode " Ġto Ġ" user " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġconstraints Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" audio " Ġto Ġempty Map (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" video " Ġto Ġvideo Constraints ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġinitialize User Media Handler ( MethodCall (" initialize User Media ", Ġconstraints )) ĊĊĠĠĠĠĠĠĠ Ġ// Ġact ĊĠĠĠĠĠĠĠ Ġval Ġcreate Local Media Stream Handler Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Media . method Handlers . getValue (" create Local Media Stream ") ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcreate Local Media Stream Handler ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMethod Call (" create Local Media Stream ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ) Ġas ĠMap < String , ĠAny ?> ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( result [" id "] Ġas ĠString ). isNotEmpty () ĊĠĠĠĠĠĠĠ ĠassertThat ( result [" audio Tracks "]). isEqualTo ( listOf ( map Of (" id " Ġto Ġ" audio Track :: 4 2 "))) ĊĠĠĠĠĠĠĠ ĠassertThat ( result [" video Tracks "]). isEqualTo ( listOf ( map Of (" id " Ġto Ġ" video Track :: 4 2 "))) ĊĠĠĠĠĠĠĠ ĠassertThat ( media Stream . audio Tracks ). contains Exactly ( audio Track ) ĊĠĠĠĠĠĠĠ ĠassertThat ( media Stream . video Tracks ). contains Exactly ( video Track ) ĊĠĠĠĠĠĠĠ Ġverify ( peer ConnectionFactory ). create Local Media Stream ( any ()) ĊĠĠĠĠĠĠĠ Ġverify ( peer ConnectionFactory ). create Audio Track ( any (), Ġeq ( audio Source )) ĊĠĠĠĠĠĠĠ Ġverify ( peer ConnectionFactory ). create Video Track ( any (), Ġeq ( video Source )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġfun Ġcreate Local Media Stream _ without _ audio () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġarrange ĊĠĠĠĠĠĠĠ Ġval Ġmedia Stream Ġ= ĠFake Media Stream ( new String Id ()) ĊĠĠĠĠĠĠĠ Ġwhenever ( peer ConnectionFactory . create Local Media Stream ( any ())) Ġdo Return Ġmedia Stream ĊĠĠĠĠĠĠĠ Ġwhenever ( peer ConnectionFactory . create Video Track ( any (), Ġany ())) Ġdo Return Ġvideo Track ĊĠĠĠĠĠĠĠ Ġwhenever ( video Track . id ()) Ġdo Return Ġ" video Track :: 4 2 " ĊĠĠĠĠĠĠĠ Ġval Ġinitialize User Media Handler Ġ= Ġuser Media . method Handlers . getValue (" initialize User Media ") ĊĠĠĠĠĠĠĠ Ġval Ġvideo Constraints Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" min Width " Ġto Ġ 6 4 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" maxWidth " Ġto Ġ 1 2 8 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" min Height " Ġto Ġ 4 8 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" max Height " Ġto Ġ 7 2 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" min F ps " Ġto Ġ 1 5 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" max F ps " Ġto Ġ 3 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" facing Mode " Ġto Ġ" user " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġconstraints Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" audio " Ġto Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" video " Ġto Ġvideo Constraints ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġinitialize User Media Handler ( MethodCall (" initialize User Media ", Ġconstraints )) ĊĊĠĠĠĠĠĠĠ Ġ// Ġact ĊĠĠĠĠĠĠĠ Ġval Ġcreate Local Media Stream Handler Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Media . method Handlers . getValue (" create Local Media Stream ") ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcreate Local Media Stream Handler ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMethod Call (" create Local Media Stream ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ) Ġas ĠMap < String , ĠAny ?> ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( result [" id "] Ġas ĠString ). isNotEmpty () ĊĠĠĠĠĠĠĠ ĠassertThat ( result [" audio Tracks "] Ġas ĠList < Any >). isEmpty () ĊĠĠĠĠĠĠĠ ĠassertThat ( result [" video Tracks "]). isEqualTo ( listOf ( map Of (" id " Ġto Ġ" video Track :: 4 2 "))) ĊĠĠĠĠĠĠĠ ĠassertThat ( media Stream . audio Tracks ). isEmpty () ĊĠĠĠĠĠĠĠ ĠassertThat ( media Stream . video Tracks ). contains Exactly ( video Track ) ĊĠĠĠĠĠĠĠ Ġverify ( peer ConnectionFactory ). create Local Media Stream ( any ()) ĊĠĠĠĠĠĠĠ Ġverify ( peer ConnectionFactory , Ġnever ()). create Audio Track ( any (), Ġany ()) ĊĠĠĠĠĠĠĠ Ġverify ( peer ConnectionFactory ). create Video Track ( any (), Ġeq ( video Source )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġfun Ġcreate Local Media Stream _ without _ video () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġarrange ĊĠĠĠĠĠĠĠ Ġval Ġmedia Stream Ġ= ĠFake Media Stream ( new String Id ()) ĊĠĠĠĠĠĠĠ Ġwhenever ( peer ConnectionFactory . create Local Media Stream ( any ())) Ġdo Return Ġmedia Stream ĊĠĠĠĠĠĠĠ Ġwhenever ( peer ConnectionFactory . create Audio Track ( any (), Ġany ())) Ġdo Return Ġaudio Track ĊĠĠĠĠĠĠĠ Ġwhenever ( audio Track . id ()) Ġdo Return Ġ" audio Track :: 4 2 " ĊĠĠĠĠĠĠĠ Ġval Ġinitialize User Media Handler Ġ= Ġuser Media . method Handlers . getValue (" initialize User Media ") ĊĠĠĠĠĠĠĠ Ġval Ġconstraints Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" audio " Ġto Ġempty Map < String , ĠAny >(), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" video " Ġto Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġinitialize User Media Handler ( MethodCall (" initialize User Media ", Ġconstraints )) ĊĊĠĠĠĠĠĠĠ Ġ// Ġact ĊĠĠĠĠĠĠĠ Ġval Ġcreate Local Media Stream Handler Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Media . method Handlers . getValue (" create Local Media Stream ") ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcreate Local Media Stream Handler ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMethod Call (" create Local Media Stream ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ) Ġas ĠMap < String , ĠAny ?> ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( result [" id "] Ġas ĠString ). isNotEmpty () ĊĠĠĠĠĠĠĠ ĠassertThat ( result [" audio Tracks "]). isEqualTo ( listOf ( map Of (" id " Ġto Ġ" audio Track :: 4 2 "))) ĊĠĠĠĠĠĠĠ ĠassertThat ( result [" video Tracks "] Ġas ĠList < Any >). isEmpty () ĊĠĠĠĠĠĠĠ ĠassertThat ( media Stream . audio Tracks ). contains Exactly ( audio Track ) ĊĠĠĠĠĠĠĠ ĠassertThat ( media Stream . video Tracks ). isEmpty () ĊĠĠĠĠĠĠĠ Ġverify ( peer ConnectionFactory ). create Local Media Stream ( any ()) ĊĠĠĠĠĠĠĠ Ġverify ( peer ConnectionFactory ). create Audio Track ( any (), Ġeq ( audio Source )) ĊĠĠĠĠĠĠĠ Ġverify ( peer ConnectionFactory , Ġnever ()). create Video Track ( any (), Ġany ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġfun Ġcreate Local Media Stream _ without _ video _ ne ither _ audio () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġarrange ĊĠĠĠĠĠĠĠ Ġval Ġmedia Stream Ġ= ĠFake Media Stream ( new String Id ()) ĊĠĠĠĠĠĠĠ Ġwhenever ( peer ConnectionFactory . create Local Media Stream ( any ())) Ġdo Return Ġmedia Stream ĊĠĠĠĠĠĠĠ Ġval Ġinitialize User Media Handler Ġ= Ġuser Media . method Handlers . getValue (" initialize User Media ") ĊĠĠĠĠĠĠĠ Ġval Ġconstraints Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" audio " Ġto Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" video " Ġto Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġinitialize User Media Handler ( MethodCall (" initialize User Media ", Ġconstraints )) ĊĊĠĠĠĠĠĠĠ Ġ// Ġact ĊĠĠĠĠĠĠĠ Ġval Ġcreate Local Media Stream Handler Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Media . method Handlers . getValue (" create Local Media Stream ") ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcreate Local Media Stream Handler ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMethod Call (" create Local Media Stream ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ) Ġas ĠMap < String , ĠAny ?> ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( result [" id "] Ġas ĠString ). isNotEmpty () ĊĠĠĠĠĠĠĠ ĠassertThat ( result [" audio Tracks "] Ġas ĠList < Any >). isEmpty () ĊĠĠĠĠĠĠĠ ĠassertThat ( result [" video Tracks "] Ġas ĠList < Any >). isEmpty () ĊĠĠĠĠĠĠĠ ĠassertThat ( media Stream . audio Tracks ). isEmpty () ĊĠĠĠĠĠĠĠ ĠassertThat ( media Stream . video Tracks ). isEmpty () ĊĠĠĠĠĠĠĠ Ġverify ( peer ConnectionFactory ). create Local Media Stream ( any ()) ĊĠĠĠĠĠĠĠ Ġverify ( peer ConnectionFactory , Ġnever ()). create Audio Track ( any (), Ġany ()) ĊĠĠĠĠĠĠĠ Ġverify ( peer ConnectionFactory , Ġnever ()). create Video Track ( any (), Ġany ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( expected Ġ= ĠIllegalStateException :: class ) ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġfun Ġcreate Local Media Stream _ when _ User Media _ has _ not _ been _ initialized () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġact ĊĠĠĠĠĠĠĠ Ġval Ġcreate Local Media Stream Handler Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Media . method Handlers . getValue (" create Local Media Stream ") ĊĠĠĠĠĠĠĠ Ġcreate Local Media Stream Handler ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMethod Call (" create Local Media Stream ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ) Ġas ĠMap < String , ĠAny ?> ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġfun Ġdispose User Media () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġarrange ĊĠĠĠĠĠĠĠ Ġval Ġinitialize User Media Handler Ġ= Ġuser Media . method Handlers . getValue (" initialize User Media ") ĊĠĠĠĠĠĠĠ Ġval Ġvideo Constraints Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" min Width " Ġto Ġ 6 4 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" maxWidth " Ġto Ġ 1 2 8 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" min Height " Ġto Ġ 4 8 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" max Height " Ġto Ġ 7 2 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" min F ps " Ġto Ġ 1 5 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" max F ps " Ġto Ġ 3 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" facing Mode " Ġto Ġ" user " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġconstraints Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" audio " Ġto Ġempty Map (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" video " Ġto Ġvideo Constraints ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġinitialize User Media Handler ( MethodCall (" initialize User Media ", Ġconstraints )) ĊĊĠĠĠĠĠĠĠ Ġ// Ġact ĊĠĠĠĠĠĠĠ Ġval Ġcreate Local Media Stream Handler Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Media . method Handlers . getValue (" dispose User Media ") ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcreate Local Media Stream Handler ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMethod Call (" dispose User Media ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( result ). isNull () ĊĠĠĠĠĠĠĠ Ġverify ( video Capt urer ). dispose () ĊĠĠĠĠĠĠĠ Ġverify ( audio Source ). dispose () ĊĠĠĠĠĠĠĠ Ġverify ( video Source ). dispose () ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠFake Media Stream ( private Ġ Ġval Ġid : ĠString ) Ġ: ĠMedia Stream ( 1 ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġadd Track ( track : ĠAudio Track ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġaudio Tracks . add ( track ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd Track ( track : ĠVideo Track ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġvideo Tracks . add ( track ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetId (): ĠString Ġ= Ġid Ċ } Ċ