/* * Copyright (c) 2006 Rogério Liesenfeld * This file is subject to the terms of the MIT license (see LICENSE.txt). */ package mockit; import java.util.*; import javax.inject.*; import org.junit.*; import static org.junit.Assert.*; public final class TestedFieldExtractionTest { static class Dependency {} static class TestedClassWithNamedFields { @Inject @Named("first") Dependency dep1; @Inject @Named("second") Dependency dep2; } @Tested(fullyInitialized = true) TestedClassWithNamedFields tested1; @Tested Dependency first; @Tested Dependency second; @Test public void extractMultipleInjectedFieldsOfSameTypeIntoSeparateTestedFields() { assertNotNull(tested1.dep1); assertNotNull(tested1.dep2); assertNotSame(tested1.dep1, tested1.dep2); assertSame(tested1.dep1, first); assertSame(tested1.dep2, second); } static class TestedClassWithInitializedFieldsOfVariousTypes { final String name = "test"; int number = 123; @Inject @Named("test") final List<String> names = new ArrayList<String>(); Map<Integer, String> numbersAndNames = new HashMap<Integer, String>(); } @Tested TestedClassWithInitializedFieldsOfVariousTypes tested2; @Tested String name; @Tested List<String> test; @Tested Map<Integer, String> numbersAndNames; @Tested int number; @Test public void extractFieldsInitializedByConstructorOfTestedClass() { assertEquals(tested2.name, name); assertEquals(tested2.number, number); assertSame(tested2.names, test); assertSame(tested2.numbersAndNames, numbersAndNames); } }