/* The MIT License (MIT)
* Copyright (c) 2014 Nicholas Wright
* http://opensource.org/licenses/MIT
*/
package com.github.dozedoff.commonj.file;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import java.io.File;
import java.nio.file.Path;
import java.nio.file.Paths;
import org.junit.Before;
import org.junit.Test;
public class FileInfoTest {
private FileInfo fi;
private static final String testFile1 = "/foo/bar/test.dat";
private static final String testFile2 = "/foo/bar.dat";
private static final String testHash1 = "ABCDEF";
private static final String testHash2 = "ABC";
@Before
public void setUp() throws Exception {
fi = new FileInfo(Paths.get(testFile1), testHash1);
}
@Test
public void testFileInfoFileString() {
fi = new FileInfo(new File(testFile2), testHash2);
assertThat(fi.getFile(), is(new File(testFile2)));
assertThat(fi.getHash(), is(testHash2));
}
@Test
public void testFileInfoPathString() {
fi = new FileInfo(Paths.get(testFile2), "ABC");
assertThat(fi.getFilePath(), is(Paths.get(testFile2)));
assertThat(fi.getHash(), is(testHash2));
}
@Test
public void testFileInfoFile() {
fi = new FileInfo(new File(testFile2));
assertThat(fi.getFile(), is(new File(testFile2)));
assertNull(fi.getHash());
}
@Test
public void testFileInfoPath() {
fi = new FileInfo(Paths.get(testFile2));
assertThat(fi.getFilePath(), is(Paths.get(testFile2)));
assertNull(fi.getHash());
}
@Test
public void testGetFile() {
assertThat(fi.getFile(), is(new File(testFile1)));
}
@Test
public void testGetFileNull() {
fi = new FileInfo((File) null);
assertNull(fi.getFile());
}
@Test
public void testGetSize() {
assertThat(fi.getSize(), is(-1L));
}
@Test
public void testGetHash() {
assertThat(fi.getHash(), is(testHash1));
}
@Test
public void testSetFileFile() {
fi.setFile(new File(testFile2));
assertThat(fi.getFile(), is(new File(testFile2)));
assertThat(fi.getFilePath(), is(Paths.get(testFile2)));
}
@Test
public void testSetFilePath() {
fi.setFile(Paths.get(testFile2));
assertThat(fi.getFilePath(), is(Paths.get(testFile2)));
assertThat(fi.getFile(), is(new File(testFile2)));
}
@Test
public void testGetFilePath() {
assertThat(fi.getFilePath(), is(Paths.get(testFile1)));
}
@Test
public void testGetFilePathNull() {
fi = new FileInfo((File) null);
assertNull(fi.getFilePath());
}
@Test
public void testSetSize() {
fi.setSize(10L);
assertThat(fi.getSize(), is(10L));
}
@Test
public void testSetHash() {
fi.setHash(testHash2);
assertThat(fi.getHash(), is(testHash2));
}
@Test
public void testHasHash() {
assertTrue(fi.hasHash());
}
@Test
public void testHasNoHash() {
fi.setHash(null);
assertFalse(fi.hasHash());
}
@Test
public void testHasPath() {
assertTrue(fi.hasPath());
}
@Test
public void testHasNoPathFile() {
fi.setFile((File) null);
assertFalse(fi.hasPath());
}
@Test
public void testHasNoPathPath() {
fi.setFile((Path) null);
assertFalse(fi.hasPath());
}
@Test
public void testHasSize() {
assertFalse(fi.hasSize());
}
@Test
public void testHasSize2() {
fi.setSize(1L);
assertTrue(fi.hasSize());
}
}