/*
* #%L
* Gravia :: Resolver
* %%
* Copyright (C) 2010 - 2014 JBoss by Red Hat
* %%
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* #L%
*/
package org.jboss.test.gravia.resolver;
import static org.jboss.gravia.resolver.spi.ResolverLogger.LOGGER;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.jboss.gravia.resolver.DefaultEnvironment;
import org.jboss.gravia.resolver.DefaultResolveContext;
import org.jboss.gravia.resolver.DefaultResolver;
import org.jboss.gravia.resolver.Environment;
import org.jboss.gravia.resolver.ResolutionException;
import org.jboss.gravia.resolver.ResolveContext;
import org.jboss.gravia.resolver.Resolver;
import org.jboss.gravia.resource.Resource;
import org.jboss.gravia.resource.ResourceStore;
import org.jboss.gravia.runtime.Wire;
import org.jboss.gravia.runtime.Wiring;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.rules.TestName;
/**
* The abstract resolver test.
*
* @author thomas.diesler@jboss.com
* @since 31-May-2010
*/
public abstract class AbstractResolverTest {
@Rule public TestName testName = new TestName();
Resolver resolver;
Environment environment;
@Before
public void setUp() throws Exception {
LOGGER.debug("Start: {}.{}", getClass().getSimpleName(), testName.getMethodName());
resolver = new DefaultResolver();
environment = new DefaultEnvironment("testStore");
}
@After
public void tearDown() throws Exception {
LOGGER.debug("End: {}.{}", getClass().getSimpleName(), testName.getMethodName());
}
ResourceStore installResources(Resource... resources) {
for (Resource res : resources) {
environment.addResource(res);
}
return environment;
}
ResolveContext getResolveContext(List<Resource> mandatory, List<Resource> optional) {
Set<Resource> manres = mandatory != null ? new HashSet<Resource>(mandatory) : null;
Set<Resource> optres = optional != null ? new HashSet<Resource>(optional) : null;
return new DefaultResolveContext(environment, manres, optres);
}
Map<Resource, List<Wire>> resolve(ResolveContext context) throws ResolutionException {
return resolver.resolve(context);
}
Map<Resource, List<Wire>> resolveAndApply(ResolveContext context) throws ResolutionException {
return resolver.resolveAndApply(context);
}
Wiring getWiring(Resource resource) {
return environment.getWirings().get(resource);
}
}