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

org.jasmine.cli.CliNotifier Maven / Gradle / Ivy

package org.jasmine.cli;

import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
import org.jasmine.Failure;
import org.jasmine.Identifier;
import org.jasmine.Notifier;

import java.io.PrintStream;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class CliNotifier implements Notifier {
    private final PrintStream out;
    private final JVM jvm;
    private final Formatter formatter;

    private final Multimap failures = HashMultimap.create();
    private final Map descriptions = new HashMap<>();

    public CliNotifier(PrintStream out, JVM jvm, Formatter formatter) {
        this.out = out;
        this.jvm = jvm;
        this.formatter = formatter;
    }

    @Override
    public void started() {
    }

    @Override
    public void pass(Identifier identifier, String description) {
        descriptions.put(identifier, description);
        out.print(formatter.formatSingularPass(identifier, description));
    }

    @Override
    public void fail(Identifier identifier, String description, Set failures) {
        descriptions.put(identifier, description);
        this.failures.putAll(identifier, failures);
        out.print(formatter.formatSingularFail(identifier, description, failures));
    }

    @Override
    public void finished() {
        out.print(formatter.formatSummary(new Summary(descriptions, failures)));

        if (!failures.isEmpty()) {
           jvm.die();
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy