package com.cloudera.flume.shell;
import static org.junit.Assert.assertEquals;
import org.antlr.runtime.RecognitionException;
import org.junit.Test;
import com.cloudera.flume.master.Command;
@Test
Command c1 = CommandBuilder.parseLine("config");
assertEquals("config", c1.getCommand());
assertEquals(0, c1.getArgs().length);
Command c2 = CommandBuilder.parseLine("config this is a test");
assertEquals("config", c2.getCommand());
assertEquals("this", c2.getArgs()[0]);
assertEquals("is", c2.getArgs()[1]);
assertEquals("a", c2.getArgs()[2]);
assertEquals("test", c2.getArgs()[3]);
Command c3 = CommandBuilder.parseLine("config bla bla-3409h");
assertEquals("config", c3.getCommand());
assertEquals("bla", c3.getArgs()[0]);
assertEquals("bla-3409h", c3.getArgs()[1]);
Command c4 = CommandBuilder.parseLine("1 -2 :3 .4");
assertEquals("1", c4.getCommand());
assertEquals("-2", c4.getArgs()[0]);
assertEquals(":3", c4.getArgs()[1]);
assertEquals(".4", c4.getArgs()[2]);
}
@Test
public void testDQuote()
throws RecognitionException {
Command c = CommandBuilder.parseLine("config bla \"foo\" sdlkjfs");
assertEquals("config", c.getCommand());
assertEquals("bla", c.getArgs()[0]);
assertEquals("foo", c.getArgs()[1]);
assertEquals("sdlkjfs", c.getArgs()[2]);
c = CommandBuilder.parseLine("config \"foo blah bkur\"");
assertEquals("config", c.getCommand());
assertEquals("foo blah bkur", c.getArgs()[0]);
c = CommandBuilder.parseLine("\"test\" \"test1\" foobard");
assertEquals("test", c.getCommand());
assertEquals("test1", c.getArgs()[0]);
assertEquals("foobard", c.getArgs()[1]);
}
@Test
public void testSQuote()
throws RecognitionException {
Command c = CommandBuilder.parseLine("config bla 'blah'");
assertEquals("config", c.getCommand());
assertEquals("bla", c.getArgs()[0]);
assertEquals("blah", c.getArgs()[1]);
c = CommandBuilder.parseLine("config '\"foo blah bkur\"'");
assertEquals("config", c.getCommand());
assertEquals("\"foo blah bkur\"", c.getArgs()[0]);
}
@Test
Command c = CommandBuilder
.parseLine("config blitzwing 'console' 'console(\"avrojson\")'");
assertEquals("config", c.getCommand());
assertEquals("blitzwing", c.getArgs()[0]);
assertEquals("console", c.getArgs()[1]);
assertEquals("console(\"avrojson\")", c.getArgs()[2]);
c = CommandBuilder
.parseLine("multiconfig 'blitzwing : console | {delay(100) => console(\"avrojson\")};'");
assertEquals("multiconfig", c.getCommand());
assertEquals(
"blitzwing : console | {delay(100) => console(\"avrojson\")};", c
.getArgs()[0]);
}
@Test(expected = RecognitionException.class)
CommandBuilder
.parseLine("config blitzwing 'console' 'console(\"avrojson\")");
}
@Test(expected = RecognitionException.class)
CommandBuilder
.parseLine("config @blitzwing 'console' 'console(\"avrojson\")");
}
}