Skip to content

Commit 8e6e538

Browse files
committed
refactor tests to use shared SAM and dummy definitions
1 parent 165cc9f commit 8e6e538

File tree

2 files changed

+55
-46
lines changed

2 files changed

+55
-46
lines changed

analyzer/src/test/scala/com/avsystem/commons/analyzer/ImplicitFunctionParamsTest.scala

Lines changed: 37 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -145,67 +145,72 @@ final class ImplicitFunctionParamsTest extends AnyFunSuite with AnalyzerTest {
145145
}
146146

147147
// Define a SAM type (Single Abstract Method) for all SAM type tests
148-
trait IntToString {
149-
def apply(i: Int): String
148+
private val SamDefinition = {
149+
//language=Scala
150+
"""
151+
|trait IntToString {
152+
| def apply(i: Int): String
153+
|}
154+
|""".stripMargin
150155
}
151156

152157
test("regular parameter with SAM type should pass") {
153-
assertNoErrors(
158+
assertNoErrors(SamDefinition +
154159
//language=Scala
155-
"""
156-
|object whatever {
157-
| def goodMethod1(f: IntToString): Unit = ???
158-
|}
160+
"""
161+
|object whatever {
162+
| def goodMethod1(f: IntToString): Unit = ???
163+
|}
159164
""".stripMargin)
160165
}
161166

162167
test("implicit parameter with SAM type should pass") {
163-
assertNoErrors(
168+
assertNoErrors(SamDefinition +
164169
//language=Scala
165-
"""
166-
|object whatever {
167-
| def goodMethod2(implicit f: IntToString): Unit = ???
168-
|}
170+
"""
171+
|object whatever {
172+
| def goodMethod2(implicit f: IntToString): Unit = ???
173+
|}
169174
""".stripMargin)
170175
}
171176

172177
test("implicit parameter with SAM type in second parameter list should pass") {
173-
assertNoErrors(
178+
assertNoErrors(SamDefinition +
174179
//language=Scala
175-
"""
176-
|object whatever {
177-
| def goodMethod3(x: Int)(implicit f: IntToString): Unit = ???
178-
|}
180+
"""
181+
|object whatever {
182+
| def goodMethod3(x: Int)(implicit f: IntToString): Unit = ???
183+
|}
179184
""".stripMargin)
180185
}
181186

182187
test("regular class parameter with SAM type should pass") {
183-
assertNoErrors(
188+
assertNoErrors(SamDefinition +
184189
//language=Scala
185-
"""
186-
|object whatever {
187-
| class GoodClass1(f: IntToString)
188-
|}
190+
"""
191+
|object whatever {
192+
| class GoodClass1(f: IntToString)
193+
|}
189194
""".stripMargin)
190195
}
191196

192197
test("implicit class parameter with SAM type should pass") {
193-
assertNoErrors(
198+
assertNoErrors(SamDefinition +
194199
//language=Scala
195-
"""
196-
|object whatever {
197-
| class GoodClass2(implicit f: IntToString)
198-
|}
200+
"""
201+
|object whatever {
202+
| class GoodClass2(implicit f: IntToString)
203+
|}
199204
""".stripMargin)
200205
}
201206

202207
test("implicit class parameter with SAM type in second parameter list should pass") {
203-
assertNoErrors(
208+
assertNoErrors(SamDefinition +
204209
//language=Scala
205-
"""
206-
|object whatever {
207-
| class GoodClass3(x: Int)(implicit f: IntToString)
208-
|}
210+
"""
211+
|object whatever {
212+
| class GoodClass3(x: Int)(implicit f: IntToString)
213+
|}
209214
""".stripMargin)
210215
}
211216

analyzer/src/test/scala/com/avsystem/commons/analyzer/ImplicitParamDefaultsTest.scala

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,18 @@ package analyzer
44
import org.scalatest.funsuite.AnyFunSuite
55

66
final class ImplicitParamDefaultsTest extends AnyFunSuite with AnalyzerTest {
7-
// Dummy classes for the test
8-
class Scheduler
9-
object Scheduler {
10-
val global = new Scheduler
7+
private val DummyDefinition = {
8+
//language=Scala
9+
"""
10+
|class Scheduler
11+
|object Scheduler {
12+
| val global = new Scheduler
13+
|}
14+
|""".stripMargin
1115
}
1216

1317
test("implicit parameter without default value should pass") {
14-
assertNoErrors(
18+
assertNoErrors(DummyDefinition +
1519
//language=Scala
1620
"""
1721
|object whatever {
@@ -21,7 +25,7 @@ final class ImplicitParamDefaultsTest extends AnyFunSuite with AnalyzerTest {
2125
}
2226

2327
test("regular parameter with default value should pass") {
24-
assertNoErrors(
28+
assertNoErrors(DummyDefinition +
2529
//language=Scala
2630
"""
2731
|object whatever {
@@ -32,7 +36,7 @@ final class ImplicitParamDefaultsTest extends AnyFunSuite with AnalyzerTest {
3236
}
3337

3438
test("implicit parameter with default value should fail") {
35-
assertErrors(1,
39+
assertErrors(1, DummyDefinition +
3640
//language=Scala
3741
"""
3842
|object whatever {
@@ -42,7 +46,7 @@ final class ImplicitParamDefaultsTest extends AnyFunSuite with AnalyzerTest {
4246
}
4347

4448
test("implicit parameter with default value in second parameter list should fail") {
45-
assertErrors(1,
49+
assertErrors(1, DummyDefinition +
4650
//language=Scala
4751
"""
4852
|object whatever {
@@ -52,7 +56,7 @@ final class ImplicitParamDefaultsTest extends AnyFunSuite with AnalyzerTest {
5256
}
5357

5458
test("generic method with implicit parameter with default value should fail") {
55-
assertErrors(1,
59+
assertErrors(1, DummyDefinition +
5660
//language=Scala
5761
"""
5862
|object whatever {
@@ -62,39 +66,39 @@ final class ImplicitParamDefaultsTest extends AnyFunSuite with AnalyzerTest {
6266
}
6367

6468
test("implicit class parameter without default value should pass") {
65-
assertNoErrors(
69+
assertNoErrors(DummyDefinition +
6670
//language=Scala
6771
"""
6872
|class GoodClass1(implicit s: Scheduler)
6973
""".stripMargin)
7074
}
7175

7276
test("regular class parameter with default value should pass") {
73-
assertNoErrors(
77+
assertNoErrors(DummyDefinition +
7478
//language=Scala
7579
"""
7680
|class GoodClass2(s: Scheduler = Scheduler.global)
7781
""".stripMargin)
7882
}
7983

8084
test("implicit class parameter with default value should fail") {
81-
assertErrors(1,
85+
assertErrors(1, DummyDefinition +
8286
//language=Scala
8387
"""
8488
|class BadClass1(implicit s: Scheduler = Scheduler.global)
8589
""".stripMargin)
8690
}
8791

8892
test("implicit class parameter with default value in second parameter list should fail") {
89-
assertErrors(1,
93+
assertErrors(1, DummyDefinition +
9094
//language=Scala
9195
"""
9296
|class BadClass2(sth: Int)(implicit s: Scheduler = Scheduler.global)
9397
""".stripMargin)
9498
}
9599

96100
test("generic class with implicit parameter with default value should fail") {
97-
assertErrors(1,
101+
assertErrors(1, DummyDefinition +
98102
//language=Scala
99103
"""
100104
|class BadClass3[T](x: T)(implicit s: Scheduler = Scheduler.global)

0 commit comments

Comments
 (0)