/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* 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.keycloak.testsuite.arquillian;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.keycloak.testsuite.arquillian.migration.MigrationContext;
import static org.keycloak.testsuite.util.MailServerConfiguration.FROM;
import static org.keycloak.testsuite.util.MailServerConfiguration.HOST;
import static org.keycloak.testsuite.util.MailServerConfiguration.PORT;
/**
*
* @author tkyjovsk
*/
public final class SuiteContext {
private final Set<ContainerInfo> container;
private ContainerInfo authServerInfo;
private final List<ContainerInfo> authServerBackendsInfo = new ArrayList<>();
private ContainerInfo migratedAuthServerInfo;
private final MigrationContext migrationContext = new MigrationContext();
private boolean adminPasswordUpdated;
private final Map<String, String> smtpServer = new HashMap<>();
/**
* True if the testsuite is running in the adapter backward compatibility testing mode,
* i.e. if the tests are running against newer auth server
*/
private static final boolean adapterCompatTesting = Boolean.parseBoolean(System.getProperty("testsuite.adapter.compat.testing"));
public SuiteContext(Set<ContainerInfo> arquillianContainers) {
this.container = arquillianContainers;
this.adminPasswordUpdated = false;
smtpServer.put("from", FROM);
smtpServer.put("host", HOST);
smtpServer.put("port", PORT);
}
public boolean isAdminPasswordUpdated() {
return adminPasswordUpdated;
}
public void setAdminPasswordUpdated(boolean adminPasswordUpdated) {
this.adminPasswordUpdated = adminPasswordUpdated;
}
public Map<String, String> getSmtpServer() {
return smtpServer;
}
public ContainerInfo getAuthServerInfo() {
return authServerInfo;
}
public void setAuthServerInfo(ContainerInfo authServerInfo) {
this.authServerInfo = authServerInfo;
}
public List<ContainerInfo> getAuthServerBackendsInfo() {
return authServerBackendsInfo;
}
public ContainerInfo getMigratedAuthServerInfo() {
return migratedAuthServerInfo;
}
public MigrationContext getMigrationContext() {
return migrationContext;
}
public void setMigratedAuthServerInfo(ContainerInfo migratedAuthServerInfo) {
this.migratedAuthServerInfo = migratedAuthServerInfo;
}
public boolean isAuthServerCluster() {
return !authServerBackendsInfo.isEmpty();
}
public boolean isAuthServerMigrationEnabled() {
return migratedAuthServerInfo != null;
}
public Set<ContainerInfo> getContainers() {
return container;
}
public boolean isAdapterCompatTesting() {
return adapterCompatTesting;
}
@Override
public String toString() {
String containers = "Auth server: " + (isAuthServerCluster() ? "\nFrontend: " : "")
+ authServerInfo.getQualifier() + "\n";
for (ContainerInfo bInfo : getAuthServerBackendsInfo()) {
containers += "Backend: " + bInfo + "\n";
}
if (isAuthServerMigrationEnabled()) {
containers += "Migrated from: " + System.getProperty("migrated.auth.server.version") + "\n";
}
if (isAdapterCompatTesting()) {
containers += "Adapter backward compatibility testing mode!\n";
}
return "SUITE CONTEXT:\n"
+ containers;
}
}