/** * Oshi (https://github.com/oshi/oshi) * * Copyright (c) 2010 - 2017 The Oshi Project Team * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Maintainers: * dblock[at]dblock[dot]org * widdis[at]gmail[dot]com * enrico.bianchi[at]gmail[dot]com * * Contributors: * https://github.com/oshi/oshi/graphs/contributors */ package oshi.util; import static org.junit.Assert.assertEquals; import java.util.HashMap; import java.util.List; import java.util.Map; import org.junit.Test; /** * Tests FileUtil */ public class FileUtilTest { /* * File sources */ private static String THISCLASS = "src/test/java/oshi/util/FileUtilTest.java"; private static String INT_FILE = "src/test/resources/test.integer.txt"; private static String STRING_FILE = "src/test/resources/test.string.txt"; private static String PROCIO_FILE = "src/test/resources/test.procio.txt"; private static String NO_FILE = "does/not/exist"; /** * Test read file. */ @Test public void testReadFile() { List<String> thisFile = null; // Try file not found thisFile = FileUtil.readFile(NO_FILE); assertEquals(0, thisFile.size()); // Try this file thisFile = FileUtil.readFile(THISCLASS); // Comment ONE line int lineOne = 0; // Comment TWO line int lineTwo = 0; for (int i = 0; i < thisFile.size(); i++) { String line = thisFile.get(i); if (lineOne == 0 && line.contains("Comment ONE line")) { lineOne = i; continue; } if (lineTwo == 0 && line.contains("Comment TWO line")) { lineTwo = i; break; } } assertEquals(2, lineTwo - lineOne); } /** * Test get*FromFile */ @Test public void testGetFromFile() { assertEquals(123L, FileUtil.getUnsignedLongFromFile(INT_FILE)); assertEquals(0L, FileUtil.getUnsignedLongFromFile(STRING_FILE)); assertEquals(0L, FileUtil.getUnsignedLongFromFile(NO_FILE)); assertEquals(123L, FileUtil.getLongFromFile(INT_FILE)); assertEquals(0L, FileUtil.getLongFromFile(STRING_FILE)); assertEquals(0L, FileUtil.getLongFromFile(NO_FILE)); assertEquals(123, FileUtil.getIntFromFile(INT_FILE)); assertEquals(0, FileUtil.getIntFromFile(STRING_FILE)); assertEquals(0, FileUtil.getIntFromFile(NO_FILE)); assertEquals("123", FileUtil.getStringFromFile(INT_FILE)); assertEquals("", FileUtil.getStringFromFile(NO_FILE)); assertEquals(5, FileUtil.getSplitFromFile(STRING_FILE).length); assertEquals(0, FileUtil.getSplitFromFile(NO_FILE).length); } @Test public void testReadProcIo() { Map<String, String> expected = new HashMap<>(); expected.put("rchar", "124788352"); expected.put("wchar", "124802481"); expected.put("syscr", "135"); expected.put("syscw", "1547"); expected.put("read_bytes", "40304640"); expected.put("write_bytes", "124780544"); expected.put("cancelled_write_bytes", "42"); Map<String, String> actual = FileUtil.getKeyValueMapFromFile(PROCIO_FILE, ":"); assertEquals(expected.size(), actual.size()); for (String key : expected.keySet()) { assertEquals(expected.get(key), actual.get(key)); } } }