View Javadoc
1   package com.simpligility.maven.plugins.android;
2   
3   import com.google.common.collect.Lists;
4   import com.simpligility.maven.plugins.android.InstrumentationArgumentParser;
5   
6   import org.junit.Rule;
7   import org.junit.Test;
8   import org.junit.rules.ExpectedException;
9   
10  import java.util.List;
11  import java.util.Map;
12  
13  import static org.hamcrest.CoreMatchers.is;
14  import static org.junit.Assert.assertThat;
15  import static org.junit.Assert.assertTrue;
16  
17  public class InstrumentationArgumentParserTest
18  {
19      @Rule
20      public final ExpectedException expectedException = ExpectedException.none();
21  
22      @Test
23      public void should_return_an_empty_map_for_null_list()
24      {
25          assertTrue( InstrumentationArgumentParser.parse( null ).isEmpty() );
26      }
27  
28      @Test
29      public void two_flat_args_should_be_parsed_into_two_key_value_pairs()
30      {
31          final List<String> flatArgs = Lists.newArrayList( "key1 value1", "key2 value2" );
32          final Map<String,String> parsedArgs = InstrumentationArgumentParser.parse( flatArgs );
33  
34          assertThat( parsedArgs.get( "key1" ), is( "value1" ) );
35          assertThat( parsedArgs.get( "key2" ), is( "value2" ) );
36      }
37  
38      @Test
39      public void should_parse_values_with_space_character()
40      {
41          final List<String> flatArgs = Lists.newArrayList( "key1 'value with spaces'" );
42          final Map<String,String> parsedArgs = InstrumentationArgumentParser.parse( flatArgs );
43  
44          assertThat( parsedArgs.get( "key1" ), is( "'value with spaces'" ) );
45      }
46  
47      @Test
48      public void missing_value_should_throw_IllegalArgumentException()
49      {
50          expectedException.expect( IllegalArgumentException.class );
51          expectedException.expectMessage( is( "Could not separate \"key1\" by a whitespace into two parts" ) );
52  
53          final List<String> flatArgs = Lists.newArrayList( "key1" );
54          InstrumentationArgumentParser.parse( flatArgs );
55      }
56  
57      @Test
58      public void empty_pair_should_throw_IllegalArgumentException()
59      {
60          expectedException.expect( IllegalArgumentException.class );
61          expectedException.expectMessage( is( "Could not separate \"\" by a whitespace into two parts" ) );
62  
63          final List<String> flatArgs = Lists.newArrayList( "" );
64          InstrumentationArgumentParser.parse( flatArgs );
65      }
66  }