package com.elibom.jogger.router; import java.text.ParseException; import java.util.List; import com.elibom.jogger.middleware.router.Route; import com.elibom.jogger.middleware.router.loader.FileSystemRoutesLoader; import org.testng.Assert; import org.testng.annotations.Test; public class FileSystemRoutesLoaderTest { @Test public void shouldParseInput() throws Exception { // prepare FileSystemRoutesLoader routesLoader = new FileSystemRoutesLoader("src/test/resources/routes/routes-1.config"); routesLoader.setBasePackage("com.elibom.jogger"); // execute List<Route> routes = routesLoader.load(); // validate Assert.assertNotNull(routes); Assert.assertEquals(routes.size(), 2); } @Test public void shouldParseInputWithSpacesAndComments() throws Exception { // prepare FileSystemRoutesLoader routesLoader = new FileSystemRoutesLoader("src/test/resources/routes/routes-2.config"); routesLoader.setBasePackage("com.elibom.jogger."); // execute List<Route> routes = routesLoader.load(); // validate Assert.assertNotNull(routes); Assert.assertEquals(routes.size(), 2); } @Test(expectedExceptions=ParseException.class) public void shouldFailWithInvalidFormat() throws Exception { FileSystemRoutesLoader routesLoader = new FileSystemRoutesLoader("src/test/resources/routes/routes-3.config"); routesLoader.load(); } @Test(expectedExceptions=ParseException.class) public void shouldFailWithInvalidHttpMethod() throws Exception { FileSystemRoutesLoader routesLoader = new FileSystemRoutesLoader("src/test/resources/routes/routes-4.config"); routesLoader.load(); } @Test(expectedExceptions=ParseException.class) public void shouldFailWithInvalidPath() throws Exception { FileSystemRoutesLoader routesLoader = new FileSystemRoutesLoader("src/test/resources/routes/routes-5.config"); routesLoader.load(); } @Test(expectedExceptions=ParseException.class) public void shouldFailWithQuestionMark() throws Exception { FileSystemRoutesLoader routesLoader = new FileSystemRoutesLoader("src/test/resources/routes/routes-6.config"); routesLoader.load(); } @Test(expectedExceptions=ParseException.class) public void shouldFailWithPoundSign() throws Exception { FileSystemRoutesLoader routesLoader = new FileSystemRoutesLoader("src/test/resources/routes/routes-7.config"); routesLoader.load(); } @Test(expectedExceptions=ParseException.class) public void shouldFailWithSpace() throws Exception { FileSystemRoutesLoader routesLoader = new FileSystemRoutesLoader("src/test/resources/routes/routes-8.config"); routesLoader.load(); } @Test(expectedExceptions=ParseException.class) public void shouldFailWithSlashInHolder() throws Exception { FileSystemRoutesLoader routesLoader = new FileSystemRoutesLoader("src/test/resources/routes/routes-8.config"); routesLoader.load(); } @Test(expectedExceptions=ParseException.class) public void shouldFailWithOpenKeyHolder() throws Exception { FileSystemRoutesLoader routesLoader = new FileSystemRoutesLoader("src/test/resources/routes/routes-10.config"); routesLoader.load(); } }