1 /* 2 * Copyright (c) 2020 Helmut Neemann. 3 * Use of this source code is governed by the GPL v3 license 4 * that can be found in the LICENSE file. 5 */ 6 package de.neemann.digital.core.extern; 7 8 import junit.framework.TestCase; 9 10 import java.util.ArrayList; 11 12 public class OptionsTest extends TestCase { 13 testSimple()14 public void testSimple() { 15 check(new Options().addString("-a -e -u=zzz"), "-a", "-e", "-u=zzz"); 16 check(new Options().addString("-a -e -u=\"Hello World\""), "-a", "-e", "-u=\"Hello World\""); 17 check(new Options().addString("-a -u=\"Hello World\" -e"), "-a", "-u=\"Hello World\"", "-e"); 18 19 // escape 20 check(new Options().addString("-a -u=Hello\\ World -e"), "-a", "-u=Hello World", "-e"); 21 check(new Options().addString("-a -u=Hello\\nWorld -e"), "-a", "-u=Hello\nWorld", "-e"); 22 check(new Options().addString("-a -u=Hello\\tWorld -e"), "-a", "-u=Hello\tWorld", "-e"); 23 check(new Options().addString("-a -u=Hello\\rWorld -e"), "-a", "-u=Hello\rWorld", "-e"); 24 check(new Options().addString("-a -u=Hello\\\\World -e"), "-a", "-u=Hello\\World", "-e"); 25 check(new Options().addString("-a -u=Hello\\ World -e\\"), "-a", "-u=Hello World", "-e\\"); 26 check(new Options().addString("-a -u=Hello\\\"Wo rld -e"), "-a", "-u=Hello\"Wo", "rld", "-e"); 27 check(new Options().addString("-a \"-u=Hello World\" -e"), "-a", "-u=Hello World", "-e"); 28 check(new Options().addString("-a \"-u=Hello\\ World\" -e"), "-a", "-u=Hello\\ World", "-e"); 29 check(new Options().addString("-a \\\"-u=Hello\\ World\\\" -e"), "-a", "\"-u=Hello World\"", "-e"); 30 } 31 check(Options options, String... opt)32 private void check(Options options, String... opt) { 33 ArrayList<String> l = options.getList(); 34 assertEquals(opt.length, l.size()); 35 for (int i = 0; i < opt.length; i++) 36 assertEquals(opt[i], l.get(i)); 37 } 38 }