package models; import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.junit.Before; import org.junit.Test; import java.io.File; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.util.List; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; /** * Created by fo on 24.03.16. */ public class GraphHistoryTest { private File mHistoryDir; private File mHistoryFile; private GraphHistory mGraphHistory; private static String loadCommit(String aFileName) throws IOException { return IOUtils.toString(ClassLoader.getSystemResourceAsStream(aFileName), StandardCharsets.UTF_8.name()); } @Before public void setUp() throws IOException { mHistoryDir = Files.createTempDirectory(null).toFile(); mHistoryFile = Files.createTempFile(null, null).toFile(); mGraphHistory = new GraphHistory(mHistoryDir, mHistoryFile); } @Test public void testAdd() throws IOException { TripleCommit commit = TripleCommit.fromString(loadCommit("GraphHistoryTest/testAddCommit.IN.1.ncommit")); mGraphHistory.add(commit); String commitId = DigestUtils.sha1Hex(commit.toString()); File expectedFile = new File(mHistoryDir, commitId); assertTrue(expectedFile.exists()); assertEquals(FileUtils.readFileToString(mHistoryFile), commitId.concat("\n")); } @Test public void testSize() throws IOException { TripleCommit commit = TripleCommit.fromString(loadCommit("GraphHistoryTest/testAddCommit.IN.1.ncommit")); mGraphHistory.add(commit); assertEquals(1, mGraphHistory.size()); } @Test public void testFullLog() throws IOException { TripleCommit commit1 = TripleCommit.fromString(loadCommit("GraphHistoryTest/testAddCommit.IN.1.ncommit")); TripleCommit commit2 = TripleCommit.fromString(loadCommit("GraphHistoryTest/testAddCommit.IN.2.ncommit")); mGraphHistory.add(commit1); mGraphHistory.add(commit2); List<Commit> commits = mGraphHistory.log(); assertEquals(2, commits.size()); assertEquals(commit1, commits.get(1)); assertEquals(commit2, commits.get(0)); } @Test public void testLog() throws IOException { TripleCommit commit1 = TripleCommit.fromString(loadCommit("GraphHistoryTest/testAddCommit.IN.1.ncommit")); TripleCommit commit2 = TripleCommit.fromString(loadCommit("GraphHistoryTest/testAddCommit.IN.2.ncommit")); mGraphHistory.add(commit1); mGraphHistory.add(commit2); List<Commit> resource456Commits = mGraphHistory.log("info:urn:uuid:eea2cb2a-9f4c-11e5-945f-001999ac0456"); assertEquals(2, resource456Commits.size()); assertEquals(commit1, resource456Commits.get(1)); assertEquals(commit2, resource456Commits.get(0)); List<Commit> resource123Commits = mGraphHistory.log("info:urn:uuid:eea2cb2a-9f4c-11e5-945f-001999ac0123"); assertEquals(1, resource123Commits.size()); assertEquals(commit2, resource123Commits.get(0)); List<Commit> resource789Commits = mGraphHistory.log("info:urn:uuid:eea2cb2a-9f4c-11e5-945f-001999ac0789"); assertEquals(0, resource789Commits.size()); } }