/* * Copyright 2008-2017 by Emeric Vernat * * This file is part of Java Melody. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package net.bull.javamelody; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; import java.io.IOException; import java.util.List; import java.util.Locale; import org.junit.Before; import org.junit.Test; /** * Test unitaire de la classe ProcessInformations. * @author Emeric Vernat */ public class TestProcessInformations { /** Check. */ @Before public void setUp() { Utils.initialize(); } /** Test. */ @Test public void testReadPs() { final List<ProcessInformations> processInformations = ProcessInformations .buildProcessInformations(getClass().getResourceAsStream("/tasklist.txt"), true, false); assertSame("processes", processInformations.size(), 49); checkProcesses(processInformations, true); final List<ProcessInformations> processInformations2 = ProcessInformations .buildProcessInformations(getClass().getResourceAsStream("/ps.txt"), false, false); assertSame("processes", processInformations2.size(), 118); checkProcesses(processInformations2, false); final List<ProcessInformations> processInformations3 = ProcessInformations .buildProcessInformations(getClass().getResourceAsStream("/ps_aix.txt"), false, true); assertSame("processes", processInformations3.size(), 15); checkProcesses(processInformations3, false); } /** Test. * @throws IOException e */ @Test public void testExecuteAndReadPs() throws IOException { final List<ProcessInformations> processes = ProcessInformations.buildProcessInformations(); assertNotNull("processes null", processes); assertFalse("processes vide", processes.isEmpty()); final boolean windows = System.getProperty("os.name").toLowerCase(Locale.getDefault()) .contains("windows"); checkProcesses(processes, windows); } private void checkProcesses(List<ProcessInformations> processInformations, boolean windows) { for (final ProcessInformations process : processInformations) { assertNotNull("user", process.getUser()); assertTrue("pid", process.getPid() >= 0); if (!windows) { assertTrue("cpuPercentage", process.getCpuPercentage() >= 0); assertTrue("memPercentage", process.getMemPercentage() >= 0); assertTrue("rss", process.getRss() >= 0); assertNotNull("tty", process.getTty()); assertNotNull("stat", process.getStat()); assertNotNull("start", process.getStart()); } assertTrue("vsz", process.getVsz() >= 0); assertNotNull("cpuTime", process.getCpuTime()); assertNotNull("command", process.getCommand()); } } }