package org.testory.plumbing.inject;
import static org.junit.Assert.assertArrayEquals;
import static org.testory.plumbing.inject.ArrayMaker.singletonArray;
import org.junit.Before;
import org.junit.Test;
import org.testory.plumbing.Maker;
public class TestArrayMaker {
private String name;
private Maker maker;
private Object[] made;
private String element;
@Before
public void before() {
name = "name";
element = "name";
}
@Test
public void creates_singleton_array() {
maker = singletonArray(makerOf(element));
made = maker.make(String[].class, name);
assertArrayEquals(new String[] { element }, made);
}
@Test
public void creates_deep_singleton_array() {
maker = singletonArray(makerOf(element));
made = maker.make(String[][].class, name);
assertArrayEquals(new String[][] { { element } }, made);
}
private static Maker makerOf(final Object element) {
return new Maker() {
public <T> T make(Class<T> type, String name) {
return (T) element;
}
};
}
}