|
19 | 19 |
|
20 | 20 | package ru.endlesscode.mimic.impl.battlelevels |
21 | 21 |
|
22 | | -import com.nhaarman.mockitokotlin2.* |
| 22 | +import io.mockk.every |
| 23 | +import io.mockk.mockk |
| 24 | +import io.mockk.verify |
23 | 25 | import ru.endlesscode.mimic.BukkitTestBase |
24 | | -import kotlin.test.BeforeTest |
25 | 26 | import kotlin.test.Test |
26 | 27 |
|
27 | 28 | class BattleLevelsLevelSystemTest : BukkitTestBase() { |
28 | 29 |
|
29 | | - private lateinit var battleLevelsApi: BattleLevelsApiWrapper |
| 30 | + private val battleLevelsApi: BattleLevelsApiWrapper = mockk(relaxUnitFun = true) { |
| 31 | + // Our formula exp to next level is static = 10 |
| 32 | + every { getNeededFor(any()) } answers { arg<Int>(0) * 10.0 } |
| 33 | + } |
30 | 34 |
|
31 | 35 | // SUT |
32 | | - private lateinit var levelSystem: BattleLevelsLevelSystem |
33 | | - |
34 | | - @BeforeTest |
35 | | - override fun setUp() { |
36 | | - super.setUp() |
37 | | - battleLevelsApi = mock { |
38 | | - // Our formula exp to next level is static = 10 |
39 | | - on { getNeededFor(any()) } doAnswer { it.getArgument<Int>(0) * 10.0 } |
40 | | - } |
41 | | - levelSystem = BattleLevelsLevelSystem(player, battleLevelsApi) |
42 | | - } |
| 36 | + private val levelSystem: BattleLevelsLevelSystem = BattleLevelsLevelSystem(player, battleLevelsApi) |
43 | 37 |
|
44 | 38 | @Test |
45 | 39 | fun `when set level lower than current - should remove level`() { |
46 | | - // Given |
47 | 40 | set(level = 10) |
48 | | - |
49 | | - // When |
50 | 41 | levelSystem.level = 6 |
51 | 42 |
|
52 | | - // Then |
53 | | - verify(battleLevelsApi).removeLevel(any(), eq(4)) |
| 43 | + verify { battleLevelsApi.removeLevel(any(), eq(4)) } |
54 | 44 | } |
55 | 45 |
|
56 | 46 | @Test |
57 | 47 | fun `when set level higher than current - should add level`() { |
58 | | - // Given |
59 | 48 | set(level = 10) |
60 | | - |
61 | | - // When |
62 | 49 | levelSystem.level = 16 |
63 | 50 |
|
64 | | - // Then |
65 | | - verify(battleLevelsApi).addLevel(any(), eq(6)) |
| 51 | + verify { battleLevelsApi.addLevel(any(), eq(6)) } |
66 | 52 | } |
67 | 53 |
|
68 | 54 | @Test |
69 | 55 | fun `when set level equal to current - should not change level`() { |
70 | | - // Given |
71 | 56 | set(level = 10) |
72 | | - |
73 | | - // When |
74 | 57 | levelSystem.level = 10 |
75 | 58 |
|
76 | | - // Then |
77 | | - verify(battleLevelsApi, never()).removeLevel(any(), any()) |
78 | | - verify(battleLevelsApi, never()).addLevel(any(), any()) |
| 59 | + verify(exactly = 0) { battleLevelsApi.removeLevel(any(), any()) } |
| 60 | + verify(exactly = 0) { battleLevelsApi.addLevel(any(), any()) } |
79 | 61 | } |
80 | 62 |
|
81 | 63 | @Test |
82 | 64 | fun `when set total exp lower than current - should remove score`() { |
83 | | - // Given |
84 | | - set(totalExp = 100.0) |
85 | | - |
86 | | - // When |
| 65 | + set(level = 1, totalExp = 100.0) |
87 | 66 | levelSystem.totalExp = 60.0 |
88 | 67 |
|
89 | | - // Then |
90 | | - verify(battleLevelsApi).removeScore(any(), eq(40.0)) |
| 68 | + verify { battleLevelsApi.removeScore(any(), eq(40.0)) } |
91 | 69 | } |
92 | 70 |
|
93 | 71 | @Test |
94 | 72 | fun `when set total exp higher than current - should add score`() { |
95 | | - // Given |
96 | 73 | set(level = 10, totalExp = 100.0) |
97 | | - |
98 | | - // When |
99 | 74 | levelSystem.totalExp = 160.0 |
100 | 75 |
|
101 | | - // Then |
102 | | - verify(battleLevelsApi).addLevel(any(), eq(6)) |
| 76 | + verify { battleLevelsApi.addLevel(any(), eq(6)) } |
103 | 77 | } |
104 | 78 |
|
105 | 79 | @Test |
106 | 80 | fun `when set total exp equal to current - should not change score`() { |
107 | | - // Given |
108 | 81 | set(totalExp = 100.0) |
109 | | - |
110 | | - // When |
111 | 82 | levelSystem.totalExp = 100.0 |
112 | 83 |
|
113 | | - // Then |
114 | | - verify(battleLevelsApi, never()).removeScore(any(), any()) |
115 | | - verify(battleLevelsApi, never()).addScore(any(), any()) |
| 84 | + verify(exactly = 0) { battleLevelsApi.removeScore(any(), any()) } |
| 85 | + verify(exactly = 0) { battleLevelsApi.addScore(any(), any()) } |
116 | 86 | } |
117 | 87 |
|
118 | 88 | @Test |
119 | 89 | fun `when give exp more than one level - should add level and give extra exp`() { |
120 | | - // Given |
121 | 90 | set(level = 1, totalExp = 16.0) |
122 | | - |
123 | | - // When |
124 | 91 | levelSystem.giveExp(28.0) |
125 | 92 |
|
126 | | - // Then |
127 | | - verify(battleLevelsApi).addLevel(any(), eq(3)) |
128 | | - verify(battleLevelsApi).addScore(any(), eq(4.0)) |
| 93 | + verify { battleLevelsApi.addLevel(any(), eq(3)) } |
| 94 | + verify { battleLevelsApi.addScore(any(), eq(4.0)) } |
129 | 95 | } |
130 | 96 |
|
131 | 97 | @Test |
132 | 98 | fun `when give exp equal to one level - should add level`() { |
133 | | - // Given |
134 | 99 | set(level = 1, totalExp = 16.0) |
135 | | - |
136 | | - // When |
137 | 100 | levelSystem.giveExp(4.0) |
138 | 101 |
|
139 | | - // Then |
140 | | - verify(battleLevelsApi).addLevel(any(), eq(1)) |
141 | | - verify(battleLevelsApi, never()).addScore(any(), any()) |
| 102 | + verify { battleLevelsApi.addLevel(any(), eq(1)) } |
| 103 | + verify(exactly = 0) { battleLevelsApi.addScore(any(), any()) } |
142 | 104 | } |
143 | 105 |
|
144 | 106 | @Test |
145 | 107 | fun `when give exp not more than one level - should add exp`() { |
146 | | - // Given |
147 | 108 | set(level = 1, totalExp = 16.0) |
148 | | - |
149 | | - // When |
150 | 109 | levelSystem.giveExp(3.0) |
151 | 110 |
|
152 | | - // Then |
153 | | - verify(battleLevelsApi).addScore(any(), eq(3.0)) |
154 | | - verify(battleLevelsApi, never()).addLevel(any(), any()) |
| 111 | + verify { battleLevelsApi.addScore(any(), eq(3.0)) } |
| 112 | + verify(exactly = 0) { battleLevelsApi.addLevel(any(), any()) } |
155 | 113 | } |
156 | 114 |
|
157 | 115 | @Test |
158 | 116 | fun `when take exp more than current exp - should take level and give extra exp`() { |
159 | | - // Given |
160 | 117 | set(level = 10, totalExp = 106.0) |
161 | | - |
162 | | - // When |
163 | 118 | levelSystem.takeExp(28.0) |
164 | 119 |
|
165 | | - // Then |
166 | | - verify(battleLevelsApi).removeLevel(any(), eq(3)) |
167 | | - verify(battleLevelsApi).addScore(any(), eq(8.0)) |
168 | | - verify(battleLevelsApi, never()).removeScore(any(), any()) |
| 120 | + verify { battleLevelsApi.removeLevel(any(), eq(3)) } |
| 121 | + verify { battleLevelsApi.addScore(any(), eq(8.0)) } |
| 122 | + verify(exactly = 0) { battleLevelsApi.removeScore(any(), any()) } |
169 | 123 | } |
170 | 124 |
|
171 | 125 | @Test |
172 | 126 | fun `when take exp equal to two levels - should take level and not give extra exp`() { |
173 | | - // Given |
174 | 127 | set(level = 10, totalExp = 106.0) |
175 | | - |
176 | | - // When |
177 | 128 | levelSystem.takeExp(26.0) |
178 | 129 |
|
179 | | - // Then |
180 | | - verify(battleLevelsApi).removeLevel(any(), eq(2)) |
181 | | - verify(battleLevelsApi, never()).addScore(any(), any()) |
182 | | - verify(battleLevelsApi, never()).removeScore(any(), any()) |
| 130 | + verify { battleLevelsApi.removeLevel(any(), eq(2)) } |
| 131 | + verify(exactly = 0) { battleLevelsApi.addScore(any(), any()) } |
| 132 | + verify(exactly = 0) { battleLevelsApi.removeScore(any(), any()) } |
183 | 133 | } |
184 | 134 |
|
185 | 135 | @Test |
186 | 136 | fun `when take exp not more than current exp - should take only exp`() { |
187 | | - // Given |
188 | 137 | set(level = 10, totalExp = 106.0) |
189 | | - |
190 | | - // When |
191 | 138 | levelSystem.takeExp(6.0) |
192 | 139 |
|
193 | | - // Then |
194 | | - verify(battleLevelsApi).removeScore(any(), eq(6.0)) |
195 | | - verify(battleLevelsApi, never()).removeLevel(any(), any()) |
| 140 | + verify { battleLevelsApi.removeScore(any(), eq(6.0)) } |
| 141 | + verify(exactly = 0) { battleLevelsApi.removeLevel(any(), any()) } |
196 | 142 | } |
197 | 143 |
|
198 | 144 | private fun set(level: Int? = null, totalExp: Double? = null) { |
199 | | - if (level != null) whenever(battleLevelsApi.getLevel(any())) doReturn level |
200 | | - if (totalExp != null) whenever(battleLevelsApi.getScore(any())) doReturn totalExp |
| 145 | + if (level != null) every { battleLevelsApi.getLevel(any()) } returns level |
| 146 | + if (totalExp != null) every { battleLevelsApi.getScore(any()) } returns totalExp |
201 | 147 | } |
202 | 148 | } |
0 commit comments