diff --git a/src/main/java/Enigma/model/Walze.java b/src/main/java/Enigma/model/Walze.java
index f12de2a19e99bdb33b4ef8ae9f4d50a6d875b105..e5e5613a35a3618c831f8861b7e2a9d74cbd0b8e 100644
--- a/src/main/java/Enigma/model/Walze.java
+++ b/src/main/java/Enigma/model/Walze.java
@@ -1,7 +1,5 @@
 package Enigma.model;
 
-import java.time.Year;
-
 /**
  * Klasse Walze
  * <p>
@@ -26,8 +24,8 @@ public class Walze {
 	 * iPositionBuchstabeRe : gibt die Position des codierten Buchstabens im Alphabet wieder.
 	 * private Character[] walze : Character-Array der Walze
 	 */
-    /*Alphawalze*/
-    private final static Character[] walzeAlpha = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
+	/*Alphawalze*/
+	private final static Character[] walzeAlpha = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
 	private Character buchstabe;
 	private int ringstellung;
 	private int walzennr;
@@ -58,12 +56,12 @@ public class Walze {
 	 */
 	private Character[] walzenNummer() {
 
-	    Character[] walzeEins =         {'E', 'K', 'M', 'F', 'L', 'G', 'D', 'Q', 'V', 'Z', 'N', 'T', 'O', 'W', 'Y', 'H', 'X', 'U', 'S', 'P', 'A', 'I', 'B', 'R', 'C', 'J'};
-		Character[] walzeZwei =         {'A', 'J', 'D', 'K', 'S', 'I', 'R', 'U', 'X', 'B', 'L', 'H', 'W', 'T', 'M', 'C', 'Q', 'G', 'Z', 'N', 'P', 'Y', 'F', 'V', 'O', 'E'};
-		Character[] walzeDrei =         {'B', 'D', 'F', 'H', 'J', 'L', 'C', 'P', 'R', 'T', 'X', 'V', 'Z', 'N', 'Y', 'E', 'I', 'W', 'G', 'A', 'K', 'M', 'U', 'S', 'Q', 'O'};
+		Character[] walzeEins = {'E', 'K', 'M', 'F', 'L', 'G', 'D', 'Q', 'V', 'Z', 'N', 'T', 'O', 'W', 'Y', 'H', 'X', 'U', 'S', 'P', 'A', 'I', 'B', 'R', 'C', 'J'};
+		Character[] walzeZwei = {'A', 'J', 'D', 'K', 'S', 'I', 'R', 'U', 'X', 'B', 'L', 'H', 'W', 'T', 'M', 'C', 'Q', 'G', 'Z', 'N', 'P', 'Y', 'F', 'V', 'O', 'E'};
+		Character[] walzeDrei = {'B', 'D', 'F', 'H', 'J', 'L', 'C', 'P', 'R', 'T', 'X', 'V', 'Z', 'N', 'Y', 'E', 'I', 'W', 'G', 'A', 'K', 'M', 'U', 'S', 'Q', 'O'};
 
 		Character[] walzeVier = {'E', 'S', 'O', 'V', 'P', 'Z', 'J', 'A', 'Y', 'Q', 'U', 'I', 'R', 'H', 'X', 'L', 'N', 'F', 'T', 'G', 'K', 'D', 'C', 'M', 'W', 'B'};
-		Character[] walzeFuenf ={'V', 'Z', 'B', 'R', 'G', 'I', 'T', 'Y', 'U', 'P', 'S', 'D', 'N', 'H', 'L', 'X', 'A', 'W', 'M', 'J', 'Q', 'O', 'F', 'E', 'C', 'K'};
+		Character[] walzeFuenf = {'V', 'Z', 'B', 'R', 'G', 'I', 'T', 'Y', 'U', 'P', 'S', 'D', 'N', 'H', 'L', 'X', 'A', 'W', 'M', 'J', 'Q', 'O', 'F', 'E', 'C', 'K'};
 
 		switch (this.walzennr) {
 			case 1:
@@ -90,10 +88,10 @@ public class Walze {
 	//walzenPosition() return int => Gibt die aktuelle Position des Buchstabens zurück
 	public char walzenPosition() {
 
-        /*Alphabetswalze*/
-        Character[] walzeAlphabeth = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
+		/*Alphabetswalze*/
+		Character[] walzeAlphabeth = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
 
-        return walzeAlphabeth[iPositionBuchstabe];
+		return walzeAlphabeth[iPositionBuchstabe];
 	}
 
 
@@ -132,13 +130,13 @@ public class Walze {
 			iPositionBuchstabe = 0;
 		} else {
 			iPositionBuchstabe += 1;
-    	}
+		}
 
 		if (iPositionBuchstabe == getRingstellung()) {
 			checkRing = true;
 		} else {
 			checkRing = false;
-    	}
+		}
 
 		return checkRing;
 	}
@@ -154,14 +152,14 @@ public class Walze {
 	 * @return chiffrierterBuchstabe : Character : chiffrierter Buchstabe
 	 */
 	public char codiere(char buchstabe) {
-        for(int i = 0; i < walzeAlpha.length; i++) {
-            if(walzeAlpha[i].equals(buchstabe)) {
-                buchstabe = walzenNummer()[i];
-                break;
-            }
-        }
-
-        return buchstabe;
+		for (int i = 0; i < walzeAlpha.length; i++) {
+			if (walzeAlpha[i].equals(buchstabe)) {
+				buchstabe = walzenNummer()[i];
+				break;
+			}
+		}
+
+		return buchstabe;
 	}
 
 
@@ -176,12 +174,12 @@ public class Walze {
 	 */
 	public char codiere2(char buchstabe) {
 
-	    for(int i = 0; i < walzenNummer().length; i++) {
-            if(walzenNummer()[i].equals(buchstabe)) {
-                buchstabe = walzeAlpha[i];
-                break;
-            }
-        }
+		for (int i = 0; i < walzenNummer().length; i++) {
+			if (walzenNummer()[i].equals(buchstabe)) {
+				buchstabe = walzeAlpha[i];
+				break;
+			}
+		}
 
 		return buchstabe;
 	}
@@ -207,17 +205,16 @@ public class Walze {
 
 		if (Character.isLetter(buchstabe)) {
 			this.buchstabe = Character.toUpperCase(buchstabe);
-			for(int i = 0; i < 25; i++) {
-			    if(walzeAlpha[i].equals(buchstabe)) {
-                    this.iPositionBuchstabe = i;
-                }
-            }
+			for (int i = 0; i < 25; i++) {
+				if (walzeAlpha[i].equals(buchstabe)) {
+					this.iPositionBuchstabe = i;
+				}
+			}
 		} else {
 			this.buchstabe = 'A';
 		}
 	}
 
-
 	//TODO: ??? Brauchen wir Setter, wo findet Überprüfung der Walzennr. statt.
 
 	/**
diff --git a/src/test/java/Enigma/model/HardwareTest.java b/src/test/java/Enigma/model/HardwareTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..baa1f3fbc3f7b7dd7d43d8bf4dd2254355342331
--- /dev/null
+++ b/src/test/java/Enigma/model/HardwareTest.java
@@ -0,0 +1,64 @@
+package Enigma.model;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class HardwareTest {
+
+	@Test
+	public void tippeBuchstabe() {
+		Hardware h = new Hardware();
+		h.setReflektor(new Reflektor());
+		h.setSteckbrett(new Steckbrett());
+		h.setWalzen(1, 1, 1);
+		h.setWalzen(2, 2, 1);
+		h.setWalzen(3, 3, 1);
+
+		/*
+	        A = E = S = G = Y = O = Y = O
+            I = V = Y = Q = O = Z = S = S
+            F = G = R = W = K = U = H = P
+
+        In  S   1   2   3   R   3   2   1   S
+        A       E   D   H   X   S   Z   J
+        J       Z   E   J   B   D   K   N
+
+        Walze nach der Chiffrierung
+        Alphabet    {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
+        Steckbrett  {'B', 'G', 'D', 'F'}
+        Steckbrett  {'G', 'B', 'F', 'F'}
+        Walze 1     {'E', 'K', 'M', 'F', 'L', 'G', 'D', 'Q', 'V', 'Z', 'N', 'T', 'O', 'W', 'Y', 'H', 'X', 'U', 'S', 'P', 'A', 'I', 'B', 'R', 'C', 'J'};
+		Walze 2     {'A', 'J', 'D', 'K', 'S', 'I', 'R', 'U', 'X', 'B', 'L', 'H', 'W', 'T', 'M', 'C', 'Q', 'G', 'Z', 'N', 'P', 'Y', 'F', 'V', 'O', 'E'};
+		Walze 3     {'B', 'D', 'F', 'H', 'J', 'L', 'C', 'P', 'R', 'T', 'X', 'V', 'Z', 'N', 'Y', 'E', 'I', 'W', 'G', 'A', 'K', 'M', 'U', 'S', 'Q', 'O'};
+        Reflektor   {'E', 'J', 'M', 'Z', 'A', 'L', 'Y', 'X', 'V', 'B', 'W', 'F', 'C', 'R', 'Q', 'U', 'O', 'N', 'T', 'S', 'P', 'I', 'K', 'H', 'G', 'D'};
+		*/
+
+		char result = h.tippeBuchstabe('A');
+		Assert.assertEquals("Codiere: Erwartet O, erhalten "+ result, 'O', result);
+		result = h.tippeBuchstabe('I');
+		Assert.assertEquals("Codiere: Erwartet S, erhalten "+ result, 'S', result);
+		result = h.tippeBuchstabe('F');
+		Assert.assertEquals("Codiere: Erwartet P, erhalten "+ result, 'P', result);
+
+		result = h.tippeBuchstabe('O');
+		Assert.assertEquals("Decodiere: Erwartet A, erhalten "+ result, 'A', result);
+		result = h.tippeBuchstabe('S');
+		Assert.assertEquals("Decodiere: Erwartet I, erhalten "+ result, 'I', result);
+		result = h.tippeBuchstabe('P');
+		Assert.assertEquals("Decodiere: Erwartet F, erhalten "+ result, 'F', result);
+
+		h.getSteckbrett().setzeVertauschung('B', 'G');
+		h.getSteckbrett().setzeVertauschung('D', 'F');
+		h.getSteckbrett().setzeVertauschung('I', 'L');
+		h.getSteckbrett().setzeVertauschung('M', 'Q');
+		h.getSteckbrett().setzeVertauschung('T', 'X');
+
+		result = h.tippeBuchstabe('I');
+		Assert.assertEquals("Codiere: Erwartet F, erhalten "+ result, 'F', result);
+
+		result = h.tippeBuchstabe('F');
+		Assert.assertEquals("Codiere: Erwartet I, erhalten "+ result, 'I', result);
+	}
+}
\ No newline at end of file
diff --git a/src/test/java/Enigma/model/ReflektorTest.java b/src/test/java/Enigma/model/ReflektorTest.java
index dbaaa528d98b87f3e89748c5ad7b5a67108d484c..255e2ff280713b19c888c0f199ad07420fb2130b 100644
--- a/src/test/java/Enigma/model/ReflektorTest.java
+++ b/src/test/java/Enigma/model/ReflektorTest.java
@@ -14,12 +14,6 @@ public class ReflektorTest {
 		Assert.assertEquals('X', r.codiere('H'));
 		Assert.assertEquals('O', r.codiere('Q'));
 		Assert.assertEquals('I', r.codiere('V'));
-		//Assert.assertNull(null, r.codiere(null));
-	}
-
-	@Test
-	public void codiere2() {
-		Reflektor r = new Reflektor();
 		Assert.assertEquals('A', r.codiere('E'));
 		Assert.assertEquals('D', r.codiere('Z'));
 		Assert.assertEquals('H', r.codiere('X'));
diff --git a/src/test/java/Enigma/model/SteckbrettTest.java b/src/test/java/Enigma/model/SteckbrettTest.java
index 114294f23c5326f9c9fea018cb79d7ef2db5da25..5109e276e4ad98c56b768aa44f7a811516f3e456 100644
--- a/src/test/java/Enigma/model/SteckbrettTest.java
+++ b/src/test/java/Enigma/model/SteckbrettTest.java
@@ -24,13 +24,4 @@ public class SteckbrettTest {
 		Assert.assertEquals('H', sb.codiere('C'));
 		Assert.assertEquals('G', sb.codiere('A'));
 	}
-
-	@Test
-	public void codiere2() {
-		Steckbrett sb = new Steckbrett();
-		sb.setzeVertauschung('A', 'G');
-		sb.setzeVertauschung('C', 'H');
-		Assert.assertEquals('C', sb.codiere2('H'));
-		Assert.assertEquals('A', sb.codiere2('G'));
-	}
 }
\ No newline at end of file
diff --git a/src/test/java/Enigma/model/WalzeTest.java b/src/test/java/Enigma/model/WalzeTest.java
index 5b526b615288b9351fa276f90a3763ed3195d51f..3379019d7913fee1ba2e072b3cc68a6fdb792045 100644
--- a/src/test/java/Enigma/model/WalzeTest.java
+++ b/src/test/java/Enigma/model/WalzeTest.java
@@ -8,38 +8,36 @@ import static org.junit.Assert.*;
 public class WalzeTest {
 
 	@Test
-	public void setzeNotch() {
-		Walze w = new Walze(1);
-		w.setzeNotch('G');
-		Assert.assertEquals('G', w.wlazenPosition());
+	public void setRingstellung() {
+		Walze w = new Walze(1, 1);
+		Assert.assertEquals('A', w.walzenPosition());
 	}
 
 	@Test
 	public void dreheWalze() {
-		Walze w = new Walze(1);
-		w.setzeNotch('G');
-		w.dreheWalze();
-		Assert.assertEquals('H', w.wlazenPosition());
+		Walze w = new Walze(1, 3);
+		assertFalse("false erwartet, true geliefert", w.dreheWalze());
+		char temp = w.walzenPosition();
+		Assert.assertEquals("B erwartet, " + temp + " zurück gegeben", 'B', temp);
 	}
 
 	@Test
 	public void walzenPoition() {
-		Walze w = new Walze(1);
-		w.setzeNotch('G');
-		Assert.assertEquals('G', w.wlazenPosition());
+		Walze w = new Walze(1, 1);
+		Assert.assertEquals('A', w.walzenPosition());
 	}
 
 	@Test
 	public void codiere() {
-		Walze w = new Walze(1);
-		w.setzeNotch('A');
-		Assert.assertEquals('E', w.codiere('A'));
+		Walze w = new Walze(1, 1);
+		char result = w.codiere('G');
+		Assert.assertEquals("Erwartet D erhalten " + result, 'D', result);
 	}
 
 	@Test
 	public void codiere2() {
-		Walze w = new Walze(1);
-		w.setzeNotch('A');
-		Assert.assertEquals('A', w.codiere('E'));
+		Walze w = new Walze(1, 1);
+		char result = w.codiere2('E');
+		Assert.assertEquals("Erwartet A erhalten " + result, 'A', result);
 	}
 }
\ No newline at end of file