@Test
void build() throws InvocationTargetException, IllegalAccessException {

    builder.withExecute((i, s, l, f) -> {});
    when(dependencyGraph.get(String.class)).thenReturn(dependencyNode1);
    when(dependencyGraph.get(Long.class)).thenReturn(dependencyNode2);
    when(dependencyGraph.get(Float.class)).thenReturn(dependencyNode3);
    final Execution<Integer> e = builder.build(dependencyGraph);
    assertNotNull(e);
    final Execution.ClassMapper classMapper = new Execution.ClassMapper() {
        @Override
        @SuppressWarnings("unchecked")
        public <T> T apply(Class<T> type) {
            switch (type.getSimpleName()) {
                case "Sting":
                    return (T)"Arne";
                case "Long":
                    return (T) (Long) 2L;
                case "Float":
                    return (T) (Float) 10.0f;
            }
            return null;
        }
    };
    assertTrue(e.invoke(1, classMapper));
}