Skip to content

Commit b19bdbe

Browse files
committed
Add another test for generic types where subtypes are implemented
1 parent 824efcb commit b19bdbe

File tree

3 files changed

+55
-0
lines changed

3 files changed

+55
-0
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package org.example.generic;
2+
3+
import io.avaje.inject.Component;
4+
5+
import java.util.Optional;
6+
7+
@Component
8+
public class MzCrudService implements CRUDService<MzObj, Integer> {
9+
10+
@Override
11+
public String iamCrud() {
12+
return "MzCrud";
13+
}
14+
15+
@Override
16+
public Integer create(MzObj bean) {
17+
return 92;
18+
}
19+
20+
@Override
21+
public Optional<MzObj> get(Integer id) {
22+
return Optional.of(new MzObj());
23+
}
24+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package org.example.generic;
2+
3+
import io.avaje.inject.BeanScope;
4+
import org.junit.jupiter.api.Test;
5+
6+
import static org.assertj.core.api.Assertions.assertThat;
7+
import static org.junit.jupiter.api.Assertions.assertNotNull;
8+
9+
class MzCrudServiceTest {
10+
11+
@Test
12+
void test() {
13+
try (BeanScope beanScope = BeanScope.builder().build()) {
14+
MzCrudService crud = beanScope.get(MzCrudService.class);
15+
ReadService<MzObj,Integer> read = beanScope.get(MzCrudService$DI.TYPE_ReadServiceMzObjInteger, null);
16+
CreateService<MzObj,Integer> create = beanScope.get(MzCrudService$DI.TYPE_CreateServiceMzObjInteger, null);
17+
18+
assertNotNull(crud);
19+
assertThat(crud).isSameAs(read);
20+
assertThat(crud).isSameAs(create);
21+
22+
assertThat(crud.iamCrud()).isEqualTo("MzCrud");
23+
assertThat(create.create(new MzObj())).isEqualTo(92);
24+
assertThat(read.get(42)).isNotEmpty();
25+
}
26+
}
27+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package org.example.generic;
2+
3+
public class MzObj {
4+
}

0 commit comments

Comments
 (0)