@Test
public void testCreateFlag() {

  final String path = "/test1?createflag=append,sync_block";
  Configuration conf = new Configuration();
  QueryStringDecoder decoder = new QueryStringDecoder(
      WebHdfsHandler.WEBHDFS_PREFIX + path);
  ParameterParser testParser = new ParameterParser(decoder, conf);
  EnumSet<CreateFlag> actual = testParser.createFlag();
  EnumSet<CreateFlag> expected = EnumSet.of(CreateFlag.APPEND,
      CreateFlag.SYNC_BLOCK);
  Assert.assertEquals(expected.toString(), actual.toString());
  final String path1 = "/test1?createflag=append";
  decoder = new QueryStringDecoder(
      WebHdfsHandler.WEBHDFS_PREFIX + path1);
  testParser = new ParameterParser(decoder, conf);
  actual = testParser.createFlag();
  expected = EnumSet.of(CreateFlag.APPEND);
  Assert.assertEquals(expected, actual);
  final String path2 = "/test1";
  decoder = new QueryStringDecoder(
      WebHdfsHandler.WEBHDFS_PREFIX + path2);
  testParser = new ParameterParser(decoder, conf);
  actual = testParser.createFlag();
  Assert.assertEquals(0, actual.size());
  final String path3 = "/test1?createflag=create,overwrite";
  decoder = new QueryStringDecoder(
      WebHdfsHandler.WEBHDFS_PREFIX + path3);
  testParser = new ParameterParser(decoder, conf);
  actual = testParser.createFlag();
  expected = EnumSet.of(CreateFlag.CREATE, CreateFlag
      .OVERWRITE);
  Assert.assertEquals(expected.toString(), actual.toString());
  final String path4 = "/test1?createflag=";
  decoder = new QueryStringDecoder(
      WebHdfsHandler.WEBHDFS_PREFIX + path4);
  testParser = new ParameterParser(decoder, conf);
  actual = testParser.createFlag();
  Assert.assertEquals(0, actual.size());
  //Incorrect value passed to createflag
  try {
    final String path5 = "/test1?createflag=overwrite,";
    decoder = new QueryStringDecoder(
        WebHdfsHandler.WEBHDFS_PREFIX + path5);
    testParser = new ParameterParser(decoder, conf);
    actual = testParser.createFlag();
    fail("It should throw Illegal Argument Exception");
  } catch (Exception e) {
    GenericTestUtils
        .assertExceptionContains("No enum constant", e);
  }
  //Incorrect value passed to createflag
  try {
    final String path6 = "/test1?createflag=,";
    decoder = new QueryStringDecoder(
        WebHdfsHandler.WEBHDFS_PREFIX + path6);
    testParser = new ParameterParser(decoder, conf);
    actual = testParser.createFlag();
    fail("It should throw Illegal Argument Exception");
  } catch (Exception e) {
    GenericTestUtils
        .assertExceptionContains("No enum constant", e);
  }
}