From eebc507bbc0a2e3ab0fbcce71c197fa4bc87a8fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Abel=20Garci=CC=81a=20de=20Prada?= Date: Thu, 20 May 2021 13:44:17 +0200 Subject: [PATCH] Add rename use case test --- .../files/usecases/RenameFileUseCaseTest.kt | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 owncloudDomain/src/test/java/com/owncloud/android/domain/files/usecases/RenameFileUseCaseTest.kt diff --git a/owncloudDomain/src/test/java/com/owncloud/android/domain/files/usecases/RenameFileUseCaseTest.kt b/owncloudDomain/src/test/java/com/owncloud/android/domain/files/usecases/RenameFileUseCaseTest.kt new file mode 100644 index 00000000000..ad42daf5b33 --- /dev/null +++ b/owncloudDomain/src/test/java/com/owncloud/android/domain/files/usecases/RenameFileUseCaseTest.kt @@ -0,0 +1,60 @@ +/** + * ownCloud Android client application + * + * @author Abel GarcĂ­a de Prada + * Copyright (C) 2021 ownCloud GmbH. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.owncloud.android.domain.files.usecases + +import com.owncloud.android.domain.exceptions.UnauthorizedException +import com.owncloud.android.domain.files.FileRepository +import com.owncloud.android.testutil.OC_FILE +import com.owncloud.android.testutil.OC_FOLDER +import io.mockk.every +import io.mockk.spyk +import io.mockk.verify +import org.junit.Assert.assertEquals +import org.junit.Assert.assertTrue +import org.junit.Test + +class RenameFileUseCaseTest { + private val repository: FileRepository = spyk() + private val useCase = RenameFileUseCase(repository) + private val useCaseParams = RenameFileUseCase.Params(OC_FILE, "Video.mp4") + + @Test + fun `rename file - ok`() { + every { repository.renameFile(any(), any()) } returns Unit + + val useCaseResult = useCase.execute(useCaseParams) + + assertTrue(useCaseResult.isSuccess) + assertEquals(Unit, useCaseResult.getDataOrNull()) + + verify(exactly = 1) { repository.renameFile(any(), useCaseParams.newName) } + } + + @Test + fun `remove file - ko - other exception`() { + every { repository.renameFile(any(), any()) } throws UnauthorizedException() + + val useCaseResult = useCase.execute(useCaseParams) + + assertTrue(useCaseResult.isError) + assertTrue(useCaseResult.getThrowableOrNull() is UnauthorizedException) + + verify(exactly = 1) { repository.renameFile(any(), any()) } + } +}