Files
JIMRI/java/test/jmri/jmrit/display/BlockContentsIconTest.java
T
2026-06-17 14:00:51 +02:00

143 lines
4.4 KiB
Java

package jmri.jmrit.display;
import java.io.IOException;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import javax.swing.JFrame;
import jmri.BlockManager;
import jmri.jmrit.catalog.NamedIcon;
import jmri.util.JUnitAppender;
import jmri.util.JUnitUtil;
import jmri.util.JmriJFrame;
import jmri.util.junit.annotations.DisabledIfHeadless;
import jmri.util.junit.annotations.ToDo;
import org.jdom2.JDOMException;
import org.junit.jupiter.api.*;
import org.netbeans.jemmy.QueueTool;
import org.slf4j.event.Level;
/**
* Test simple functioning of BlockContentsIcon
*
* @author Paul Bender Copyright (C) 2016
*/
@DisabledIfHeadless
public class BlockContentsIconTest extends PositionableLabelTest {
@Test
public void testNamedIconCtor() {
NamedIcon icon = new NamedIcon("resources/icons/redTransparentBox.gif", "box"); // 13x13
BlockContentsIcon bci = new BlockContentsIcon(icon, editor);
bci.setIcon(icon);
assertNotNull(bci, "BlockContentsIcon Constructor");
}
@Test
public void testShowRosterEntry() throws IOException, JDOMException {
JFrame jf = new JmriJFrame();
jf.setTitle("Expect Roster Entry");
jf.getContentPane().setLayout(new java.awt.FlowLayout());
jf.getContentPane().add(to);
jf.getContentPane().add(new javax.swing.JLabel("| Expect roster entry: "));
jmri.jmrit.roster.RosterEntry re = jmri.jmrit.roster.RosterEntry.fromFile(new java.io.File("java/test/jmri/jmrit/roster/ACL1012-Schema.xml"));
jmri.InstanceManager.getDefault(BlockManager.class).provide("IB1").setValue(re);
new QueueTool().waitEmpty();
jf.pack();
jf.setVisible(true);
new QueueTool().waitEmpty();
assertFalse(JUnitAppender.unexpectedMessageSeen(Level.WARN), "No Warn Level or higher Messages");
jf.setVisible(false);
JUnitUtil.dispose(jf);
}
@Test
public void testShowIdTag() {
JFrame jf = new JmriJFrame();
jf.setTitle("Expect Roster Entry");
jf.getContentPane().setLayout(new java.awt.FlowLayout());
jf.getContentPane().add(to);
jf.getContentPane().add(new javax.swing.JLabel("| Expect roster entry: "));
jmri.IdTag tag = new jmri.implementation.DefaultIdTag("1234");
jmri.InstanceManager.getDefault(BlockManager.class).provide("IB1").setValue(tag);
new QueueTool().waitEmpty();
jf.pack();
jf.setVisible(true);
new QueueTool().waitEmpty();
assertFalse(JUnitAppender.unexpectedMessageSeen(Level.WARN), "No Warn Level or higher Messages");
assertNotNull(jmri.util.swing.JemmyUtil.getLabelWithText(jf.getTitle(), tag.getDisplayName()),
"Label with correct text value");
jf.setVisible(false);
JUnitUtil.dispose(jf);
}
@Test
@Override
@ToDo("The test in the parent class fails if there is no icon set")
public void testGetAndSetScale() {
// the test in the parent class fails if there is no icon for the
// blockcontents.
NamedIcon icon = new NamedIcon("resources/icons/redTransparentBox.gif", "box"); // 13x13
((BlockContentsIcon) p).setIcon(icon);
assertEquals(1.0D, p.getScale(), 0.0, "Default Scale");
p.setScale(5.0D);
assertEquals(5.0D, p.getScale(), 0.0, "Scale");
}
@Test
@Override
@ToDo("The test in the parent class fails if there is no icon set")
public void testGetAndSetRotationDegrees() {
NamedIcon icon = new NamedIcon("resources/icons/redTransparentBox.gif", "box"); // 13x13
((BlockContentsIcon) p).setIcon(icon);
p.rotate(50);
assertEquals(50, p.getDegrees(), "Degrees");
}
@BeforeEach
@Override
public void setUp() {
super.setUp();
JUnitUtil.initConfigureManager();
jmri.Block block = jmri.InstanceManager.getDefault(BlockManager.class).provideBlock("IB1");
BlockContentsIcon bci = new BlockContentsIcon("foo", editor);
bci.setBlock(new jmri.NamedBeanHandle<>("IB1", block));
// set the memory value for testClone in PositionableTestBase
bci.setMemory("IB1");
p = to = bci;
}
@AfterEach
@Override
public void tearDown() {
to = null;
super.tearDown();
}
}