// Copyright © 2015 HSL <https://www.hsl.fi> // This program is dual-licensed under the EUPL v1.2 and AGPLv3 licenses. package fi.hsl.parkandride; import static java.util.Arrays.asList; import static org.assertj.core.util.Strings.isNullOrEmpty; import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import org.springframework.test.context.ActiveProfilesResolver; import com.google.common.collect.Lists; public abstract class ActiveProfileAppender implements ActiveProfilesResolver { private final Set<String> profilesToAppend; public ActiveProfileAppender(String... profilesToAppend) { this.profilesToAppend = new LinkedHashSet<>(Arrays.asList(profilesToAppend)); } @Override public String[] resolve(Class<?> testClass) { Set<String> profiles = currentActiveProfiles(); profiles.addAll(profilesToAppend); return profiles.toArray(new String[profiles.size()]); } private Set<String> currentActiveProfiles() { String springProfilesActive = System.getProperty("spring.profiles.active"); if (isNullOrEmpty(springProfilesActive)) { springProfilesActive = System.getenv("SPRING_PROFILES_ACTIVE"); } Set<String> profiles = new LinkedHashSet<>(); if (!isNullOrEmpty(springProfilesActive)) { profiles.addAll(asList(springProfilesActive.split(","))); } return profiles; } }