package driver;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
import static util.ListUtils.list;
import java.nio.file.Paths;
import java.util.Collection;
import java.util.Set;
import files.BackedRequire;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import org.junit.runners.MethodSorters;
import files.RelativeSourcePath;
import files.Require;
@RunWith(JUnit4.class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class RequiresTests
{
@Test public void aa_addBacked()
{
RelativeSourcePath path =
new RelativeSourcePath(Paths.get("a/b/File.java"));
Require req1 = new Require(path, list("A"), null);
Require req2 = new Require(path, list("B"), null);
Require req3 = new Require(path, list("C"), null);
SourceFile file1 = mock(SourceFile.class);
SourceFile file2 = mock(SourceFile.class);
BackedRequire breq1 = new BackedRequire(req1, file1);
BackedRequire breq2 = new BackedRequire(req2, file1);
BackedRequire breq3 = new BackedRequire(req3, file2);
Requires requires = new Requires();
requires.add(breq1);
requires.add(breq2);
requires.add(breq3);
Set<SourceFile> deps = requires.dependencies();
assertTrue(deps.containsAll(list(file1, file2)));
Collection<BackedRequire> breqs = requires.get();
assertTrue(breqs.containsAll(list(breq1, breq2, breq3)));
}
}