Skip to content

Commit f509b47

Browse files
committed
add circular detection tests
1 parent 0b8a4d3 commit f509b47

File tree

3 files changed

+54
-0
lines changed

3 files changed

+54
-0
lines changed
+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package dev.keva.ioc.circular;
2+
3+
import dev.keva.ioc.KevaIoC;
4+
import dev.keva.ioc.annotation.ComponentScan;
5+
import org.junit.jupiter.api.Test;
6+
7+
import static org.junit.jupiter.api.Assertions.assertThrows;
8+
9+
@ComponentScan("dev.keva.ioc.circular")
10+
public class CircularTest {
11+
12+
@Test
13+
void testCircular() {
14+
assertThrows(dev.keva.ioc.exception.IoCException.class, () -> {
15+
KevaIoC kevaIoC = KevaIoC.initBeans(CircularTest.class);
16+
});
17+
}
18+
}

Diff for: src/test/java/dev/keva/ioc/circular/ClassA.java

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package dev.keva.ioc.circular;
2+
3+
import dev.keva.ioc.annotation.Autowired;
4+
import dev.keva.ioc.annotation.Component;
5+
6+
@Component
7+
public class ClassA {
8+
private final ClassB classB;
9+
10+
@Autowired
11+
public ClassA(ClassB classB) {
12+
this.classB = classB;
13+
}
14+
15+
public void methodA() {
16+
classB.methodB();
17+
}
18+
}

Diff for: src/test/java/dev/keva/ioc/circular/ClassB.java

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package dev.keva.ioc.circular;
2+
3+
import dev.keva.ioc.annotation.Autowired;
4+
import dev.keva.ioc.annotation.Component;
5+
6+
@Component
7+
public class ClassB {
8+
private final ClassA classA;
9+
10+
@Autowired
11+
public ClassB(ClassA classA) {
12+
this.classA = classA;
13+
}
14+
15+
public void methodB() {
16+
classA.methodA();
17+
}
18+
}

0 commit comments

Comments
 (0)