blob: 06cd667adcb7006743fb217bb0b37711af11b76f [file] [log] [blame]
/**********************************************************************
* Copyright (c) 2012, 2014 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:
* Bernd Hufmann - Initial API and implementation
* Alexandre Montplaisir - Port to JUnit4
**********************************************************************/
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 java.util.LinkedList;
import java.util.List;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.IBaseEventInfo;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.ILoggerInfo;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.IUstProviderInfo;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.impl.BaseEventInfo;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.impl.LoggerInfo;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.impl.UstProviderInfo;
import org.junit.Before;
import org.junit.Test;
/**
* The class <code>ChannelInfoTest</code> contains tests for the class
* <code>{@link UstProviderInfo}</code>.
*/
public class UstProviderInfoTest {
// ------------------------------------------------------------------------
// Test data
// ------------------------------------------------------------------------
private IUstProviderInfo fUstProviderInfo1 = null;
private IUstProviderInfo fUstProviderInfo2 = null;
private IBaseEventInfo fEventInfo1 = null;
private IBaseEventInfo fEventInfo2 = null;
private ILoggerInfo fLoggerInfo1 = null;
private ILoggerInfo fLoggerInfo2 = null;
// ------------------------------------------------------------------------
// Housekeeping
// ------------------------------------------------------------------------
/**
* Perform pre-test initialization.
*/
@Before
public void setUp() {
ModelImplFactory factory = new ModelImplFactory();
fUstProviderInfo1 = factory.getUstProviderInfo1();
fUstProviderInfo2 = factory.getUstProviderInfo2();
fEventInfo1 = factory.getBaseEventInfo1();
fEventInfo2 = factory.getBaseEventInfo2();
fLoggerInfo1 = factory.getLoggerInfo1();
fLoggerInfo2 = factory.getLoggerInfo2();
}
// ------------------------------------------------------------------------
// Tests
// ------------------------------------------------------------------------
// ------------------------------------------------------------------------
// Constructors
// ------------------------------------------------------------------------
/**
* Run the UstProviderInfo() constructor test.
*/
@Test
public void testUstProviderInfo() {
IUstProviderInfo result = new UstProviderInfo("test");
assertNotNull(result);
assertEquals("test", result.getName());
assertEquals(0, result.getPid());
assertEquals(0, result.getEvents().length);
assertEquals(0, result.getLoggers().size());
}
/**
* Test the copy constructor.
*/
@Test
public void testUstProviderInfoCopy() {
IUstProviderInfo providerInf = new UstProviderInfo((UstProviderInfo)fUstProviderInfo1);
assertEquals(fUstProviderInfo1.getName(), providerInf.getName());
assertEquals(fUstProviderInfo1.getPid(), providerInf.getPid());
assertEquals(fUstProviderInfo1.getEvents().length, providerInf.getEvents().length);
assertEquals(fUstProviderInfo1.getLoggers().size(), providerInf.getLoggers().size());
IBaseEventInfo[] orignalEvents = fUstProviderInfo1.getEvents();
IBaseEventInfo[] resultEvents = providerInf.getEvents();
for (int i = 0; i < orignalEvents.length; i++) {
assertEquals(orignalEvents[i], resultEvents[i]);
}
List<ILoggerInfo> originalLoggers = fUstProviderInfo1.getLoggers();
List<ILoggerInfo> resultLoggers = providerInf.getLoggers();
for (int i = 0; i < originalLoggers.size(); i++) {
assertEquals(originalLoggers.get(i), resultLoggers.get(i));
}
}
/**
* Test the copy constructor.
*/
@Test
public void testUstProviderCopy2() {
try {
UstProviderInfo providerInfo = null;
new UstProviderInfo(providerInfo);
fail("null copy");
}
catch (IllegalArgumentException e) {
// Success
}
}
/**
* Run the IEventInfo[] getEvents() method test.
*/
@Test
public void testGetAndSetters() {
IUstProviderInfo fixture = new UstProviderInfo("test");
fixture.setPid(2468);
assertEquals(2468, fixture.getPid());
// add an event
IBaseEventInfo event = new BaseEventInfo("event");
fixture.addEvent(event);
// verify the stored events
IBaseEventInfo[] events = fixture.getEvents();
assertNotNull(events);
assertEquals(1, events.length);
assertNotNull(events[0]);
assertTrue(event.equals(events[0]));
// add a logger
ILoggerInfo logger = new LoggerInfo("logger");
fixture.addLogger(logger);
// verify the stored loggers
List<ILoggerInfo> loggers = fixture.getLoggers();
assertNotNull(loggers);
assertEquals(1, loggers.size());
assertNotNull(loggers.get(0));
assertTrue(logger.equals(loggers.get(0)));
}
/**
* Run the void setEvents(List<IBaseEventInfo>) method test.
*/
@Test
public void testSetEvents_1() {
UstProviderInfo fixture = new UstProviderInfo("test");
List<IBaseEventInfo> events = new LinkedList<>();
events.add(fEventInfo1);
events.add(fEventInfo2);
fixture.setEvents(events);
IBaseEventInfo[] infos = fixture.getEvents();
assertEquals(events.size(), infos.length);
for (int i = 0; i < infos.length; i++) {
assertEquals(events.get(i), infos[i]);
}
}
/**
* Run the void setLoggers(List<ILoggerInfo>) method test.
*/
@Test
public void testSetLoggers_1() {
UstProviderInfo fixture = new UstProviderInfo("test");
List<ILoggerInfo> originalLoggers = new LinkedList<>();
originalLoggers.add(fLoggerInfo1);
originalLoggers.add(fLoggerInfo2);
fixture.setLoggers(originalLoggers);
List<ILoggerInfo> resultLoggers = fixture.getLoggers();
assertEquals(originalLoggers.size(), resultLoggers.size());
for (int i = 0; i < resultLoggers.size(); i++) {
assertEquals(originalLoggers.get(i), resultLoggers.get(i));
}
}
/**
* Run the String toString() method test.
*/
@Test
public void testToString_1() {
UstProviderInfo fixture = new UstProviderInfo("test");
fixture.setPid(2468);
String result = fixture.toString();
assertEquals("[UstProviderInfo([TraceInfo(Name=test)],PID=2468,Events=None,Loggers=None)]", result);
}
/**
* Run the String toString() method test.
*/
@Test
public void testToString_2() {
String result = fUstProviderInfo2.toString();
assertEquals("[UstProviderInfo([TraceInfo(Name=myUST2)],PID=2345,Events=[BaseEventInfo([TraceInfo(Name=event1)],"
+ "type=UNKNOWN,level=TRACE_ERR,Fields=[FieldInfo([TraceInfo(Name=intfield)],type=int[FieldInfo([TraceInfo(Name=stringfield)],"
+ "type=string,Filter=intField==10)][BaseEventInfo([TraceInfo(Name=event2)],type=TRACEPOINT,level=TRACE_DEBUG)],"
+ "Loggers=[LoggerInfo([BaseLoggerInfo([TraceInfo(Name=logger1)],domain=JUL,level=LOG4J_INFO)],"
+ "State=ENABLED,levelType=LOGLEVEL_ALL)][LoggerInfo([BaseLoggerInfo([TraceInfo(Name=logger2)],domain=LOG4J,level=LEVEL_UNKNOWN)],"
+ "State=DISABLED,levelType=LOGLEVEL_ALL)])]", result);
}
// ------------------------------------------------------------------------
// equals
// ------------------------------------------------------------------------
/**
* Run the equals() method test.
*/
@Test
public void testEqualsReflexivity() {
assertTrue("equals", fUstProviderInfo1.equals(fUstProviderInfo1));
assertTrue("equals", fUstProviderInfo2.equals(fUstProviderInfo2));
assertTrue("equals", !fUstProviderInfo1.equals(fUstProviderInfo2));
assertTrue("equals", !fUstProviderInfo2.equals(fUstProviderInfo1));
}
/**
* Run the equals() method test.
*/
@Test
public void testEqualsSymmetry() {
UstProviderInfo event1 = new UstProviderInfo((UstProviderInfo)fUstProviderInfo1);
UstProviderInfo event2 = new UstProviderInfo((UstProviderInfo)fUstProviderInfo2);
assertTrue("equals", event1.equals(fUstProviderInfo1));
assertTrue("equals", fUstProviderInfo1.equals(event1));
assertTrue("equals", event2.equals(fUstProviderInfo2));
assertTrue("equals", fUstProviderInfo2.equals(event2));
}
/**
* Run the equals() method test.
*/
@Test
public void testEqualsTransivity() {
UstProviderInfo UstProvider1 = new UstProviderInfo((UstProviderInfo)fUstProviderInfo1);
UstProviderInfo UstProvider2 = new UstProviderInfo((UstProviderInfo)fUstProviderInfo1);
UstProviderInfo UstProvider3 = new UstProviderInfo((UstProviderInfo)fUstProviderInfo1);
assertTrue("equals", UstProvider1.equals(UstProvider2));
assertTrue("equals", UstProvider2.equals(UstProvider3));
assertTrue("equals", UstProvider1.equals(UstProvider3));
}
/**
* Run the equals() method test.
*/
@Test
public void testEqualsNull() {
assertTrue("equals", !fUstProviderInfo1.equals(null));
assertTrue("equals", !fUstProviderInfo2.equals(null));
}
// ------------------------------------------------------------------------
// hashCode
// ------------------------------------------------------------------------
/**
* Run the hashCode() method test.
*/
@Test
public void testHashCode() {
UstProviderInfo UstProvider1 = new UstProviderInfo((UstProviderInfo)fUstProviderInfo1);
UstProviderInfo UstProvider2 = new UstProviderInfo((UstProviderInfo)fUstProviderInfo2);
assertTrue("hashCode", fUstProviderInfo1.hashCode() == UstProvider1.hashCode());
assertTrue("hashCode", fUstProviderInfo2.hashCode() == UstProvider2.hashCode());
assertTrue("hashCode", fUstProviderInfo1.hashCode() != UstProvider2.hashCode());
assertTrue("hashCode", fUstProviderInfo2.hashCode() != UstProvider1.hashCode());
}
}