|
1 | 1 | package com.mapk.core |
2 | 2 |
|
3 | 3 | import com.mapk.annotations.KParameterAlias |
| 4 | +import com.mapk.annotations.KUseDefaultArgument |
4 | 5 | import io.mockk.every |
5 | 6 | import io.mockk.mockk |
| 7 | +import java.lang.IllegalArgumentException |
6 | 8 | import kotlin.reflect.KParameter |
7 | 9 | import org.junit.jupiter.api.Assertions.assertEquals |
| 10 | +import org.junit.jupiter.api.Assertions.assertFalse |
| 11 | +import org.junit.jupiter.api.Assertions.assertTrue |
8 | 12 | import org.junit.jupiter.api.BeforeEach |
9 | 13 | import org.junit.jupiter.api.DisplayName |
10 | 14 | import org.junit.jupiter.api.Nested |
11 | 15 | import org.junit.jupiter.api.Test |
| 16 | +import org.junit.jupiter.api.assertThrows |
12 | 17 |
|
13 | 18 | @DisplayName("関数類のテスト") |
14 | 19 | class FunctionsTest { |
@@ -45,4 +50,31 @@ class FunctionsTest { |
45 | 50 | assertEquals(aliasedName, parameter.getAliasOrName()) |
46 | 51 | } |
47 | 52 | } |
| 53 | + |
| 54 | + @Nested |
| 55 | + @DisplayName("デフォルト引数を用いるかの判定関数のテスト") |
| 56 | + inner class IsUseDefaultArgumentTest { |
| 57 | + @Test |
| 58 | + @DisplayName("デフォルト引数を用いない場合") |
| 59 | + fun noDefaultArgument() { |
| 60 | + every { parameter.annotations } returns emptyList() |
| 61 | + assertFalse(parameter.isUseDefaultArgument()) |
| 62 | + } |
| 63 | + |
| 64 | + @Test |
| 65 | + @DisplayName("デフォルト引数を用いる指定が有るが、実際はデフォルト引数が設定されていない場合") |
| 66 | + fun isIncorrect() { |
| 67 | + every { parameter.annotations } returns listOf(mockk<KUseDefaultArgument>()) |
| 68 | + every { parameter.isOptional } returns false |
| 69 | + assertThrows<IllegalArgumentException> { parameter.isUseDefaultArgument() } |
| 70 | + } |
| 71 | + |
| 72 | + @Test |
| 73 | + @DisplayName("正常入力") |
| 74 | + fun isCorrect() { |
| 75 | + every { parameter.annotations } returns listOf(mockk<KUseDefaultArgument>()) |
| 76 | + every { parameter.isOptional } returns true |
| 77 | + assertTrue(parameter.isUseDefaultArgument()) |
| 78 | + } |
| 79 | + } |
48 | 80 | } |
0 commit comments