Thinking about it again: Also verifications can make sense in order
to check if a config attribute was (or was not) requested by a
certain piece of code - e.g. sometimes the config object is stored
as is as state, then you might check if a method doThis() calls
config.configForThis()

On 2020-04-08 12:04, Georg Henzler wrote:
True, that's another option but there is no auto-complete for 'myproperty'
and the code is more verbose than just using

@Mock
MyAnnotation annotation

...

when(annotation.myproperty()).thenReturn("myvalue")
// while all the other default values are automatically returned
// (that's the part that is not happening today)


So strictly speaking this is probably not a Mock (because you would
not verify calls against it), but from a usage point of view it's
totally natural to write

@Mock
MyConfig config
@Mock
BundleContext bundleContext

and then use those with a testActivate() method.

-Georg


On 2020-04-08 11:52, Konrad Windszus wrote:
Why not using the converter instead? Do you really want to verify
interactions with the annotations?

Usually I use

Converter c = Converters.standardConverter();
Map<String, String> map = new HashMap<>();
map.put("myproperty", "myvalue");
MyAnnotation annotation = c.convert(map).to(MyAnnotation.class);

Konrad


On 8. Apr 2020, at 11:40, Georg Henzler <ghenz...@apache.org> wrote:

Hi all,

if you are interested to make @Mock work better with Metatype config
annotations, feel free to join (and support) the discussion in [1].

Best Regards
Georg

[1] https://github.com/mockito/mockito/issues/1900

Reply via email to