/* * Software Name : ATK * * Copyright (C) 2007 - 2012 France Télécom * * 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. * * ------------------------------------------------------------------ * File Name : com.orange.atk.results.logger.log.TestDocumentLogger.java * * Created : 20/05/2008 * Author(s) : France Telecom */ package com.orange.atk.results.logger.log; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.io.File; import java.io.IOException; import java.net.URL; import junit.framework.JUnit4TestAdapter; import org.apache.log4j.Logger; import org.junit.Before; import org.junit.Test; import com.orange.atk.platform.Platform; public class DocumentLoggerTest { // To allow the test runner to run this test class public static junit.framework.Test suite() { return new JUnit4TestAdapter(DocumentLoggerTest.class); } private static final String LOG_DIR = Platform.TMP_DIR; DocumentLogger dl = null; @Before public void setUp() { URL configfile = DocumentLoggerTest.class.getResource("/config.xml"); dl = new DocumentLogger(LOG_DIR); dl.load(configfile.getFile()); } @Test public void testDefaultGetMsgsLogged() { assertNotNull("dl.getMsgsLogged() is null", dl.getMsgsLogged()); assertEquals(0, dl.getMsgsLogged().size()); } @Test public void testLogMessages() { dl.addInfoToLog("info", 2, "aScript1"); dl.addErrorToLog("error", 3, "aScript2"); dl.addWarningToLog("warning", 4, "aScript3"); if (dl.getMsgsLogged().size() != 3) { fail("More messages logged than expected"); } Message msgsInfo = dl.getMsgsLogged().get(0); Message msgsErro = dl.getMsgsLogged().get(1); Message msgsWarn = dl.getMsgsLogged().get(2); if (!((msgsInfo.getType() == Message.INFO_MSG) && (msgsInfo.getLine() == 2) && ("info".equals(msgsInfo.getMessage())) && ("aScript1" .equals(msgsInfo.getScriptName())))) { fail("Info message has not been saved correctly"); } if (!((msgsErro.getType() == Message.ERROR_MSG) && (msgsErro.getLine() == 3) && ("error".equals(msgsErro.getMessage())) && ("aScript2" .equals(msgsErro.getScriptName())))) { fail("Error message has not been saved correctly"); } if (!((msgsWarn.getType() == Message.WARN_MSG) && (msgsWarn.getLine() == 4) && ("warning".equals(msgsWarn.getMessage())) && ("aScript3" .equals(msgsWarn.getScriptName())))) { fail("Warning message has not been saved correctly"); } } @Test public void testGetBatPNGFiles() { assertNotNull(dl.getPNGpath("BATTERY")); assertTrue(isValidFileName(dl.getPNGpath("BATTERY"))); } @Test public void testGetCpuPNGFiles() { assertNotNull(dl.getPNGpath("BATTERY")); assertTrue(isValidFileName(dl.getPNGpath("CPU"))); } @Test public void testGetMemPNGFiles() { assertNotNull(dl.getPNGpath("BATTERY")); assertTrue(isValidFileName(dl.getPNGpath("MEMORY"))); } @Test public void testGetStoNGFiles() { assertNotNull(dl.getPNGpath("BATTERY")); assertTrue(isValidFileName(dl.getPNGpath("STORAGE"))); } @Test public void testDefaultMinValue() { assertEquals(Long.MAX_VALUE, dl.getMinValueFromList("Battery")); assertEquals(Long.MAX_VALUE, dl.getMinValueFromList("Cpu")); assertEquals(Long.MAX_VALUE, dl.getMinValueFromList("Memory")); assertEquals(Long.MAX_VALUE, dl.getMinValueFromList("Storage")); } @Test public void testDefaultMaxValue() { assertEquals(Long.MIN_VALUE, dl.getMaxValueFromList("Battery")); assertEquals(Long.MIN_VALUE, dl.getMaxValueFromList("Cpu")); assertEquals(Long.MIN_VALUE, dl.getMaxValueFromList("Memory")); assertEquals(Long.MIN_VALUE, dl.getMaxValueFromList("Storage")); } @Test public void testDefaultAveValue() { assertEquals(Double.NaN, dl.getAveValueFromList("Battery"), 0.1); assertEquals(Double.NaN, dl.getAveValueFromList("Cpu"), 0.1); assertEquals(Double.NaN, dl.getAveValueFromList("Memory"), 0.1); assertEquals(Double.NaN, dl.getAveValueFromList("Storage"), 0.1); } @Test public void testAddDataToList() { dl.addDataToList("Battery", 1L, 10F); dl.addDataToList("Cpu", 1L, -10F); dl.addDataToList("Cpu", 2L, 10F); dl.addDataToList("Memory", 1L, 10000F); dl.addDataToList("Memory", 3L, -30F); dl.addDataToList("Memory", 8L, -10F); dl.addDataToList("Storage", 100L, 10F); dl.addDataToList("Storage", 10000L, 10F); dl.addDataToList("Storage", 10001L, 10F); dl.addDataToList("Storage", 11000L, 30F); assertEquals(10L, dl.getMinValueFromList("Battery")); assertEquals(-10L, dl.getMinValueFromList("Cpu")); assertEquals(-30L, dl.getMinValueFromList("Memory")); assertEquals(10L, dl.getMinValueFromList("Storage")); assertEquals(10L, dl.getMaxValueFromList("Battery")); assertEquals(10L, dl.getMaxValueFromList("Cpu")); assertEquals(10000L, dl.getMaxValueFromList("Memory")); assertEquals(30L, dl.getMaxValueFromList("Storage")); assertEquals(10L, dl.getAveValueFromList("Battery"), 0.1); assertEquals(0, dl.getAveValueFromList("Cpu"), 0.1); assertEquals(3320L, dl.getAveValueFromList("Memory"), 0.1); assertEquals(15L, dl.getAveValueFromList("Storage"), 0.1); assertEquals(1, dl.getPlotList("Battery").getSize()); assertEquals(2, dl.getPlotList("Cpu").getSize()); assertEquals(3, dl.getPlotList("Memory").getSize()); assertEquals(4, dl.getPlotList("Storage").getSize()); } public boolean isValidFileName(String name) { if (name == null) { return false; } File f = new File(name); if (!f.exists()) { try { boolean b = f.createNewFile(); if (b) { if (!f.delete()) Logger.getLogger(this.getClass()).warn( "Can't delete " + f.getPath()); } return b; } catch (IOException ioe) { return false; } } return true; } }