package com.google.gwt.inject.rebind.resolution;
import com.google.gwt.inject.client.AsyncProvider;
import com.google.gwt.inject.rebind.binding.Dependency;
import com.google.inject.Key;
import com.google.inject.Provider;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* Utilities for creating test input/output for the unit tests for pieces of resolution.
*/
class TestUtils {
private TestUtils() {}
static Map<Key<?>, Set<Dependency>> originDependencies(Dependency... dependencies) {
Map<Key<?>, Set<Dependency>> rootDependencies = new HashMap<Key<?>, Set<Dependency>>();
for (Dependency dependency : dependencies) {
Set<Dependency> dependencySet = rootDependencies.get(dependency.getTarget());
if (dependencySet == null) {
dependencySet = new LinkedHashSet<Dependency>();
rootDependencies.put(dependency.getTarget(), dependencySet);
}
dependencySet.add(dependency);
}
return rootDependencies;
}
static List<Dependency> dependencyList(Dependency... dependencies) {
ArrayList<Dependency> list = new ArrayList<Dependency>();
Collections.addAll(list, dependencies);
return list;
}
private static class Foo {}
private static class FooImpl {}
private static class Bar {}
private static class Baz {}
public static Key<Foo> foo() {
return Key.get(Foo.class);
}
public static Key<FooImpl> fooImpl() {
return Key.get(FooImpl.class);
}
public static Key<Bar> bar() {
return Key.get(Bar.class);
}
public static Key<Baz> baz() {
return Key.get(Baz.class);
}
public static Key<AsyncProvider<Foo>> asyncProviderFoo() {
return new Key<AsyncProvider<Foo>>() {};
}
public static Key<Provider<Foo>> providerFoo() {
return new Key<Provider<Foo>>() {};
}
public static Key<Provider<Bar>> providerBar() {
return new Key<Provider<Bar>>() {};
}
public static Key<Provider<Baz>> providerBaz() {
return new Key<Provider<Baz>>() {};
}
}