Skip to content

Commit e259d63

Browse files
committed
add more tests
1 parent 4f836b1 commit e259d63

File tree

1 file changed

+72
-1
lines changed

1 file changed

+72
-1
lines changed

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

Lines changed: 72 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,24 @@ import org.scalatest.funsuite.AnyFunSuite
66
final class ThrownExceptionNotInFunctionTest extends AnyFunSuite with AnalyzerTest {
77
settings.pluginOptions.value ++= List("AVSystemAnalyzer:-discardedMonixTask")
88

9+
10+
test("Testing simple methods") {
11+
assertErrors(1,
12+
//language=Scala
13+
"""
14+
|object whatever {
15+
| def ex: Exception = ???
16+
|
17+
| def f0(x1: Int => Int) = ???
18+
|
19+
| //not ok
20+
| f0(throw ex)
21+
|
22+
| //ok
23+
| f0(identity)
24+
|}""".stripMargin)
25+
}
26+
927
Seq(
1028
("Option[_]", "map"),
1129
("Option[_]", "flatMap"),
@@ -26,7 +44,7 @@ final class ThrownExceptionNotInFunctionTest extends AnyFunSuite with AnalyzerTe
2644
("String => Int", "compose"),
2745
("Seq[_]", "foreach"),
2846
).foreach { case (tpe, function) =>
29-
test(s"Testing $function of $tpe") {
47+
test(s"Testing method $function of $tpe") {
3048
assertErrors(10,
3149
//language=Scala
3250
s"""
@@ -79,4 +97,57 @@ final class ThrownExceptionNotInFunctionTest extends AnyFunSuite with AnalyzerTe
7997
)
8098
}
8199
}
100+
101+
test("Testing multiple arguments") {
102+
assertErrors(10,
103+
//language=Scala
104+
"""
105+
|object whatever {
106+
| def ex: Exception = ???
107+
|
108+
| def f1(x1: Int => Int, x2: String => String) = ???
109+
| def f2(x1: Int => Int)(x2: String => String) = ???
110+
| def f3(x1: Int => Int)(x2: Int)(x3: String => String) = ???
111+
| def f4(x1: Int, x2: Int, x3: String => String) = ???
112+
|
113+
| //not ok
114+
| f1(throw ex, throw ex)
115+
| f1(identity, throw ex)
116+
| f1(throw ex, identity)
117+
|
118+
| f2(throw ex)(throw ex)
119+
| f2(identity)(throw ex)
120+
| f2(throw ex)(identity)
121+
|
122+
| f3(throw ex)(42)(throw ex)
123+
| f3(throw ex)(42)(identity)
124+
| f3(identity)(42)(throw ex)
125+
|
126+
| f4(42, 42, throw ex)
127+
|
128+
| //ok
129+
| f1(identity, identity)
130+
| f2(identity)(identity)
131+
| f3(identity)(42)(identity)
132+
| f4(42, 42, identity)
133+
|}""".stripMargin
134+
)
135+
}
136+
137+
test("Testing constructor invocation") {
138+
assertErrors(1,
139+
//language=Scala
140+
s"""
141+
|object whatever {
142+
| def ex: Exception = ???
143+
|
144+
| class A(f: String => Int)
145+
|
146+
| new A(throw ex)
147+
|}
148+
|""".stripMargin
149+
)
150+
}
151+
152+
82153
}

0 commit comments

Comments
 (0)