blob: e6ba4555a9452523b19b59ff350ffa69308f8011 [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.IChannelInfo;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.IDomainInfo;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.impl.DomainInfo;
import org.junit.Before;
import org.junit.Test;
/**
* The class <code>ChannelInfoTest</code> contains tests for the class
* <code>{@link DomainInfo}</code>.
*/
public class DomainInfoTest {
// ------------------------------------------------------------------------
// Test data
// ------------------------------------------------------------------------
private IDomainInfo fDomainInfo1 = null;
private IDomainInfo fDomainInfo2 = null;
private IChannelInfo fChannelInfo1 = null;
private IChannelInfo fChannelInfo2 = null;
// ------------------------------------------------------------------------
// Housekeeping
// ------------------------------------------------------------------------
/**
* Perform pre-test initialization.
*/
@Before
public void setUp() {
// Get test instances from the factory
ModelImplFactory factory = new ModelImplFactory();
fChannelInfo1 = factory.getChannel1();
fChannelInfo2 = factory.getChannel2();
fDomainInfo1 = factory.getDomainInfo1();
fDomainInfo2 = factory.getDomainInfo2();
}
// ------------------------------------------------------------------------
// Tests
// ------------------------------------------------------------------------
// ------------------------------------------------------------------------
// Constructors
// ------------------------------------------------------------------------
/**
* Run the ChannelInfo() constructor test.
*/
@Test
public void testDomainInfo() {
DomainInfo result = new DomainInfo("test");
assertNotNull(result);
assertEquals("test", result.getName());
assertEquals(0, result.getChannels().length);
}
/**
* Test the copy constructor.
*/
@Test
public void testDomainInfoCopy() {
DomainInfo channelInfo = new DomainInfo((DomainInfo)fDomainInfo1);
IChannelInfo[] orignalEvents = fDomainInfo1.getChannels();
IChannelInfo[] resultEvents = channelInfo.getChannels();
for (int i = 0; i < orignalEvents.length; i++) {
assertEquals(orignalEvents[i], resultEvents[i]);
}
}
/**
* Test the copy constructor.
*/
@Test
public void testDomainlCopy2() {
try {
DomainInfo domain = null;
new DomainInfo(domain);
fail("null copy");
}
catch (IllegalArgumentException e) {
// Success
}
}
/**
* Run the long getNumberOfSubBuffers() method test.
*/
@Test
public void testGetAndSetters() {
// Note that addChannel() has been executed in setUp()
// check get method here
assertEquals(1, fDomainInfo1.getChannels().length);
assertNotNull(fDomainInfo1.getChannels()[0]);
assertEquals(fChannelInfo1, fDomainInfo1.getChannels()[0]);
IDomainInfo domain = new DomainInfo("domain");
List<IChannelInfo> list = new LinkedList<>();
list.add(fChannelInfo1);
list.add(fChannelInfo2);
domain.setChannels(list);
IChannelInfo[] result = domain.getChannels();
assertEquals(2, result.length);
assertEquals(fChannelInfo1, result[0]);
assertEquals(fChannelInfo2, result[1]);
}
/**
* Run the String toString() method test.
*/
@Test
public void testToString_1() {
DomainInfo fixture = new DomainInfo("domain");
String result = fixture.toString();
assertEquals("[DomainInfo([TraceInfo(Name=domain)],Channels=None,Loggers=None,isKernel=false)]", result);
}
/**
* Run the String toString() method test.
*/
@Test
public void testToString_2() {
String result = fDomainInfo1.toString();
assertEquals("[DomainInfo([TraceInfo(Name=test1)],Channels=[ChannelInfo([TraceInfo(Name=channel1)],State=DISABLED,OverwriteMode=true,SubBuffersSize=13,NumberOfSubBuffers=12,SwitchTimer=10,ReadTimer=11,output=splice(),NumberOfDiscardedEvents=14,NumberOfLostPackets=15,Events=[EventInfo([BaseEventInfo([TraceInfo(Name=event1)],type=TRACEPOINT,level=TRACE_DEBUG)],State=ENABLED,levelType=LOGLEVEL_ONLY)])],Loggers=None,isKernel=false)]", result);
}
// ------------------------------------------------------------------------
// equals
// ------------------------------------------------------------------------
/**
* Run the equals() method test.
*/
@Test
public void testEqualsReflexivity() {
assertTrue("equals", fDomainInfo1.equals(fDomainInfo1));
assertTrue("equals", fDomainInfo2.equals(fDomainInfo2));
assertTrue("equals", !fDomainInfo1.equals(fDomainInfo2));
assertTrue("equals", !fDomainInfo2.equals(fDomainInfo1));
}
/**
* Run the equals() method test.
*/
@Test
public void testEqualsSymmetry() {
DomainInfo event1 = new DomainInfo((DomainInfo)fDomainInfo1);
DomainInfo event2 = new DomainInfo((DomainInfo)fDomainInfo2);
assertTrue("equals", event1.equals(fDomainInfo1));
assertTrue("equals", fDomainInfo1.equals(event1));
assertTrue("equals", event2.equals(fDomainInfo2));
assertTrue("equals", fDomainInfo2.equals(event2));
}
/**
* Run the equals() method test.
*/
@Test
public void testEqualsTransivity() {
DomainInfo channel1 = new DomainInfo((DomainInfo)fDomainInfo1);
DomainInfo channel2 = new DomainInfo((DomainInfo)fDomainInfo1);
DomainInfo channel3 = new DomainInfo((DomainInfo)fDomainInfo1);
assertTrue("equals", channel1.equals(channel2));
assertTrue("equals", channel2.equals(channel3));
assertTrue("equals", channel1.equals(channel3));
}
/**
* Run the equals() method test.
*/
@Test
public void testEqualsNull() {
assertTrue("equals", !fDomainInfo1.equals(null));
assertTrue("equals", !fDomainInfo2.equals(null));
}
// ------------------------------------------------------------------------
// hashCode
// ------------------------------------------------------------------------
/**
* Run the hashCode() method test.
*/
@Test
public void testHashCode() {
DomainInfo channel1 = new DomainInfo((DomainInfo)fDomainInfo1);
DomainInfo channel2 = new DomainInfo((DomainInfo)fDomainInfo2);
assertTrue("hashCode", fDomainInfo1.hashCode() == channel1.hashCode());
assertTrue("hashCode", fDomainInfo2.hashCode() == channel2.hashCode());
assertTrue("hashCode", fDomainInfo1.hashCode() != channel2.hashCode());
assertTrue("hashCode", fDomainInfo2.hashCode() != channel1.hashCode());
}
}