All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.amygdalum.extensions.assertj.conditions.CompoundDescription Maven / Gradle / Ivy

Go to download

Assertj Extensions (advanced testing of conventions, iterables, strings, exceptions)

The newest version!
package net.amygdalum.extensions.assertj.conditions;

import static java.util.stream.Collectors.joining;

import java.util.LinkedHashMap;
import java.util.Map;

import org.assertj.core.description.Description;

public class CompoundDescription extends Description {

	private Description descriptionHeadline;
	private Map componentDescriptions;

	public CompoundDescription(Description descriptionHeadline) {
		this.descriptionHeadline = descriptionHeadline;
		this.componentDescriptions = new LinkedHashMap<>();
	}

	public CompoundDescription addComponent(String key, Description description) {
		componentDescriptions.put(key, description);
		return this;
	}

	public String indent(String value) {
		return value.replace("\n", "\n\t");
	}

	@Override
	public String value() {
		return descriptionHeadline.value()
			+ componentDescriptions.entrySet().stream()
				.map(entry -> indent(entry.getKey() + ": " + entry.getValue().value()))
				.collect(joining("\n\t", " {\n\t", "\n}"));
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy