blob: 978e86dc1102af2a0d075810788e5e02021b7488 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010, 2015 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
* Lars Vogel <Lars.Vogel@vogella.com> - Bug 474274
******************************************************************************/
package org.eclipse.e4.core.internal.tests.di;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import javax.inject.Inject;
import javax.inject.Named;
import org.eclipse.e4.core.contexts.ContextInjectionFactory;
import org.eclipse.e4.core.contexts.EclipseContextFactory;
import org.eclipse.e4.core.contexts.IEclipseContext;
import org.junit.Test;
/**
* Checks injection of arrays
*/
public class InjectArraysTest {
static class TestClass {
@Inject @Named("test_array_String")
public String[] stringArray;
@Inject
public Integer[] integerArray;
public int[] intArray;
public char[] charAray;
@Inject
public void set(@Named("test_array_int") int[] intArray, @Named("test_array_char") char[] charAray) {
this.intArray = intArray;
this.charAray = charAray;
}
}
@Test
public void testArrayInjection() {
String[] arrayString = new String[] { "abc", "xyz", "ttt" };
Integer[] arrayInteger = new Integer[] { 5, 6, 7 };
int[] arrayInt = new int[] { 1, 2, 3 };
char[] arrayChar = new char[] { 'a', 'b', 'c' };
IEclipseContext context = EclipseContextFactory.create();
context.set("test_array_String", arrayString);
context.set(Integer[].class, arrayInteger);
context.set("test_array_int", arrayInt);
context.set("test_array_char", arrayChar);
TestClass testClass = ContextInjectionFactory.make(TestClass.class, context);
checkArraysEqual(arrayString, testClass.stringArray);
checkArraysEqual(arrayInteger, testClass.integerArray);
checkArraysEqual(arrayInt, testClass.intArray);
checkArraysEqual(arrayChar, testClass.charAray);
}
private void checkArraysEqual(Object array1, Object array2) {
assertNotNull(array2);
assertEquals(array1, array2);
}
}