001/**
002 * Powerunit - A JDK1.8 test framework
003 * Copyright (C) 2014 Mathieu Boretti.
004 *
005 * This file is part of Powerunit
006 *
007 * Powerunit is free software: you can redistribute it and/or modify
008 * it under the terms of the GNU General Public License as published by
009 * the Free Software Foundation, either version 3 of the License, or
010 * (at your option) any later version.
011 *
012 * Powerunit is distributed in the hope that it will be useful,
013 * but WITHOUT ANY WARRANTY; without even the implied warranty of
014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
015 * GNU General Public License for more details.
016 *
017 * You should have received a copy of the GNU General Public License
018 * along with Powerunit. If not, see <http://www.gnu.org/licenses/>.
019 */
020package ch.powerunit.collector.lang;
021
022import java.util.stream.Collector;
023
024/**
025 * DSL step of the builder of {@link java.util.stream.Collector Collector
026 * tester}.
027 * 
028 * @author borettim
029 * @param <T>
030 *            the input type of the {@link java.util.stream.Collector Collector}
031 *            .
032 * @param <A>
033 *            the accumulator type of the {@link java.util.stream.Collector
034 *            Collector}.
035 * @param <R>
036 *            the return type of the {@link java.util.stream.Collector
037 *            Collector}.
038 * @since 0.4.0
039 */
040public interface CollectorTesterDSL0<T, A, R> extends
041                CollectorTesterDSL3<T, A, R> {
042        /**
043         * Specify what should be the
044         * {@link java.util.stream.Collector#characteristics() characteristics} that
045         * this {@link java.util.stream.Collector Collector} must have.
046         * 
047         * @param expectedCharacteristics
048         *            the expected one.
049         * @return {@link CollectorTesterDSL3 the next step of the DSL}
050         */
051        CollectorTesterDSL3<T, A, R> havingCharacteristics(
052                        Collector.Characteristics... expectedCharacteristics);
053}