/* * Copyright 2002-2014 the original author or authors. * * 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. */ package org.springframework.test.context.support; import org.springframework.test.context.TestPropertySource; import org.springframework.util.Assert; /** * {@code MergedTestPropertySources} encapsulates the <em>merged</em> * property sources declared on a test class and all of its superclasses * via {@link TestPropertySource @TestPropertySource}. * * @author Sam Brannen * @since 4.1 * @see TestPropertySource */ class MergedTestPropertySources { private static final String[] EMPTY_STRING_ARRAY = new String[0]; private final String[] locations; private final String[] properties; /** * Create an <em>empty</em> {@code MergedTestPropertySources} instance. */ MergedTestPropertySources() { this(EMPTY_STRING_ARRAY, EMPTY_STRING_ARRAY); } /** * Create a {@code MergedTestPropertySources} instance with the supplied * {@code locations} and {@code properties}. * @param locations the resource locations of properties files; may be * empty but never {@code null} * @param properties the properties in the form of {@code key=value} pairs; * may be empty but never {@code null} */ MergedTestPropertySources(String[] locations, String[] properties) { Assert.notNull(locations, "The locations array must not be null"); Assert.notNull(properties, "The properties array must not be null"); this.locations = locations; this.properties = properties; } /** * Get the resource locations of properties files. * @see TestPropertySource#locations() */ String[] getLocations() { return this.locations; } /** * Get the properties in the form of <em>key-value</em> pairs. * @see TestPropertySource#properties() */ String[] getProperties() { return this.properties; } }