Toggle navigation
Toggle navigation
此项目
正在载入...
Sign in
xuning
/
livekitAndroidXuningTest
转到一个项目
Toggle navigation
项目
群组
代码片段
帮助
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
David Liu
2021-09-30 15:01:11 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
fea01f7090b316658abc44347071bceee0603d43
fea01f70
1 parent
49b6c569
get unit tests back up and running
隐藏空白字符变更
内嵌
并排对比
正在显示
4 个修改的文件
包含
133 行增加
和
4 行删除
build.gradle
livekit-android-sdk/build.gradle
livekit-android-sdk/src/test/java/io/livekit/android/room/RoomTest.kt
livekit-android-sdk/src/test/java/io/livekit/android/room/mock/MockEglBase.kt
build.gradle
查看文件 @
fea01f7
...
...
@@ -11,7 +11,7 @@ buildscript {
}
dependencies
{
classpath
'com.android.tools.build:gradle:7.0.
1
'
classpath
'com.android.tools.build:gradle:7.0.
2
'
classpath
"org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath
"org.jetbrains.kotlin:kotlin-serialization:$kotlin_version"
classpath
"org.jetbrains.dokka:dokka-gradle-plugin:$dokka_version"
...
...
livekit-android-sdk/build.gradle
查看文件 @
fea01f7
...
...
@@ -31,9 +31,13 @@ android {
sourceSets
{
main
.
java
.
srcDirs
+=
"${protobuf.generatedFilesBaseDir}/main/javalite"
main
.
proto
.
srcDirs
+=
"${generated.protoSrc}"
}
testOptions
{
unitTests
{
includeAndroidResources
=
true
}
}
compileOptions
{
sourceCompatibility
java_version
targetCompatibility
java_version
...
...
@@ -90,6 +94,7 @@ dokkaHtml {
}
dependencies
{
protobuf
files
(
generated
.
protoSrc
)
implementation
fileTree
(
dir:
'libs'
,
include:
[
'*.jar'
])
implementation
"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation
'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.3'
...
...
@@ -106,10 +111,13 @@ dependencies {
implementation
'com.vdurmont:semver4j:3.1.0'
testImplementation
'junit:junit:4.13.2'
testImplementation
'org.robolectric:robolectric:4.6'
testImplementation
'org.mockito:mockito-core:3.8.0'
testImplementation
"org.mockito.kotlin:mockito-kotlin:3.1.0"
androidTestImplementation
'androidx.test.ext:junit:1.1.2'
androidTestImplementation
'androidx.test.espresso:espresso-core:3.3.0'
testImplementation
'androidx.test:core:1.4.0'
testImplementation
"org.jetbrains.kotlinx:kotlinx-coroutines-test:1.4.3"
androidTestImplementation
'androidx.test.ext:junit:1.1.3'
androidTestImplementation
'androidx.test.espresso:espresso-core:3.4.0'
}
apply
from:
rootProject
.
file
(
'gradle/gradle-mvn-push.gradle'
)
...
...
livekit-android-sdk/src/test/java/io/livekit/android/room/RoomTest.kt
0 → 100644
查看文件 @
fea01f7
package io.livekit.android.room
import android.content.Context
import androidx.test.core.app.ApplicationProvider
import io.livekit.android.room.mock.MockEglBase
import io.livekit.android.room.participant.LocalParticipant
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.test.TestCoroutineScope
import kotlinx.coroutines.withTimeoutOrNull
import livekit.LivekitModels
import org.junit.Assert
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mock
import org.mockito.junit.MockitoJUnit
import org.robolectric.RobolectricTestRunner
import org.webrtc.EglBase
import org.webrtc.PeerConnectionFactory
@ExperimentalCoroutinesApi
@RunWith(RobolectricTestRunner::class)
class RoomTest {
@get:Rule
var mockitoRule = MockitoJUnit.rule()
lateinit var context: Context
@Mock
lateinit var rtcEngine: RTCEngine
@Mock
lateinit var peerConnectionFactory: PeerConnectionFactory
var eglBase: EglBase = MockEglBase()
val localParticantFactory = object : LocalParticipant.Factory {
override fun create(info: LivekitModels.ParticipantInfo): LocalParticipant {
return LocalParticipant(
info,
rtcEngine,
peerConnectionFactory,
context,
eglBase,
)
}
}
lateinit var room: Room
@Before
fun setup() {
context = ApplicationProvider.getApplicationContext()
room = Room(
context,
rtcEngine,
eglBase,
localParticantFactory
)
}
@Test
fun connectTest() {
val job = TestCoroutineScope().launch {
room.connect(
url = "http://www.example.com",
token = "",
options = null
)
}
room.onIceConnected()
runBlocking {
Assert.assertNotNull(
withTimeoutOrNull(1000) {
job.join()
}
)
}
}
}
\ No newline at end of file
...
...
livekit-android-sdk/src/test/java/io/livekit/android/room/mock/MockEglBase.kt
0 → 100644
查看文件 @
fea01f7
package io.livekit.android.room.mock
import android.graphics.SurfaceTexture
import android.view.Surface
import org.webrtc.EglBase
class MockEglBase(
private val eglContext: EglBase.Context = EglBase.Context { 0 }
) : EglBase {
override fun createSurface(p0: Surface?) {}
override fun createSurface(p0: SurfaceTexture?) {}
override fun createDummyPbufferSurface() {}
override fun createPbufferSurface(p0: Int, p1: Int) {}
override fun getEglBaseContext(): EglBase.Context = eglContext
override fun hasSurface(): Boolean = false
override fun surfaceWidth(): Int = 0
override fun surfaceHeight(): Int = 0
override fun releaseSurface() {}
override fun release() {}
override fun makeCurrent() {}
override fun detachCurrent() {}
override fun swapBuffers() {}
override fun swapBuffers(p0: Long) {}
}
\ No newline at end of file
...
...
请
注册
或
登录
后发表评论