Consider the following piece of code:
final Foo foo = context.mock(Foo.class);
context.checking(new Expectations() {{
one(foo).someMethod(with(aNonNull(List.class)));
}});
I’m trying to suggest that someMethod is invoked with a non-null argument of type List<Bar>. However, I can’t figure out the correct syntax to specify that the list contains objects of type Bar. The following simplistic attempt is not valid code:
final Foo foo = context.mock(Foo.class);
context.checking(new Expectations() {{
one(foo).someMethod(with(aNonNull(List<Bar>.class)));
}});
Is there a correct way to do this or am I forced to add @SuppressWarnings("unchecked") to my test method?
I appreciate this is not strictly a JMock-specific question, but I thought I would tag it as such to attract those people who have possibly encountered this problem in the past.
Generics informations are erased at runtime [JB]Effective Java SE p.l14.
So you have to check this an other way.
I found this method to check the type of all element of the list :