/* * Copyright (c) 2017 Mockito contributors * This program is made available under the terms of the MIT License. */ package org.mockitousage.bugs.injection; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import java.util.HashMap; import java.util.Map; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.assertSame; @RunWith(MockitoJUnitRunner.class) public class Issue353InjectionMightNotHappenInCertainConfigurationTest { @Mock Map stringString_that_matches_field; @Mock Map mockStringInteger_was_not_injected; @InjectMocks FooService fooService; @Test public void when_identical_types_and_the_correct_mock_name_is_greater_than_the_non_matching_name_then_injection_occurs_only_on_the_named_one() { assertThat("stringString_that_matches_field".compareTo("mockStringInteger_was_not_injected")).isGreaterThanOrEqualTo(1); assertSame(stringString_that_matches_field, fooService.stringString_that_matches_field); assertSame(mockStringInteger_was_not_injected, fooService.stringInteger_field); } public static class FooService { Map stringInteger_field = new HashMap(); Map stringString_that_matches_field = new HashMap(); } }