19fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann/*******************************************************************************
234cd880f4e52a32b9f88ed4ea687b8f3f892395bEvgeny Mandrikov * Copyright (c) 2009, 2017 Mountainminds GmbH & Co. KG and Contributors
39fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann * All rights reserved. This program and the accompanying materials
49fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann * are made available under the terms of the Eclipse Public License v1.0
59fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann * which accompanies this distribution, and is available at
69fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann * http://www.eclipse.org/legal/epl-v10.html
79fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann *
89fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann * Contributors:
99fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann *    Marc R. Hoffmann - initial API and implementation
109fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann *
119fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann *******************************************************************************/
129fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmannpackage org.jacoco.core.runtime;
139fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann
149fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmannimport static org.junit.Assert.assertEquals;
159fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann
169fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmannimport java.util.Arrays;
179fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann
189fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmannimport org.junit.Test;
199fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann
209fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann/**
219fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann * Unit tests for {@link CommandLineSupport}.
229fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann */
239fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmannpublic class CommandLineSupportTest {
249fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann
259fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	@Test
269fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	public void testQuote1() {
279fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann		assertEquals("aBc", CommandLineSupport.quote("aBc"));
289fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	}
299fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann
309fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	@Test
319fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	public void testQuote2() {
329fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann		assertEquals("\"a c\"", CommandLineSupport.quote("a c"));
339fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	}
349fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann
359fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	@Test
369fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	public void testQuote3() {
379fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann		assertEquals("\"a\\\"c\"", CommandLineSupport.quote("a\"c"));
389fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	}
399fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann
409fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	@Test
419fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	public void testQuote4() {
429fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann		assertEquals("\" xy \"", CommandLineSupport.quote(" xy "));
439fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	}
449fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann
459fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	@Test
469fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	public void testQuote5() {
479fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann		assertEquals("a\\\\b", CommandLineSupport.quote("a\\b"));
489fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	}
499fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann
509fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	@Test
519fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	public void testQuoteList1() {
529fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann		assertEquals("", CommandLineSupport.quote(Arrays.<String> asList()));
539fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	}
549fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann
559fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	@Test
569fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	public void testQuoteList2() {
579fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann		assertEquals("a", CommandLineSupport.quote(Arrays.asList("a")));
589fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	}
599fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann
609fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	@Test
619fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	public void testQuoteList3() {
629fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann		assertEquals("a b c",
639fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann				CommandLineSupport.quote(Arrays.asList("a", "b", "c")));
649fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	}
659fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann
669fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	@Test
679fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	public void testQuoteList4() {
689fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann		assertEquals("a \"b b\" c",
699fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann				CommandLineSupport.quote(Arrays.asList("a", "b b", "c")));
709fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	}
719fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann
729fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	@Test
739fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	public void testSplit1() {
749fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann		assertEquals(Arrays.asList(), CommandLineSupport.split(null));
759fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	}
769fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann
779fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	@Test
789fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	public void testSplit2() {
799fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann		assertEquals(Arrays.asList(), CommandLineSupport.split(""));
809fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	}
819fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann
829fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	@Test
839fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	public void testSplit3() {
849fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann		assertEquals(Arrays.asList("abc"), CommandLineSupport.split("abc"));
859fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	}
869fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann
879fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	@Test
889fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	public void testSplit4() {
899fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann		assertEquals(Arrays.asList("aa", "bbbb", "cccccc"),
909fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann				CommandLineSupport.split("  aa  bbbb  cccccc   "));
919fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	}
929fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann
939fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	@Test
949fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	public void testSplit5() {
959fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann		assertEquals(Arrays.asList("a a", "b b "),
969fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann				CommandLineSupport.split("\"a a\" \"b b \" "));
979fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	}
989fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann
999fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	@Test
1009fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	public void testSplit6() {
1019fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann		assertEquals(Arrays.asList("a\"c"), CommandLineSupport.split("a\\\"c"));
1029fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	}
1039fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann
1049fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	@Test
1059fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	public void testSplit7() {
1069fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann		assertEquals(Arrays.asList("a\\c"), CommandLineSupport.split("a\\c"));
1079fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	}
1089fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann
1099fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	@Test
1109fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	public void testSplit8() {
1119fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann		assertEquals(Arrays.asList("a\\"), CommandLineSupport.split("a\\"));
1129fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	}
1139fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann
1149fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	@Test
1159fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	public void testSplit9() {
1169fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann		assertEquals(Arrays.asList("a\\", "b"),
1179fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann				CommandLineSupport.split("a\\ b"));
1189fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	}
1199fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann
1209fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	@Test
1219fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	public void testSplit10() {
1229fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann		assertEquals(Arrays.asList("a\\b"), CommandLineSupport.split("a\\\\b"));
1239fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann	}
1249fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann
1259fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann}
126