diff --git a/data/build.gradle.kts b/data/build.gradle.kts index d7aab12..ca92b3a 100644 --- a/data/build.gradle.kts +++ b/data/build.gradle.kts @@ -31,6 +31,7 @@ android { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } + compileSdkMinor = 0 } kotlin { diff --git a/domain/src/main/java/com/itlab/domain/usecase/CreateFolderUseCase.kt b/domain/src/main/java/com/itlab/domain/usecase/CreateFolderUseCase.kt index b0d06dc..e4d68a7 100644 --- a/domain/src/main/java/com/itlab/domain/usecase/CreateFolderUseCase.kt +++ b/domain/src/main/java/com/itlab/domain/usecase/CreateFolderUseCase.kt @@ -3,13 +3,19 @@ package com.itlab.domain.usecase import com.itlab.domain.model.NoteFolder import com.itlab.domain.repository.NoteFolderRepository import kotlinx.datetime.Clock +import java.util.UUID class CreateFolderUseCase( private val repo: NoteFolderRepository, ) { suspend operator fun invoke(folder: NoteFolder): String { - // discuss - val folder = folder.copy(createdAt = Clock.System.now()) + val now = Clock.System.now() + val folder = + folder.copy( + id = UUID.randomUUID().toString(), + createdAt = now, + updatedAt = now, + ) return repo.createFolder(folder) } } diff --git a/domain/src/main/java/com/itlab/domain/usecase/CreateNoteUseCase.kt b/domain/src/main/java/com/itlab/domain/usecase/CreateNoteUseCase.kt index fdc390a..ac3cc73 100644 --- a/domain/src/main/java/com/itlab/domain/usecase/CreateNoteUseCase.kt +++ b/domain/src/main/java/com/itlab/domain/usecase/CreateNoteUseCase.kt @@ -3,12 +3,20 @@ package com.itlab.domain.usecase import com.itlab.domain.model.Note import com.itlab.domain.repository.NotesRepository import kotlinx.datetime.Clock +import java.util.UUID class CreateNoteUseCase( private val repo: NotesRepository, ) { suspend operator fun invoke(note: Note): String { - val note = note.copy(createdAt = Clock.System.now()) + val now = Clock.System.now() + + val note = + note.copy( + id = UUID.randomUUID().toString(), + createdAt = now, + updatedAt = now, + ) return repo.createNote(note) } } diff --git a/domain/src/test/java/com/itlab/domain/FolderUseCasesTest.kt b/domain/src/test/java/com/itlab/domain/FolderUseCasesTest.kt index fbe465b..e66038c 100644 --- a/domain/src/test/java/com/itlab/domain/FolderUseCasesTest.kt +++ b/domain/src/test/java/com/itlab/domain/FolderUseCasesTest.kt @@ -58,11 +58,11 @@ class FolderUseCasesTest { val create = CreateFolderUseCase(repo) val get = GetFolderUseCase(repo) - val folder = NoteFolder(id = "1", name = "Test") + val folder = NoteFolder(name = "Test") - create(folder) + val id = create(folder) - val result = get("1") + val result = get(id) assertEquals("Test", result?.name) } @@ -76,13 +76,16 @@ class FolderUseCasesTest { val update = UpdateFolderUseCase(repo) val get = GetFolderUseCase(repo) - val folder = NoteFolder(id = "1", name = "Old") - create(folder) + val folder = NoteFolder(name = "Old") - val updated = folder.copy(name = "New") + val id = create(folder) + + val created = get(id)!! + + val updated = created.copy(name = "New") update(updated) - val result = get("1") + val result = get(id) assertEquals("New", result?.name) } @@ -96,12 +99,13 @@ class FolderUseCasesTest { val delete = DeleteFolderUseCase(repo) val get = GetFolderUseCase(repo) - val folder = NoteFolder(id = "1", name = "Test") - create(folder) + val folder = NoteFolder(name = "Test") + + val id = create(folder) - delete("1") + delete(id) - val result = get("1") + val result = get(id) assertNull(result) } @@ -113,7 +117,7 @@ class FolderUseCasesTest { val create = CreateFolderUseCase(repo) val observe = ObserveFoldersUseCase(repo) - create(NoteFolder(id = "1", name = "A")) + create(NoteFolder(name = "A")) val list = observe().first() diff --git a/domain/src/test/java/com/itlab/domain/NoteUseCasesTest.kt b/domain/src/test/java/com/itlab/domain/NoteUseCasesTest.kt index be3d572..5cc745a 100644 --- a/domain/src/test/java/com/itlab/domain/NoteUseCasesTest.kt +++ b/domain/src/test/java/com/itlab/domain/NoteUseCasesTest.kt @@ -77,19 +77,21 @@ class NoteUseCasesTest { val delete = DeleteNoteUseCase(repo) val get = GetNoteUseCase(repo) - val note = Note(id = "n1", title = "A") + val note = Note(title = "A") - create(note) + val id = create(note) - val updated = note.copy(title = "B") + val created = get(id)!! + + val updated = created.copy(title = "B") update(updated) - val result = get("n1") + val result = get(id) assertEquals("B", result?.title) - delete("n1") + delete(id) - val result2 = get("n1") + val result2 = get(id) assertNull(result2) } @@ -105,12 +107,13 @@ class NoteUseCasesTest { val folder = NoteFolder(id = "f1", name = "Folder") folderRepo.createFolder(folder) - val note = Note(id = "n1", title = "Note") - createNote(note) + val note = Note(title = "Note") + + val noteId = createNote(note) - move("f1", "n1") + move("f1", noteId) - val updated = notesRepo.getNoteById("n1") + val updated = notesRepo.getNoteById(noteId) assertEquals("f1", updated?.folderId) } @@ -122,8 +125,7 @@ class NoteUseCasesTest { val observe = ObserveNotesUseCase(repo) val create = CreateNoteUseCase(repo) - create(Note(id = "n1", title = "Test")) - + create(Note(title = "Test")) val list = observe().first() assertEquals(1, list.size)