package com.beijunyi.parallelgit.filesystem;
import java.io.IOException;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
public class GitPathHashCodeTest extends AbstractGitFileSystemTest {
@Before
public void setupFileSystem() throws IOException {
initGitFileSystem();
}
@Test
public void hashCodesFromSameAbsolutePath() {
GitPath p1 = gfs.getPath("/a/b/c");
GitPath p2 = gfs.getPath("/a/b/c");
assertEquals(p1.hashCode(), p2.hashCode());
}
@Test
public void hashCodesFromSameRelativePath() {
GitPath p1 = gfs.getPath("a/b/c");
GitPath p2 = gfs.getPath("a/b/c");
assertEquals(p1.hashCode(), p2.hashCode());
}
@Test
public void hashCodesFromDifferentPaths() {
GitPath path = gfs.getPath("/a/b/c");
int hashCode = path.hashCode();
assertNotEquals(hashCode, gfs.getPath("a/b/c").hashCode());
assertNotEquals(hashCode, gfs.getPath("/a/b").hashCode());
assertNotEquals(hashCode, gfs.getPath("/a/b/c/d").hashCode());
assertNotEquals(hashCode, gfs.getPath("abc").hashCode());
assertNotEquals(hashCode, gfs.getPath("/").hashCode());
assertNotEquals(hashCode, gfs.getPath("").hashCode());
}
@Test
public void hashCodesFromDifferentFileSystems() throws IOException {
try(GitFileSystem otherGfs = Gfs.newFileSystem(repo)) {
GitPath p1 = gfs.getPath("/a/b/c");
GitPath p2 = otherGfs.getPath("/a/b/c");
assertNotEquals(p1.hashCode(), p2.hashCode());
}
}
}