Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -257,6 +257,7 @@ dependencies {
implementation(libs.logging.interceptor)
implementation(libs.gson)
implementation(libs.kotlinx.serialization.json)
implementation(libs.snakeyaml)
implementation(libs.kotlinx.collections.immutable)
implementation(libs.ktor.server.core)
implementation(libs.ktor.server.cio)
Expand Down Expand Up @@ -300,12 +301,13 @@ dependencies {
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
androidTestImplementation(libs.androidx.test.core)
androidTestImplementation(libs.androidx.test.rules)
androidTestImplementation(libs.androidx.room.testing)
androidTestImplementation(libs.truth)
androidTestImplementation(libs.mockk)
androidTestImplementation(libs.mockk.android)
androidTestImplementation(libs.worktesting)
androidTestImplementation(platform(libs.androidx.compose.bom))
androidTestImplementation(libs.androidx.ui.test.junit4)
androidTestImplementation(libs.androidx.benchmark.macro.junit4)
androidTestImplementation(libs.androidx.uiautomator)

debugImplementation(platform(libs.androidx.compose.bom))
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package com.lostf1sh.pixelplayeross.data.database

import android.content.Context
import androidx.room.Room
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.test.runTest
import org.junit.After
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith

@RunWith(AndroidJUnit4::class)
class LocalPlaylistDaoTest {

private lateinit var database: PixelPlayerDatabase
private lateinit var playlistDao: LocalPlaylistDao

@Before
fun createDatabase() {
val context = ApplicationProvider.getApplicationContext<Context>()
database = Room.inMemoryDatabaseBuilder(context, PixelPlayerDatabase::class.java)
.allowMainThreadQueries()
.build()
playlistDao = database.localPlaylistDao()
}

@After
fun closeDatabase() {
database.close()
}

@Test
fun repeatedTracksRemainAtEachPlaylistPosition() = runTest {
playlistDao.replacePlaylistSongs(
playlistId = "playlist-1",
songIds = listOf("intro", "chorus", "chorus", "outro"),
)

val storedIds = playlistDao.observePlaylistSongs("playlist-1")
.first()
.map(PlaylistSongEntity::songId)

assertThat(storedIds)
.containsExactly("intro", "chorus", "chorus", "outro")
.inOrder()
}
}
Loading