blob: e529b1ccdccf1878aad9e4621e6efe1839c92be8 [file] [log] [blame]
/**********************************************************************
* Copyright (c) 2016 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License 2.0 which
* accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Bruno Roy- Initial API and implementation
**********************************************************************/
package org.eclipse.tracecompass.lttng2.control.core.tests.model.impl;
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 org.eclipse.tracecompass.internal.lttng2.control.core.model.ILoggerInfo;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.LogLevelType;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceDomainType;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceEnablement;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceJulLogLevel;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceLog4jLogLevel;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.impl.LoggerInfo;
import org.junit.Before;
import org.junit.Test;
/**
* The class <code>LoggerInfoTest</code> contains test for the class
* <code>{@link LoggerInfo}</code>.
*/
public class LoggerInfoTest {
// ------------------------------------------------------------------------
// Test data
// ------------------------------------------------------------------------
private ILoggerInfo fLoggerInfo1 = null;
private ILoggerInfo fLoggerInfo2 = null;
// ------------------------------------------------------------------------
// Housekeeping
// ------------------------------------------------------------------------
/**
* Perform pre-test initialization.
*/
@Before
public void setUp() {
ModelImplFactory factory = new ModelImplFactory();
fLoggerInfo1 = factory.getLoggerInfo1();
fLoggerInfo2 = factory.getLoggerInfo2();
}
// ------------------------------------------------------------------------
// Tests
// ------------------------------------------------------------------------
/**
* Run the LoggerInfo() constructor test.
*/
@Test
public void testLoggerInfo() {
LoggerInfo fixture = new LoggerInfo("logger");
assertNotNull(fixture);
// Name
String name = fixture.getName();
assertEquals("logger", name);
// Domain
TraceDomainType result = fixture.getDomain();
assertEquals("UNKNOWN", result.name());
assertEquals("UNKNOWN", result.toString());
assertEquals(5, result.ordinal());
// State
TraceEnablement state = fixture.getState();
assertEquals("disabled", state.getInName());
assertEquals("DISABLED", state.name());
assertEquals("DISABLED", state.toString());
assertEquals(0, state.ordinal());
// Log level type
LogLevelType logType = fixture.getLogLevelType();
assertEquals("All", logType.getShortName());
assertEquals("LOGLEVEL_ALL", logType.name());
assertEquals("LOGLEVEL_ALL", logType.toString());
assertEquals(0, state.ordinal());
// Log level
TraceJulLogLevel logLevel = (TraceJulLogLevel) fixture.getLogLevel();
assertEquals("LEVEL_UNKNOWN", logLevel.getInName());
assertEquals("LEVEL_UNKNOWN", logLevel.name());
assertEquals("LEVEL_UNKNOWN", logLevel.toString());
assertEquals(9, logLevel.ordinal());
}
/**
* Test Copy Constructor
*/
@Test
public void testLoggerInfoCopy() {
LoggerInfo info = new LoggerInfo((LoggerInfo) fLoggerInfo1);
assertEquals(fLoggerInfo1.getName(), info.getName());
assertEquals(fLoggerInfo1.getState(), info.getState());
assertEquals(fLoggerInfo1.getLogLevelType(), info.getLogLevelType());
assertEquals(fLoggerInfo1.getLogLevel(), info.getLogLevel());
assertEquals(fLoggerInfo1.getDomain(), info.getDomain());
}
/**
* Test Copy Constructor
*/
@Test
public void testEventCopy2() {
try {
LoggerInfo info = null;
new LoggerInfo(info);
fail("null copy");
}
catch (IllegalArgumentException e) {
// Success
}
}
/**
* Getter/Setter tests
*/
@Test
public void testGetAndSetter() {
LoggerInfo fixture = new LoggerInfo("logger");
// setState(String stateName)
fixture.setState("disabled");
TraceEnablement state = fixture.getState();
assertEquals("disabled", state.getInName());
assertEquals("DISABLED", state.name());
assertEquals("DISABLED", state.toString());
assertEquals(0, state.ordinal());
fixture.setState("true");
state = fixture.getState();
assertEquals("true", state.getInMiName());
assertEquals("ENABLED", state.name());
assertEquals("ENABLED", state.toString());
assertEquals(1, state.ordinal());
fixture.setState("false");
state = fixture.getState();
assertEquals("false", state.getInMiName());
assertEquals("DISABLED", state.name());
assertEquals("DISABLED", state.toString());
assertEquals(0, state.ordinal());
fixture.setState("enabled");
state = fixture.getState();
assertEquals("enabled", state.getInName());
assertEquals("ENABLED", state.name());
assertEquals("ENABLED", state.toString());
assertEquals(1, state.ordinal());
fixture.setState("bla");
state = fixture.getState();
assertEquals("disabled", state.getInName());
assertEquals("DISABLED", state.name());
assertEquals("DISABLED", state.toString());
assertEquals(0, state.ordinal());
// setState(TraceEnablement state)
fixture.setState(TraceEnablement.ENABLED);
state = fixture.getState();
assertEquals("enabled", state.getInName());
assertEquals("ENABLED", state.name());
assertEquals("ENABLED", state.toString());
assertEquals(1, state.ordinal());
fixture.setState(TraceEnablement.DISABLED);
state = fixture.getState();
assertEquals("disabled", state.getInName());
assertEquals("DISABLED", state.name());
assertEquals("DISABLED", state.toString());
assertEquals(0, state.ordinal());
// setLogLevelType(String name)
fixture.setLogLevelType("==");
assertEquals("LOGLEVEL_ONLY", fixture.getLogLevelType().name());
assertEquals("==", fixture.getLogLevelType().getShortName());
fixture.setLogLevelType("<=");
assertEquals("LOGLEVEL", fixture.getLogLevelType().name());
assertEquals("<=", fixture.getLogLevelType().getShortName());
fixture.setLogLevelType("All");
assertEquals("LOGLEVEL_ALL", fixture.getLogLevelType().name());
assertEquals("All", fixture.getLogLevelType().getShortName());
fixture.setLogLevelType(LogLevelType.LOGLEVEL_ONLY);
assertEquals("LOGLEVEL_ONLY", fixture.getLogLevelType().name());
assertEquals("==", fixture.getLogLevelType().getShortName());
fixture.setLogLevelType(LogLevelType.LOGLEVEL);
assertEquals("LOGLEVEL", fixture.getLogLevelType().name());
assertEquals("<=", fixture.getLogLevelType().getShortName());
fixture.setLogLevelType(LogLevelType.LOGLEVEL_ALL);
assertEquals("LOGLEVEL_ALL", fixture.getLogLevelType().name());
assertEquals("All", fixture.getLogLevelType().getShortName());
fixture.setLogLevelType(LogLevelType.LOGLEVEL_NONE);
assertEquals("LOGLEVEL_NONE", fixture.getLogLevelType().name());
assertEquals("", fixture.getLogLevelType().getShortName());
// setLogLevelType(String name)
fixture.setLogLevelType("SINGLE");
assertEquals("LOGLEVEL_ONLY", fixture.getLogLevelType().name());
assertEquals("SINGLE", fixture.getLogLevelType().getMiName());
fixture.setLogLevelType("RANGE");
assertEquals("LOGLEVEL", fixture.getLogLevelType().name());
assertEquals("RANGE", fixture.getLogLevelType().getMiName());
fixture.setLogLevelType("ALL");
assertEquals("LOGLEVEL_ALL", fixture.getLogLevelType().name());
assertEquals("ALL", fixture.getLogLevelType().getMiName());
fixture.setLogLevelType("UNKNOWN");
assertEquals("LOGLEVEL_NONE", fixture.getLogLevelType().name());
assertEquals("UNKNOWN", fixture.getLogLevelType().getMiName());
}
/**
* Run the String toString() method test.
*/
@Test
public void testToString() {
LoggerInfo fixture = new LoggerInfo("logger");
fixture.setName("testName");
String result = fixture.toString();
assertEquals("[LoggerInfo([BaseLoggerInfo([TraceInfo(Name=testName)],domain=UNKNOWN,level=LEVEL_UNKNOWN)],State=DISABLED,levelType=LOGLEVEL_ALL)]", result);
fixture.setDomain(TraceDomainType.JUL);
result = fixture.toString();
assertEquals("[LoggerInfo([BaseLoggerInfo([TraceInfo(Name=testName)],domain=JUL,level=LEVEL_UNKNOWN)],State=DISABLED,levelType=LOGLEVEL_ALL)]", result);
fixture.setLogLevel(TraceJulLogLevel.JUL_FINE);
result = fixture.toString();
assertEquals("[LoggerInfo([BaseLoggerInfo([TraceInfo(Name=testName)],domain=JUL,level=JUL_FINE)],State=DISABLED,levelType=LOGLEVEL_ALL)]", result);
fixture.setState(TraceEnablement.ENABLED);
result = fixture.toString();
assertEquals("[LoggerInfo([BaseLoggerInfo([TraceInfo(Name=testName)],domain=JUL,level=JUL_FINE)],State=ENABLED,levelType=LOGLEVEL_ALL)]", result);
fixture.setDomain(TraceDomainType.LOG4J);
result = fixture.toString();
assertEquals("[LoggerInfo([BaseLoggerInfo([TraceInfo(Name=testName)],domain=LOG4J,level=JUL_FINE)],State=ENABLED,levelType=LOGLEVEL_ALL)]", result);
fixture.setLogLevel(TraceLog4jLogLevel.LOG4J_FATAL);
result = fixture.toString();
assertEquals("[LoggerInfo([BaseLoggerInfo([TraceInfo(Name=testName)],domain=LOG4J,level=LOG4J_FATAL)],State=ENABLED,levelType=LOGLEVEL_ALL)]", result);
}
// ------------------------------------------------------------------------
// equals
// ------------------------------------------------------------------------
/**
* Run the equals() method test.
*/
@Test
public void testEqualsReflexivity() {
assertTrue("equals", fLoggerInfo1.equals(fLoggerInfo1));
assertTrue("equals", fLoggerInfo2.equals(fLoggerInfo2));
assertTrue("equals", !fLoggerInfo1.equals(fLoggerInfo2));
assertTrue("equals", !fLoggerInfo2.equals(fLoggerInfo1));
}
/**
* Run the equals() method test.
*/
@Test
public void testEqualsSymmetry() {
LoggerInfo info1 = new LoggerInfo((LoggerInfo)fLoggerInfo1);
LoggerInfo info2 = new LoggerInfo((LoggerInfo)fLoggerInfo2);
assertTrue("equals", info1.equals(fLoggerInfo1));
assertTrue("equals", fLoggerInfo1.equals(info1));
assertTrue("equals", info2.equals(fLoggerInfo2));
assertTrue("equals", fLoggerInfo2.equals(info2));
}
/**
* Run the equals() method test.
*/
@Test
public void testEqualsTransivity() {
LoggerInfo info1 = new LoggerInfo((LoggerInfo)fLoggerInfo1);
LoggerInfo info2 = new LoggerInfo((LoggerInfo)fLoggerInfo1);
LoggerInfo info3 = new LoggerInfo((LoggerInfo)fLoggerInfo1);
assertTrue("equals", info1.equals(info2));
assertTrue("equals", info2.equals(info3));
assertTrue("equals", info1.equals(info3));
}
/**
* Run the equals() method test.
*/
@Test
public void testEqualsNull() {
assertTrue("equals", !fLoggerInfo1.equals(null));
assertTrue("equals", !fLoggerInfo2.equals(null));
}
// ------------------------------------------------------------------------
// hashCode
// ------------------------------------------------------------------------
/**
* Run the hashCode() method test.
*/
@Test
public void testHashCode() {
LoggerInfo info1 = new LoggerInfo((LoggerInfo)fLoggerInfo1);
LoggerInfo info2 = new LoggerInfo((LoggerInfo)fLoggerInfo2);
assertTrue("hashCode", fLoggerInfo1.hashCode() == info1.hashCode());
assertTrue("hashCode", fLoggerInfo2.hashCode() == info2.hashCode());
assertTrue("hashCode", fLoggerInfo1.hashCode() != info2.hashCode());
assertTrue("hashCode", fLoggerInfo2.hashCode() != info1.hashCode());
}
}