Files
JIMRI/java/test/jmri/swing/SystemNameValidatorTest.java
2026-06-17 14:00:51 +02:00

91 lines
3.4 KiB
Java

package jmri.swing;
import org.junit.jupiter.api.*;
import static org.junit.Assert.*;
import com.alexandriasoftware.swing.JInputValidatorPreferences;
import com.alexandriasoftware.swing.Validation;
import javax.swing.JTextField;
import javax.swing.text.JTextComponent;
import jmri.InstanceManager;
import jmri.SensorManager;
import jmri.util.JUnitUtil;
/**
*
* @author Randall Wood Copyright 2019
*/
public class SystemNameValidatorTest {
@BeforeEach
public void setUp() {
JUnitUtil.setUp();
JUnitUtil.initInternalSensorManager();
}
@AfterEach
public void tearDown() {
JUnitUtil.tearDown();
}
/**
* Test of getValidation method, of class SystemNameValidator.
*/
@Test
public void testGetValidation() {
JTextComponent component = new JTextField();
SensorManager manager = InstanceManager.getDefault(SensorManager.class);
SystemNameValidator instance = new SystemNameValidator(component, manager);
JInputValidatorPreferences preferences = JInputValidatorPreferences.getPreferences();
instance.setRequired(true);
// test empty string with required == true
component.setText("");
assertEquals(Validation.Type.WARNING, instance.getValidation(component, preferences).getType());
// test invalid name with required == true
component.setText("invalid");
assertEquals(Validation.Type.DANGER, instance.getValidation(component, preferences).getType());
// test prefix with required == true
component.setText(manager.getSystemNamePrefix());
assertEquals(Validation.Type.WARNING, instance.getValidation(component, preferences).getType());
// test valid name with required == true
component.setText("IS123");
assertEquals(Validation.Type.SUCCESS, instance.getValidation(component, preferences).getType());
instance.setRequired(false);
// test empty string with required == false
component.setText("");
assertEquals(Validation.Type.NONE, instance.getValidation(component, preferences).getType());
// test invalid name with required == false
component.setText("invalid");
assertEquals(Validation.Type.DANGER, instance.getValidation(component, preferences).getType());
// test prefix with required == false
component.setText(manager.getSystemNamePrefix());
assertEquals(Validation.Type.WARNING, instance.getValidation(component, preferences).getType());
// test valid name with required == false
component.setText("IS123");
assertEquals(Validation.Type.SUCCESS, instance.getValidation(component, preferences).getType());
}
/**
* Test of isRequired and setRequired methods, of class SystemNameValidator.
*/
@Test
public void testIsRequired() {
JTextComponent component = new JTextField();
SensorManager manager = InstanceManager.getDefault(SensorManager.class);
SystemNameValidator instance = new SystemNameValidator(component, manager);
assertFalse(instance.isRequired());
instance.setRequired(false);
assertFalse(instance.isRequired());
instance.setRequired(true);
assertTrue(instance.isRequired());
instance.setRequired(true);
assertTrue(instance.isRequired());
instance.setRequired(false);
assertFalse(instance.isRequired());
}
}