Skip to content

Commit

Permalink
Remove "task" pluralisation and smurf method naming (#921)
Browse files Browse the repository at this point in the history
* Change insert to upsert, and tidy Room methods

* More class renaming

* Fix spotless
  • Loading branch information
dturner committed Mar 21, 2023
1 parent 743942b commit 077b7ae
Show file tree
Hide file tree
Showing 27 changed files with 284 additions and 262 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.MediumTest
import com.example.android.architecture.blueprints.todoapp.HiltTestActivity
import com.example.android.architecture.blueprints.todoapp.R
import com.example.android.architecture.blueprints.todoapp.data.TasksRepository
import com.example.android.architecture.blueprints.todoapp.data.TaskRepository
import com.google.accompanist.appcompattheme.AppCompatTheme
import dagger.hilt.android.testing.HiltAndroidRule
import dagger.hilt.android.testing.HiltAndroidTest
Expand Down Expand Up @@ -62,7 +62,7 @@ class AddEditTaskScreenTest {
private val activity get() = composeTestRule.activity

@Inject
lateinit var repository: TasksRepository
lateinit var repository: TaskRepository

@Before
fun setup() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ import org.junit.runner.RunWith
@ExperimentalCoroutinesApi
@RunWith(AndroidJUnit4::class)
@SmallTest
class TasksDaoTest {
class TaskDaoTest {

// using an in-memory database because the information stored here disappears when the
// process is killed
Expand All @@ -59,11 +59,16 @@ class TasksDaoTest {
@Test
fun insertTaskAndGetById() = runTest {
// GIVEN - insert a task
val task = LocalTask(title = "title", description = "description", id = "id")
database.taskDao().insertTask(task)
val task = LocalTask(
title = "title",
description = "description",
id = "id",
isCompleted = false,
)
database.taskDao().upsert(task)

// WHEN - Get the task by id from the database
val loaded = database.taskDao().getTaskById(task.id)
val loaded = database.taskDao().getById(task.id)

// THEN - The loaded data contains the expected values
assertNotNull(loaded as LocalTask)
Expand All @@ -76,8 +81,13 @@ class TasksDaoTest {
@Test
fun insertTaskReplacesOnConflict() = runTest {
// Given that a task is inserted
val task = LocalTask(title = "title", description = "description", id = "id")
database.taskDao().insertTask(task)
val task = LocalTask(
title = "title",
description = "description",
id = "id",
isCompleted = false,
)
database.taskDao().upsert(task)

// When a task with the same id is inserted
val newTask = LocalTask(
Expand All @@ -86,10 +96,10 @@ class TasksDaoTest {
isCompleted = true,
id = task.id
)
database.taskDao().insertTask(newTask)
database.taskDao().upsert(newTask)

// THEN - The loaded data contains the expected values
val loaded = database.taskDao().getTaskById(task.id)
val loaded = database.taskDao().getById(task.id)
assertEquals(task.id, loaded?.id)
assertEquals("title2", loaded?.title)
assertEquals("description2", loaded?.description)
Expand All @@ -99,11 +109,16 @@ class TasksDaoTest {
@Test
fun insertTaskAndGetTasks() = runTest {
// GIVEN - insert a task
val task = LocalTask(title = "title", description = "description", id = "id")
database.taskDao().insertTask(task)
val task = LocalTask(
title = "title",
description = "description",
id = "id",
isCompleted = false,
)
database.taskDao().upsert(task)

// WHEN - Get tasks from the database
val tasks = database.taskDao().getTasks()
val tasks = database.taskDao().getAll()

// THEN - There is only 1 task in the database, and contains the expected values
assertEquals(1, tasks.size)
Expand All @@ -116,8 +131,14 @@ class TasksDaoTest {
@Test
fun updateTaskAndGetById() = runTest {
// When inserting a task
val originalTask = LocalTask(title = "title", description = "description", id = "id")
database.taskDao().insertTask(originalTask)
val originalTask = LocalTask(
title = "title",
description = "description",
id = "id",
isCompleted = false,
)

database.taskDao().upsert(originalTask)

// When the task is updated
val updatedTask = LocalTask(
Expand All @@ -126,10 +147,10 @@ class TasksDaoTest {
isCompleted = true,
id = originalTask.id
)
database.taskDao().updateTask(updatedTask)
database.taskDao().upsert(updatedTask)

// THEN - The loaded data contains the expected values
val loaded = database.taskDao().getTaskById(originalTask.id)
val loaded = database.taskDao().getById(originalTask.id)
assertEquals(originalTask.id, loaded?.id)
assertEquals("new title", loaded?.title)
assertEquals("new description", loaded?.description)
Expand All @@ -145,13 +166,13 @@ class TasksDaoTest {
id = "id",
isCompleted = true
)
database.taskDao().insertTask(task)
database.taskDao().upsert(task)

// When the task is updated
database.taskDao().updateCompleted(task.id, false)

// THEN - The loaded data contains the expected values
val loaded = database.taskDao().getTaskById(task.id)
val loaded = database.taskDao().getById(task.id)
assertEquals(task.id, loaded?.id)
assertEquals(task.title, loaded?.title)
assertEquals(task.description, loaded?.description)
Expand All @@ -161,48 +182,54 @@ class TasksDaoTest {
@Test
fun deleteTaskByIdAndGettingTasks() = runTest {
// Given a task inserted
val task = LocalTask(title = "title", description = "description", id = "id")
database.taskDao().insertTask(task)
val task = LocalTask(
title = "title",
description = "description",
id = "id",
isCompleted = false,
)
database.taskDao().upsert(task)

// When deleting a task by id
database.taskDao().deleteTaskById(task.id)
database.taskDao().deleteById(task.id)

// THEN - The list is empty
val tasks = database.taskDao().getTasks()
val tasks = database.taskDao().getAll()
assertEquals(true, tasks.isEmpty())
}

@Test
fun deleteTasksAndGettingTasks() = runTest {
// Given a task inserted
database.taskDao().insertTask(
database.taskDao().upsert(
LocalTask(
title = "title",
description = "description",
id = "id"
id = "id",
isCompleted = false,
)
)

// When deleting all tasks
database.taskDao().deleteTasks()
database.taskDao().deleteAll()

// THEN - The list is empty
val tasks = database.taskDao().getTasks()
val tasks = database.taskDao().getAll()
assertEquals(true, tasks.isEmpty())
}

@Test
fun deleteCompletedTasksAndGettingTasks() = runTest {
// Given a completed task inserted
database.taskDao().insertTask(
database.taskDao().upsert(
LocalTask(title = "completed", description = "task", id = "id", isCompleted = true)
)

// When deleting completed tasks
database.taskDao().deleteCompletedTasks()
database.taskDao().deleteCompleted()

// THEN - The list is empty
val tasks = database.taskDao().getTasks()
val tasks = database.taskDao().getAll()
assertEquals(true, tasks.isEmpty())
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.MediumTest
import com.example.android.architecture.blueprints.todoapp.HiltTestActivity
import com.example.android.architecture.blueprints.todoapp.R
import com.example.android.architecture.blueprints.todoapp.data.TasksRepository
import com.example.android.architecture.blueprints.todoapp.data.TaskRepository
import com.google.accompanist.appcompattheme.AppCompatTheme
import dagger.hilt.android.testing.HiltAndroidRule
import dagger.hilt.android.testing.HiltAndroidTest
Expand Down Expand Up @@ -53,7 +53,7 @@ class StatisticsScreenTest {
private val activity get() = composeTestRule.activity

@Inject
lateinit var repository: TasksRepository
lateinit var repository: TaskRepository

@Before
fun setup() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.MediumTest
import com.example.android.architecture.blueprints.todoapp.HiltTestActivity
import com.example.android.architecture.blueprints.todoapp.data.Task
import com.example.android.architecture.blueprints.todoapp.data.TasksRepository
import com.example.android.architecture.blueprints.todoapp.data.TaskRepository
import com.google.accompanist.appcompattheme.AppCompatTheme
import dagger.hilt.android.testing.HiltAndroidRule
import dagger.hilt.android.testing.HiltAndroidTest
Expand Down Expand Up @@ -56,7 +56,7 @@ class TaskDetailScreenTest {
val composeTestRule = createAndroidComposeRule<HiltTestActivity>()

@Inject
lateinit var repository: TasksRepository
lateinit var repository: TaskRepository

@Before
fun setup() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ import androidx.test.filters.LargeTest
import com.example.android.architecture.blueprints.todoapp.HiltTestActivity
import com.example.android.architecture.blueprints.todoapp.R
import com.example.android.architecture.blueprints.todoapp.TodoNavGraph
import com.example.android.architecture.blueprints.todoapp.data.TasksRepository
import com.example.android.architecture.blueprints.todoapp.data.TaskRepository
import com.google.accompanist.appcompattheme.AppCompatTheme
import dagger.hilt.android.testing.HiltAndroidRule
import dagger.hilt.android.testing.HiltAndroidTest
Expand Down Expand Up @@ -62,7 +62,7 @@ class AppNavigationTest {
private val activity get() = composeTestRule.activity

@Inject
lateinit var tasksRepository: TasksRepository
lateinit var taskRepository: TaskRepository

@Before
fun init() {
Expand Down Expand Up @@ -130,7 +130,7 @@ class AppNavigationTest {
@Test
fun taskDetailScreen_doubleUIBackButton() = runTest {
val taskName = "UI <- button"
tasksRepository.createTask(taskName, "Description")
taskRepository.createTask(taskName, "Description")

setContent()

Expand Down Expand Up @@ -159,7 +159,7 @@ class AppNavigationTest {
@Test
fun taskDetailScreen_doubleBackButton() = runTest {
val taskName = "Back button"
tasksRepository.createTask(taskName, "Description")
taskRepository.createTask(taskName, "Description")

setContent()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.MediumTest
import com.example.android.architecture.blueprints.todoapp.HiltTestActivity
import com.example.android.architecture.blueprints.todoapp.R
import com.example.android.architecture.blueprints.todoapp.data.TasksRepository
import com.example.android.architecture.blueprints.todoapp.data.TaskRepository
import com.google.accompanist.appcompattheme.AppCompatTheme
import dagger.hilt.android.testing.HiltAndroidRule
import dagger.hilt.android.testing.HiltAndroidTest
Expand Down Expand Up @@ -61,7 +61,7 @@ class TasksScreenTest {
private val activity get() = composeTestRule.activity

@Inject
lateinit var repository: TasksRepository
lateinit var repository: TaskRepository

@Before
fun init() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ import androidx.test.filters.LargeTest
import com.example.android.architecture.blueprints.todoapp.HiltTestActivity
import com.example.android.architecture.blueprints.todoapp.R
import com.example.android.architecture.blueprints.todoapp.TodoNavGraph
import com.example.android.architecture.blueprints.todoapp.data.TasksRepository
import com.example.android.architecture.blueprints.todoapp.data.TaskRepository
import com.google.accompanist.appcompattheme.AppCompatTheme
import dagger.hilt.android.testing.HiltAndroidRule
import dagger.hilt.android.testing.HiltAndroidTest
Expand Down Expand Up @@ -68,7 +68,7 @@ class TasksTest {
private val activity get() = composeTestRule.activity

@Inject
lateinit var repository: TasksRepository
lateinit var repository: TaskRepository

@Before
fun init() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.example.android.architecture.blueprints.todoapp.R
import com.example.android.architecture.blueprints.todoapp.TodoDestinationsArgs
import com.example.android.architecture.blueprints.todoapp.data.TasksRepository
import com.example.android.architecture.blueprints.todoapp.data.TaskRepository
import dagger.hilt.android.lifecycle.HiltViewModel
import javax.inject.Inject
import kotlinx.coroutines.flow.MutableStateFlow
Expand All @@ -47,7 +47,7 @@ data class AddEditTaskUiState(
*/
@HiltViewModel
class AddEditTaskViewModel @Inject constructor(
private val tasksRepository: TasksRepository,
private val taskRepository: TaskRepository,
savedStateHandle: SavedStateHandle
) : ViewModel() {

Expand Down Expand Up @@ -100,7 +100,7 @@ class AddEditTaskViewModel @Inject constructor(
}

private fun createNewTask() = viewModelScope.launch {
tasksRepository.createTask(uiState.value.title, uiState.value.description)
taskRepository.createTask(uiState.value.title, uiState.value.description)
_uiState.update {
it.copy(isTaskSaved = true)
}
Expand All @@ -111,7 +111,7 @@ class AddEditTaskViewModel @Inject constructor(
throw RuntimeException("updateTask() was called but task is new.")
}
viewModelScope.launch {
tasksRepository.updateTask(
taskRepository.updateTask(
taskId,
title = uiState.value.title,
description = uiState.value.description,
Expand All @@ -127,7 +127,7 @@ class AddEditTaskViewModel @Inject constructor(
it.copy(isLoading = true)
}
viewModelScope.launch {
tasksRepository.getTask(taskId).let { task ->
taskRepository.getTask(taskId).let { task ->
if (task != null) {
_uiState.update {
it.copy(
Expand Down

0 comments on commit 077b7ae

Please sign in to comment.