package io.github.jgkamat.ViPaint; import io.github.jgkamat.ViPaint.Canvas.CursorCanvas; import io.github.jgkamat.ViPaint.Handlers.SettingManager; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import io.github.jgkamat.ViPaint.VimBar.CommandManager; import io.github.jgkamat.ViPaint.VimBar.VimBar; import javafx.scene.paint.Color; import org.junit.Test; import java.util.Random; /** * A test class to test various commands */ public class CommandTests { /** * A test that will check to see if the setting manager is working properly */ @Test public void testColorSwitch() { CommandManager manager = new CommandManager(null, null, null, null); Color def = (Color) SettingManager.get("color"); manager.parseCommand("let color=SKYBLUE"); assertEquals(Color.SKYBLUE, SettingManager.get("color")); manager.parseCommand("let color = MAROON"); assertEquals(Color.MAROON, SettingManager.get("color")); manager.parseCommand("let color = MAGENTA"); assertEquals(Color.MAGENTA, SettingManager.get("color")); } /** * A test that will test if ints are being stored correctly */ @Test public void testIntSwitch() { CommandManager manager = new CommandManager(null, null, null, null); SettingManager.entrySet().stream().filter((keyVal) -> keyVal.getValue() instanceof Integer) .forEach((keyVal) -> testIntHelper(keyVal.getKey(), manager)); } /** * A helper method to test if int values are being changed * @param key Key to test * @param manager CommandManager to use parsing with */ private void testIntHelper(String key, CommandManager manager) { Random r = new Random(); int toStore = r.nextInt(999999); // Don't select the same value if (toStore == (int) SettingManager.get(key)) { testIntHelper(key, manager); return; } manager.parseCommand("let " + key + "=" + toStore); assertEquals(toStore, (int) SettingManager.get(key)); manager.parseCommand("let " + key + " = " + (toStore + 2)); assertEquals(toStore + 2, (int) SettingManager.get(key)); manager.parseCommand("let " + key + " = " + (toStore + 5)); assertEquals(toStore + 5, (int) SettingManager.get(key)); // Same value as last time manager.parseCommand("let " + key + " = " + (toStore + 5)); assertEquals(toStore + 5, (int) SettingManager.get(key)); } }