inverse-front/app/src/test/kotlin/AdminRepositoryImplTest.kt
2025-02-20 15:18:29 +03:00

49 lines
1.7 KiB
Kotlin

import android.content.Context
import androidx.test.core.app.ApplicationProvider
import kotlinx.coroutines.test.runTest
import org.junit.Assert.assertNotNull
import org.junit.Assert.assertNull
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.RobolectricTestRunner
import ru.myitschool.work.core.Constants
import ru.myitschool.work.data.AdminRepositoryImpl
import ru.myitschool.work.data.local.CredentialsLocalDataSource
import ru.myitschool.work.data.network.AdminNetworkDataSource
import ru.myitschool.work.domain.admin.AdminRepository
@RunWith(RobolectricTestRunner::class)
class AdminRepositoryImplTest {
private lateinit var context: Context
private lateinit var repository: AdminRepository
@Before
fun setUp() {
context = ApplicationProvider.getApplicationContext()
CredentialsLocalDataSource.buildSource(
context.getSharedPreferences(
Constants.TOKEN_KEY,
Context.MODE_PRIVATE
)
)
repository = AdminRepositoryImpl(
networkDataSource = AdminNetworkDataSource,
localCredentialsLocalDataSource = CredentialsLocalDataSource.getInstance()
)
}
@Test
fun `When user have admin permissions and blocked user exist process` () = runTest {
CredentialsLocalDataSource.getInstance().updateToken("pivanov", "admin")
assertNull(repository.blockUser("").exceptionOrNull())
}
@Test
fun `When user don not have admin permissions error` () = runTest {
CredentialsLocalDataSource.getInstance().updateToken("", "")
assertNotNull(repository.blockUser("").exceptionOrNull())
}
}