/* * Hibernate Search, full-text search for your domain model * * License: GNU Lesser General Public License (LGPL), version 2.1 or later * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate.search.test.util; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; /** * Use this custom TestConfiguration to create a DefaultTestResourceManager when inheritance * of our base test classes is not pratical. * * @author Sanne Grinovero * @since 5.3 */ public class ImmutableTestConfiguration implements TestConfiguration { private final Set<String> tenantIds; private final ArrayList<Class<?>> annotatedClasses; private final Map<String, Object> settings; public ImmutableTestConfiguration(Map<String, Object> settings, Class<?>[] annotatedClasses) { this( settings, annotatedClasses, Collections.<String>emptySet() ); } public ImmutableTestConfiguration(Map<String, Object> settings, Class<?>[] annotatedClasses, Set<String> tenantIds) { this.settings = settings == Collections.EMPTY_MAP ? settings : new HashMap<String, Object>( settings ); this.tenantIds = tenantIds == Collections.EMPTY_SET ? tenantIds : Collections.unmodifiableSet( new HashSet<String>( tenantIds ) ); this.annotatedClasses = new ArrayList<>( annotatedClasses.length ); Collections.addAll( this.annotatedClasses, annotatedClasses ); } @Override public void configure(Map<String, Object> settings) { settings.putAll( this.settings ); } @Override public Set<String> multiTenantIds() { return tenantIds; } @Override public Class<?>[] getAnnotatedClasses() { return annotatedClasses.toArray( new Class<?>[annotatedClasses.size()] ); } }