| 
					
				 | 
			
			
				@@ -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());
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}
 
			 |