|
@@ -0,0 +1,121 @@
|
|
|
+package de.mcs.tools.sps.mnemonic;
|
|
|
+
|
|
|
+import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
|
+import static org.junit.jupiter.api.Assertions.assertFalse;
|
|
|
+import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
|
+
|
|
|
+import org.junit.jupiter.api.Assertions;
|
|
|
+import org.junit.jupiter.api.Test;
|
|
|
+
|
|
|
+import de.mcs.tools.sps.exceptions.IllegalArgument;
|
|
|
+import de.mcs.tools.sps.exceptions.SyntaxError;
|
|
|
+
|
|
|
+class TestSUBROUTINE {
|
|
|
+
|
|
|
+ private static final int BYTE_VALUE_CASB = 0xE1;
|
|
|
+ private final String MNEMONIC_CASB = "CASB";
|
|
|
+ private static final int BYTE_VALUE_DFSB = 0xE8;
|
|
|
+ private final String MNEMONIC_DFSB = "DFSB";
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void testMnemonicCASB() throws SyntaxError {
|
|
|
+ CASB mnemonic = new CASB(MNEMONIC_CASB + " 0x01");
|
|
|
+ mnemonic.checkArgument();
|
|
|
+ assertEquals(BYTE_VALUE_CASB, mnemonic.getByte());
|
|
|
+ assertTrue(mnemonic.hasArgument());
|
|
|
+ assertFalse(mnemonic.isUsingPage());
|
|
|
+
|
|
|
+ mnemonic = new CASB(MNEMONIC_CASB + " 0x02");
|
|
|
+ mnemonic.checkArgument();
|
|
|
+ assertEquals(BYTE_VALUE_CASB + 0x01, mnemonic.getByte());
|
|
|
+
|
|
|
+ mnemonic = new CASB(MNEMONIC_CASB + " 0x06");
|
|
|
+ mnemonic.checkArgument();
|
|
|
+ assertEquals(BYTE_VALUE_CASB + 0x05, mnemonic.getByte());
|
|
|
+
|
|
|
+ mnemonic = new CASB(MNEMONIC_CASB + " :test");
|
|
|
+ mnemonic.checkArgument();
|
|
|
+ assertTrue(mnemonic.isLabel());
|
|
|
+
|
|
|
+ Assertions.assertThrows(SyntaxError.class, () -> {
|
|
|
+ CASB mnemonic1 = new CASB(MNEMONIC_CASB);
|
|
|
+ mnemonic1.checkArgument();
|
|
|
+ });
|
|
|
+
|
|
|
+ Assertions.assertThrows(IllegalArgument.class, () -> {
|
|
|
+ CASB mnemonic1 = new CASB(MNEMONIC_CASB + " 0x00");
|
|
|
+ mnemonic1.checkArgument();
|
|
|
+ });
|
|
|
+
|
|
|
+ Assertions.assertThrows(IllegalArgument.class, () -> {
|
|
|
+ CASB mnemonic1 = new CASB(MNEMONIC_CASB + " 0x07");
|
|
|
+ mnemonic1.checkArgument();
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void testMnemonicDFSB() throws SyntaxError {
|
|
|
+ DFSB mnemonic = new DFSB(MNEMONIC_DFSB + " 0x01");
|
|
|
+ mnemonic.checkArgument();
|
|
|
+ assertEquals(BYTE_VALUE_DFSB, mnemonic.getByte());
|
|
|
+ assertTrue(mnemonic.hasArgument());
|
|
|
+ assertFalse(mnemonic.isUsingPage());
|
|
|
+
|
|
|
+ mnemonic = new DFSB(MNEMONIC_DFSB + " 0x02");
|
|
|
+ mnemonic.checkArgument();
|
|
|
+ assertEquals(BYTE_VALUE_DFSB + 0x01, mnemonic.getByte());
|
|
|
+
|
|
|
+ mnemonic = new DFSB(MNEMONIC_DFSB + " 0x06");
|
|
|
+ mnemonic.checkArgument();
|
|
|
+ assertEquals(BYTE_VALUE_DFSB + 0x05, mnemonic.getByte());
|
|
|
+
|
|
|
+ mnemonic = new DFSB(MNEMONIC_DFSB + " :test");
|
|
|
+ mnemonic.checkArgument();
|
|
|
+ assertTrue(mnemonic.isLabel());
|
|
|
+
|
|
|
+ Assertions.assertThrows(SyntaxError.class, () -> {
|
|
|
+ DFSB mnemonic1 = new DFSB(MNEMONIC_DFSB);
|
|
|
+ mnemonic1.checkArgument();
|
|
|
+ });
|
|
|
+
|
|
|
+ Assertions.assertThrows(IllegalArgument.class, () -> {
|
|
|
+ DFSB mnemonic1 = new DFSB(MNEMONIC_DFSB + " 0x00");
|
|
|
+ mnemonic1.checkArgument();
|
|
|
+ });
|
|
|
+
|
|
|
+ Assertions.assertThrows(IllegalArgument.class, () -> {
|
|
|
+ DFSB mnemonic1 = new DFSB(MNEMONIC_DFSB + " 0x07");
|
|
|
+ mnemonic1.checkArgument();
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void testMnemonicCASBFactory() throws SyntaxError {
|
|
|
+ Mnemonic mnemonic = MnemonicFactory.getMnemonic(MNEMONIC_CASB + " 0x01", 0);
|
|
|
+ assertEquals(CASB.class, mnemonic.getClass());
|
|
|
+
|
|
|
+ Assertions.assertThrows(SyntaxError.class, () -> {
|
|
|
+ MnemonicFactory.getMnemonic(MNEMONIC_CASB, 0);
|
|
|
+ });
|
|
|
+
|
|
|
+ mnemonic = MnemonicFactory.getMnemonic(MNEMONIC_CASB + " 0x02", 0);
|
|
|
+ assertEquals(BYTE_VALUE_CASB + 0x01, mnemonic.getByte());
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void testMnemonicDFSBFactory() throws SyntaxError {
|
|
|
+ Mnemonic mnemonic = MnemonicFactory.getMnemonic(MNEMONIC_DFSB + " 0x01", 0);
|
|
|
+ assertEquals(DFSB.class, mnemonic.getClass());
|
|
|
+
|
|
|
+ Assertions.assertThrows(SyntaxError.class, () -> {
|
|
|
+ MnemonicFactory.getMnemonic(MNEMONIC_DFSB, 0);
|
|
|
+ });
|
|
|
+
|
|
|
+ mnemonic = MnemonicFactory.getMnemonic(MNEMONIC_DFSB + " 0x02", 0);
|
|
|
+ assertEquals(BYTE_VALUE_DFSB + 0x01, mnemonic.getByte());
|
|
|
+
|
|
|
+ }
|
|
|
+}
|