blob: 18dfc05414f31ff1c8ad53d7aab0df2d14e01606 [file] [log] [blame]
// Copyright 2009 The Bazel Authors. All Rights Reserved.
//
// 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 com.google.testing.junit.runner.util;
import com.google.auto.value.AutoValue;
import java.util.EnumMap;
import java.util.Map;
/** TestIntegration represents an external link that is integrated with the test results. */
@AutoValue
public abstract class TestIntegration {
/** Represents each available field for TestIntegration. */
public enum ExternalLinkAttribute {
NAME,
URL,
CONTACT_EMAIL,
COMPONENT_ID,
DESCRIPTION,
ICON_NAME,
ICON_URL,
BACKGROUND_COLOR,
FOREGROUND_COLOR;
/** Gets the string representation of the current enum. */
public String getXmlAttributeName() {
return name().toLowerCase();
}
}
// Group or user name responsible for this external integration.
abstract String contactEmail();
// Component id (numeric) for this external integration.
abstract String componentId();
// Display name of this external integration.
abstract String name();
// URL that will display more data about this test result or integration.
abstract String url();
// Optional: URL or name of the icon to be displayed.
abstract String iconUrl();
abstract String iconName();
// Optional: Textual description that shows up as tooltip.
abstract String description();
// Optional: Foreground color.
abstract String foregroundColor();
// Optional: Background color.
abstract String backgroundColor();
static Builder builder() {
return new AutoValue_TestIntegration.Builder()
.setIconName("")
.setIconUrl("")
.setDescription("")
.setForegroundColor("")
.setBackgroundColor("");
}
@AutoValue.Builder
abstract static class Builder {
public abstract Builder setContactEmail(String email);
public abstract Builder setComponentId(String id);
public abstract Builder setName(String name);
public abstract Builder setUrl(String url);
public abstract Builder setIconUrl(String iconUrl);
public abstract Builder setIconName(String iconName);
public abstract Builder setDescription(String description);
public abstract Builder setForegroundColor(String foregroundColor);
public abstract Builder setBackgroundColor(String backgroundColor);
abstract TestIntegration build();
}
/*
* getAttributeValueMap returns all of this TestIntegration's values in a Map.
*/
public Map<ExternalLinkAttribute, String> getAttributeValueMap() {
Map<ExternalLinkAttribute, String> map = new EnumMap<>(ExternalLinkAttribute.class);
map.put(ExternalLinkAttribute.NAME, name());
map.put(ExternalLinkAttribute.URL, url());
map.put(ExternalLinkAttribute.CONTACT_EMAIL, contactEmail());
map.put(ExternalLinkAttribute.COMPONENT_ID, componentId());
map.put(ExternalLinkAttribute.DESCRIPTION, description());
map.put(ExternalLinkAttribute.ICON_NAME, iconName());
map.put(ExternalLinkAttribute.ICON_URL, iconUrl());
map.put(ExternalLinkAttribute.BACKGROUND_COLOR, backgroundColor());
map.put(ExternalLinkAttribute.FOREGROUND_COLOR, foregroundColor());
return map;
}
}