@Test
public void testGetRelativePath() {

	String[] tests = {
			// src -> dst -> expected output
			
			// case: equality
			"/path/to/file", "/path/to/file", "/path/to/file",
			"", "", "",
			"C:", "C:\\", "C:",
			"/same/path", "same/path/", "../../../same/path",
			
			// case: src above dst
			"/path/to/file", "/path/to/file/and/more", "and/more",
			"", "some/path", "some/path",
			
			// case: src below dst
			"/path/to/file/and/more", "/path/to/file", "../..",
			"C:\\Windows\\System\\Temp\\", "C:\\Windows\\", "../..",
			
			// case: src and dst beside each other
			"/path/to/one/file", "/path/to/another/file", "../../another/file",
			"C:\\Windows\\System", "C:\\Program Files\\DocFetcher", "../../Program Files/DocFetcher",
			"path/to/file", "some/thing/else", "../../../some/thing/else",
			"C:", "D:\\Windows\\", "../D:/Windows",
	};
	for (int i = 0; i < tests.length - 2; i += 3) {
		String src = tests[i];
		String dst = tests[i + 1];
		String outExpected = tests[i + 2];
		String outActual = UtilModel.getRelativePath(src, dst);
		assertEquals(outExpected, outActual);
	}
}