@Test
	public void testGetFileContentHash_CalculatesHashCorrectly_Succeeds() {
		Path tempFile = null;
		try {
			try {
				tempFile = Files.createTempFile("Photons_test_CalculatesHashCorrectly", ".txt");
			} catch (IOException e) {
				e.printStackTrace();
				fail("Could not create temp file.");
			}
			
			// Write something into the file
			BufferedWriter writer = null;
			try {
	            writer = new BufferedWriter(new FileWriter(tempFile.toString(), false));
	            writer.write("Test string...");
			} catch (Exception e) {
				e.printStackTrace();
				fail(String.format("Failed to write to file [%s].", tempFile));
			} finally {
				if (writer != null) {
					try {
						writer.close();
					} catch (IOException e) {
						e.printStackTrace();
						fail("Failed to close file writer.");
					}
				}
			}

			// Check hash
			try {
				String hash = FileUtil.getFileContentHash(tempFile.toString());
				
				// Reference hash checked at: http://www.md5calc.com/
				if (!hash.equals("247a74b52cfe95532fd652242d94ac0029f8dda1346a8cf0cc0874e274b3a2a0")) {
					fail(String.format("Incorrect hash string retrieved: [%s].", hash));
				}
			} catch (Exception e) {
				e.printStackTrace();
				fail("Failed to get hash string.");
			}
			
		} finally {
			try {
				if (tempFile != null) {
					Files.delete(tempFile);
				}
			} catch (IOException e) {
				e.printStackTrace();
				fail(String.format("Failed to delete temporary file [%s]", tempFile));
			}
		}
	}