MultipleDelimitedArgumentsTest.java

package tests.joptsimple.examples;

import java.io.File;
import java.util.stream.Stream;

import static java.io.File.*;
import static java.util.Arrays.*;

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

import joptsimple.OptionParser;
import joptsimple.OptionSet;
import joptsimple.OptionSpec;
import org.junit.Test;

import static org.junit.Assert.*;

public class MultipleDelimitedArgumentsTest {
    @Test
    public void supportsMultipleDelimitedArguments() {
        OptionParser parser = new OptionParser();
        OptionSpec<File> path = parser.accepts( "path" ).withRequiredArg().ofType( File.class )
            .withValuesSeparatedBy( pathSeparatorChar );

        OptionSet options = parser.parse(
            "--path",
            Stream.of( "/tmp", "/var", "/opt" ).collect( joining( pathSeparator ) ) );

        assertTrue( options.has( path ) );
        assertTrue( options.hasArgument( path ) );
        assertEquals(
            asList( new File( "/tmp" ), new File( "/var" ), new File( "/opt" ) ),
            options.valuesOf( path ) );
    }
}