/* vim: set ts=2 et sw=2 cindent fo=qroca: */
package com.globant.katari.jsmodule.domain;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.junit.Test;
/** Represents the Test Cases for a {@link DependenciesFinder}.
*
* @author ivan.bedecarats@globant.com
*/
public class DependenciesFinderTest {
/**
* The dependencies for calendar.js file are the following:
* <ul>
* <li>
* /com/globant/katari/jsmodule/testfile/calendar.js = [
* /com/globant/katari/jsmodule/testfile/jquery.js,
* /com/globant/katari/jsmodule/testfile/jquery-ui.js
* ]
* </li>
* </ul>
*/
@Test
public void find() {
DependenciesFinder depFinder = new DependenciesFinder(true);
List<String> depsFound = depFinder.find(
"/com/globant/katari/jsmodule/testfile/calendar.js");
List<String> expectedResult = Arrays.asList(
"/com/globant/katari/jsmodule/testfile/jquery.js",
"/com/globant/katari/jsmodule/testfile/jquery-ui.js");
assertThat(depsFound, is(expectedResult));
}
/**
* The jquery.js doesn't have any dependencies so there is no .dep.js file
* associated with it.
* <ul>
* <li>
* /com/globant/katari/jsmodule/testfile/calendar.js = []
* </li>
* </ul>
*/
@Test
public void find_noDeps() {
DependenciesFinder depFinder = new DependenciesFinder(true);
List<String> depsFound = depFinder.find(
"/com/globant/katari/jsmodule/testfile/jquery.js");
List<String> expectedResult = new ArrayList<String>();
assertThat(depsFound, is(expectedResult));
}
/**
* If the file doesn't exist, then an empty {@link List} will be returned
* (it's the same case as if the files doesn't have any dependencies).
*/
@Test
public void find_depFileDoesntExit() {
DependenciesFinder depFinder = new DependenciesFinder(true);
List<String> depsFound = depFinder.find(
"/com/globant/katari/jsmodule/testfile/doesntExit.js");
List<String> expectedResult = new ArrayList<String>();
assertThat(depsFound, is(expectedResult));
}
/* empty.js has an invalid empty .dep.js file.
*
* <ul>
* <li>
* /com/globant/katari/jsmodule/testfile/empty.js = empty.
* </li>
* </ul>
*/
@Test (expected = RuntimeException.class)
public void find_emptyDepFile() {
DependenciesFinder depFinder = new DependenciesFinder(true);
depFinder.find("/com/globant/katari/jsmodule/testfile/empty.js");
}
@Test (expected = RuntimeException.class)
public void find_invalidDepFile() {
DependenciesFinder depFinder = new DependenciesFinder(true);
List<String> depsFound = depFinder.find(
"/com/globant/katari/jsmodule/testfile/invalidJson.js");
List<String> expectedResult = new ArrayList<String>();
assertThat(depsFound, is(expectedResult));
}
@Test (expected = IllegalArgumentException.class)
public void find_nullFile() {
(new DependenciesFinder(true)).find(null);
}
@Test (expected = IllegalArgumentException.class)
public void find_emptyFile() {
(new DependenciesFinder(true)).find(null);
}
@Test (expected = IllegalArgumentException.class)
public void find_invalidJsFile() {
(new DependenciesFinder(true)).find("file.txt");
}
}