From b04cb71abc4cd84e429e487c5f9868940dd512d3 Mon Sep 17 00:00:00 2001 From: Christian Baltzer Date: Sun, 14 Jul 2019 15:53:53 +0200 Subject: [PATCH 1/8] init --- .../java/ugsbo/com/buchhaltung/Auswertung.java | 10 ++++++++++ src/main/java/ugsbo/com/buchhaltung/Block.java | 13 +++++++++++++ .../java/ugsbo/com/buchhaltung/Blockchain.java | 10 ++++++++++ .../java/ugsbo/com/buchhaltung/Register.java | 5 +++++ .../com/ugsbo/Buchhaltung/Test_Auswertung.java | 17 +++++++++++++++++ .../com/ugsbo/Buchhaltung/Test_Blockchain.java | 17 +++++++++++++++++ .../com/ugsbo/Buchhaltung/Test_Register.java | 17 +++++++++++++++++ 7 files changed, 89 insertions(+) create mode 100644 src/main/java/ugsbo/com/buchhaltung/Auswertung.java create mode 100644 src/main/java/ugsbo/com/buchhaltung/Block.java create mode 100644 src/main/java/ugsbo/com/buchhaltung/Blockchain.java create mode 100644 src/main/java/ugsbo/com/buchhaltung/Register.java create mode 100644 src/test/java/com/ugsbo/Buchhaltung/Test_Auswertung.java create mode 100644 src/test/java/com/ugsbo/Buchhaltung/Test_Blockchain.java create mode 100644 src/test/java/com/ugsbo/Buchhaltung/Test_Register.java diff --git a/src/main/java/ugsbo/com/buchhaltung/Auswertung.java b/src/main/java/ugsbo/com/buchhaltung/Auswertung.java new file mode 100644 index 0000000..a11f190 --- /dev/null +++ b/src/main/java/ugsbo/com/buchhaltung/Auswertung.java @@ -0,0 +1,10 @@ +package ugsbo.com.buchhaltung; + +public class Auswertung { + + public static void main(String[] args) { + // TODO Auto-generated method stub + + } + +} diff --git a/src/main/java/ugsbo/com/buchhaltung/Block.java b/src/main/java/ugsbo/com/buchhaltung/Block.java new file mode 100644 index 0000000..07a00cd --- /dev/null +++ b/src/main/java/ugsbo/com/buchhaltung/Block.java @@ -0,0 +1,13 @@ +package ugsbo.com.buchhaltung; + +public class Block { + + String data; + Block vorher; + + + public Block() { + + } + +} diff --git a/src/main/java/ugsbo/com/buchhaltung/Blockchain.java b/src/main/java/ugsbo/com/buchhaltung/Blockchain.java new file mode 100644 index 0000000..1cfc458 --- /dev/null +++ b/src/main/java/ugsbo/com/buchhaltung/Blockchain.java @@ -0,0 +1,10 @@ +package ugsbo.com.buchhaltung; + +public class Blockchain { + + + public Blockchain() { + + } + +} diff --git a/src/main/java/ugsbo/com/buchhaltung/Register.java b/src/main/java/ugsbo/com/buchhaltung/Register.java new file mode 100644 index 0000000..6ff9056 --- /dev/null +++ b/src/main/java/ugsbo/com/buchhaltung/Register.java @@ -0,0 +1,5 @@ +package ugsbo.com.buchhaltung; + +public class Register { + +} diff --git a/src/test/java/com/ugsbo/Buchhaltung/Test_Auswertung.java b/src/test/java/com/ugsbo/Buchhaltung/Test_Auswertung.java new file mode 100644 index 0000000..f654951 --- /dev/null +++ b/src/test/java/com/ugsbo/Buchhaltung/Test_Auswertung.java @@ -0,0 +1,17 @@ +package com.ugsbo.Buchhaltung; + +import static org.junit.Assert.*; +import org.junit.Before; +import org.junit.Test; + +public class Test_Auswertung { + + @Before + public void setUp() throws Exception {} + + @Test + public void test() { + fail("Not yet implemented"); + } + +} diff --git a/src/test/java/com/ugsbo/Buchhaltung/Test_Blockchain.java b/src/test/java/com/ugsbo/Buchhaltung/Test_Blockchain.java new file mode 100644 index 0000000..cf4d128 --- /dev/null +++ b/src/test/java/com/ugsbo/Buchhaltung/Test_Blockchain.java @@ -0,0 +1,17 @@ +package com.ugsbo.Buchhaltung; + +import static org.junit.Assert.*; +import org.junit.Before; +import org.junit.Test; + +public class Test_Blockchain { + + @Before + public void setUp() throws Exception {} + + @Test + public void test() { + fail("Not yet implemented"); + } + +} diff --git a/src/test/java/com/ugsbo/Buchhaltung/Test_Register.java b/src/test/java/com/ugsbo/Buchhaltung/Test_Register.java new file mode 100644 index 0000000..92b0cc4 --- /dev/null +++ b/src/test/java/com/ugsbo/Buchhaltung/Test_Register.java @@ -0,0 +1,17 @@ +package com.ugsbo.Buchhaltung; + +import static org.junit.Assert.*; +import org.junit.Before; +import org.junit.Test; + +public class Test_Register { + + @Before + public void setUp() throws Exception {} + + @Test + public void test() { + fail("Not yet implemented"); + } + +} From 75440479dd05ae79b79b594b847c850a0c371609 Mon Sep 17 00:00:00 2001 From: Christian Baltzer Date: Sun, 14 Jul 2019 16:10:35 +0200 Subject: [PATCH 2/8] Tests Blockchain --- .../java/ugsbo/com/buchhaltung/Block.java | 9 +++-- .../ugsbo/com/buchhaltung/Blockchain.java | 15 ++++++++ .../java/ugsbo/com/buchhaltung/Register.java | 5 --- .../ugsbo/Buchhaltung/Test_Blockchain.java | 38 +++++++++++++++++-- .../com/ugsbo/Buchhaltung/Test_Register.java | 17 --------- 5 files changed, 55 insertions(+), 29 deletions(-) delete mode 100644 src/main/java/ugsbo/com/buchhaltung/Register.java delete mode 100644 src/test/java/com/ugsbo/Buchhaltung/Test_Register.java diff --git a/src/main/java/ugsbo/com/buchhaltung/Block.java b/src/main/java/ugsbo/com/buchhaltung/Block.java index 07a00cd..e51464a 100644 --- a/src/main/java/ugsbo/com/buchhaltung/Block.java +++ b/src/main/java/ugsbo/com/buchhaltung/Block.java @@ -2,12 +2,13 @@ package ugsbo.com.buchhaltung; public class Block { - String data; + int data; + int kontostand; Block vorher; - public Block() { - + public Block(int Data) { + data = Data; + vorher = null; } - } diff --git a/src/main/java/ugsbo/com/buchhaltung/Blockchain.java b/src/main/java/ugsbo/com/buchhaltung/Blockchain.java index 1cfc458..427346c 100644 --- a/src/main/java/ugsbo/com/buchhaltung/Blockchain.java +++ b/src/main/java/ugsbo/com/buchhaltung/Blockchain.java @@ -2,9 +2,24 @@ package ugsbo.com.buchhaltung; public class Blockchain { + Block erster; + public Blockchain() { + erster = new Block(0); + } + + + public void add(int eingabe) { + // TODO Auto-generated method stub } + + public int kontostand() { + // TODO Auto-generated method stub + return 0; + } + + } diff --git a/src/main/java/ugsbo/com/buchhaltung/Register.java b/src/main/java/ugsbo/com/buchhaltung/Register.java deleted file mode 100644 index 6ff9056..0000000 --- a/src/main/java/ugsbo/com/buchhaltung/Register.java +++ /dev/null @@ -1,5 +0,0 @@ -package ugsbo.com.buchhaltung; - -public class Register { - -} diff --git a/src/test/java/com/ugsbo/Buchhaltung/Test_Blockchain.java b/src/test/java/com/ugsbo/Buchhaltung/Test_Blockchain.java index cf4d128..ee2d14a 100644 --- a/src/test/java/com/ugsbo/Buchhaltung/Test_Blockchain.java +++ b/src/test/java/com/ugsbo/Buchhaltung/Test_Blockchain.java @@ -3,15 +3,47 @@ package com.ugsbo.Buchhaltung; import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; +import ugsbo.com.buchhaltung.Blockchain; public class Test_Blockchain { + public Blockchain Workingobjekt; + @Before - public void setUp() throws Exception {} + public void setUp() throws Exception { + Workingobjekt = new Blockchain(); + } @Test - public void test() { - fail("Not yet implemented"); + public void hinzufügen() { + int eingabe = 500; + int ergebnis; + + Workingobjekt.add(eingabe); + ergebnis = Workingobjekt.kontostand(); + + assertEquals("eingabe und Ergebnis sind gleich", eingabe, ergebnis); + } + + @Test + public void hinzufügenNegativ() { + int eingabe = -500; + int ergebnis; + + Workingobjekt.add(eingabe); + ergebnis = Workingobjekt.kontostand(); + + assertEquals("eingabe und Ergebnis sind gleich", eingabe, ergebnis); } + @Test + public void hinzufügenIstNull() { + int eingabe = 0; + int ergebnis; + + Workingobjekt.add(eingabe); + ergebnis = Workingobjekt.kontostand(); + + assertEquals("eingabe und Ergebnis sind gleich", eingabe, ergebnis); + } } diff --git a/src/test/java/com/ugsbo/Buchhaltung/Test_Register.java b/src/test/java/com/ugsbo/Buchhaltung/Test_Register.java deleted file mode 100644 index 92b0cc4..0000000 --- a/src/test/java/com/ugsbo/Buchhaltung/Test_Register.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.ugsbo.Buchhaltung; - -import static org.junit.Assert.*; -import org.junit.Before; -import org.junit.Test; - -public class Test_Register { - - @Before - public void setUp() throws Exception {} - - @Test - public void test() { - fail("Not yet implemented"); - } - -} From a38ee183ad8a16388afaaa2d44b2b08bfd308cd6 Mon Sep 17 00:00:00 2001 From: Christian Baltzer Date: Sun, 14 Jul 2019 16:20:51 +0200 Subject: [PATCH 3/8] =?UTF-8?q?Block=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/ugsbo/com/buchhaltung/Block.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/ugsbo/com/buchhaltung/Block.java b/src/main/java/ugsbo/com/buchhaltung/Block.java index e51464a..ecf4bd7 100644 --- a/src/main/java/ugsbo/com/buchhaltung/Block.java +++ b/src/main/java/ugsbo/com/buchhaltung/Block.java @@ -1,14 +1,24 @@ package ugsbo.com.buchhaltung; +import java.security.MessageDigest; + public class Block { int data; int kontostand; Block vorher; + String ownHash; + String previousHash; public Block(int Data) { data = Data; vorher = null; + ownHash = createNewHash(); + previousHash = null; + } + + private String createNewHash() { + return null; } } From ef9ea41b38dc4311c9f762c187cc9e3cead36bb9 Mon Sep 17 00:00:00 2001 From: Christian Baltzer Date: Sun, 14 Jul 2019 16:41:34 +0200 Subject: [PATCH 4/8] Blockchain abgeschlossen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tests verbessert Tests grün Logik geschrieben --- .../java/ugsbo/com/buchhaltung/Block.java | 34 ++++++++++++++++--- .../ugsbo/com/buchhaltung/Blockchain.java | 14 ++++++-- .../ugsbo/Buchhaltung/Test_Blockchain.java | 14 ++++++++ 3 files changed, 55 insertions(+), 7 deletions(-) diff --git a/src/main/java/ugsbo/com/buchhaltung/Block.java b/src/main/java/ugsbo/com/buchhaltung/Block.java index ecf4bd7..3904106 100644 --- a/src/main/java/ugsbo/com/buchhaltung/Block.java +++ b/src/main/java/ugsbo/com/buchhaltung/Block.java @@ -4,6 +4,7 @@ import java.security.MessageDigest; public class Block { + int data; int kontostand; Block vorher; @@ -11,14 +12,39 @@ public class Block { String ownHash; String previousHash; - public Block(int Data) { - data = Data; - vorher = null; + public Block(int data, Block vorher, String previousHash, int konto) { + this.data = data; ownHash = createNewHash(); - previousHash = null; + + kontostand = konto + this.data; + + this.vorher = vorher; + this.previousHash = previousHash; + } + + public Block(int data) { + this.data = data; + ownHash = createNewHash(); + + kontostand = this.data; + + this.vorher = null; + this.previousHash = null; } private String createNewHash() { return null; } + + public int getKontostand() { + return kontostand; + } + + public Block getVorher() { + return vorher; + } + + public String getHash() { + return ownHash; + } } diff --git a/src/main/java/ugsbo/com/buchhaltung/Blockchain.java b/src/main/java/ugsbo/com/buchhaltung/Blockchain.java index 427346c..4f323bf 100644 --- a/src/main/java/ugsbo/com/buchhaltung/Blockchain.java +++ b/src/main/java/ugsbo/com/buchhaltung/Blockchain.java @@ -2,23 +2,31 @@ package ugsbo.com.buchhaltung; public class Blockchain { - Block erster; + Block Workingobjekt; public Blockchain() { - erster = new Block(0); + Workingobjekt = new Block(0); } public void add(int eingabe) { // TODO Auto-generated method stub + Block newWorkingobjekt = new Block(eingabe, Workingobjekt, Workingobjekt.getHash(), Workingobjekt.getKontostand()); + Workingobjekt = newWorkingobjekt; } public int kontostand() { // TODO Auto-generated method stub - return 0; + return Workingobjekt.getKontostand(); + } + + public String toString() { + + + return null; } diff --git a/src/test/java/com/ugsbo/Buchhaltung/Test_Blockchain.java b/src/test/java/com/ugsbo/Buchhaltung/Test_Blockchain.java index ee2d14a..77f1a83 100644 --- a/src/test/java/com/ugsbo/Buchhaltung/Test_Blockchain.java +++ b/src/test/java/com/ugsbo/Buchhaltung/Test_Blockchain.java @@ -46,4 +46,18 @@ public class Test_Blockchain { assertEquals("eingabe und Ergebnis sind gleich", eingabe, ergebnis); } + + @Test + public void hinzufügenMehrAlsEinmal() { + int eingabe = 100; + int erwartet = 300; + int ergebnis; + + Workingobjekt.add(eingabe); + Workingobjekt.add(eingabe); + Workingobjekt.add(eingabe); + ergebnis = Workingobjekt.kontostand(); + + assertEquals("eingabe und Ergebnis sind gleich", erwartet, ergebnis); + } } From 5fa8bbf2b73df402d227f66f5ef8714718e1b6b0 Mon Sep 17 00:00:00 2001 From: Christian Baltzer Date: Sun, 14 Jul 2019 16:52:56 +0200 Subject: [PATCH 5/8] Blockchain Logik fertig --- .../java/ugsbo/com/buchhaltung/Block.java | 41 +++++++++++++------ .../ugsbo/com/buchhaltung/Blockchain.java | 9 ++-- 2 files changed, 33 insertions(+), 17 deletions(-) diff --git a/src/main/java/ugsbo/com/buchhaltung/Block.java b/src/main/java/ugsbo/com/buchhaltung/Block.java index 3904106..b315519 100644 --- a/src/main/java/ugsbo/com/buchhaltung/Block.java +++ b/src/main/java/ugsbo/com/buchhaltung/Block.java @@ -12,19 +12,11 @@ public class Block { String ownHash; String previousHash; - public Block(int data, Block vorher, String previousHash, int konto) { - this.data = data; - ownHash = createNewHash(); - - kontostand = konto + this.data; - - this.vorher = vorher; - this.previousHash = previousHash; - } + //erste Block public Block(int data) { this.data = data; - ownHash = createNewHash(); + ownHash = createNewHash(Integer.toString(data)); kontostand = this.data; @@ -32,8 +24,33 @@ public class Block { this.previousHash = null; } - private String createNewHash() { - return null; + //Alle anderen Blöcke + public Block(int data, Block vorher, String previousHash, int konto) { + this.data = data; + ownHash = createNewHash(Integer.toString(data)+previousHash); + + kontostand = konto + this.data; + + this.vorher = vorher; + this.previousHash = previousHash; + } + + private String createNewHash(String input) { + try { + MessageDigest digest = MessageDigest.getInstance("SHA-256"); + //Applies sha256 to our input, + byte[] hash = digest.digest(input.getBytes("UTF-8")); + StringBuffer hexString = new StringBuffer(); // This will contain hash as hexidecimal + for (int i = 0; i < hash.length; i++) { + String hex = Integer.toHexString(0xff & hash[i]); + if(hex.length() == 1) hexString.append('0'); + hexString.append(hex); + } + return hexString.toString(); + } + catch(Exception e) { + throw new RuntimeException(e); + } } public int getKontostand() { diff --git a/src/main/java/ugsbo/com/buchhaltung/Blockchain.java b/src/main/java/ugsbo/com/buchhaltung/Blockchain.java index 4f323bf..987b2b1 100644 --- a/src/main/java/ugsbo/com/buchhaltung/Blockchain.java +++ b/src/main/java/ugsbo/com/buchhaltung/Blockchain.java @@ -1,5 +1,7 @@ package ugsbo.com.buchhaltung; +import com.google.gson.*; + public class Blockchain { Block Workingobjekt; @@ -11,7 +13,6 @@ public class Blockchain { public void add(int eingabe) { - // TODO Auto-generated method stub Block newWorkingobjekt = new Block(eingabe, Workingobjekt, Workingobjekt.getHash(), Workingobjekt.getKontostand()); Workingobjekt = newWorkingobjekt; @@ -19,14 +20,12 @@ public class Blockchain { public int kontostand() { - // TODO Auto-generated method stub return Workingobjekt.getKontostand(); } public String toString() { - - - return null; + String JSON = new GsonBuilder().setPrettyPrinting().create().toJson(Workingobjekt); + return JSON; } From a91ee44386a51f4964ebd247b818416bcf5cdf13 Mon Sep 17 00:00:00 2001 From: Christian Baltzer Date: Sun, 14 Jul 2019 16:55:05 +0200 Subject: [PATCH 6/8] Auswertung-class fertig --- src/main/java/ugsbo/com/buchhaltung/Auswertung.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/ugsbo/com/buchhaltung/Auswertung.java b/src/main/java/ugsbo/com/buchhaltung/Auswertung.java index a11f190..fb9ad01 100644 --- a/src/main/java/ugsbo/com/buchhaltung/Auswertung.java +++ b/src/main/java/ugsbo/com/buchhaltung/Auswertung.java @@ -4,7 +4,12 @@ public class Auswertung { public static void main(String[] args) { // TODO Auto-generated method stub - + Blockchain Work = new Blockchain(); + Work.add(50); + Work.add(-20); + + System.out.println(Work.kontostand()); + System.out.print(Work.toString()); } } From 2abcba30470b34288807612685583b2b0e397e5a Mon Sep 17 00:00:00 2001 From: Christian Baltzer Date: Sun, 14 Jul 2019 16:56:08 +0200 Subject: [PATCH 7/8] =?UTF-8?q?Alle=20tests=20gr=C3=BCn?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ugsbo/Buchhaltung/Test_Auswertung.java | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 src/test/java/com/ugsbo/Buchhaltung/Test_Auswertung.java diff --git a/src/test/java/com/ugsbo/Buchhaltung/Test_Auswertung.java b/src/test/java/com/ugsbo/Buchhaltung/Test_Auswertung.java deleted file mode 100644 index f654951..0000000 --- a/src/test/java/com/ugsbo/Buchhaltung/Test_Auswertung.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.ugsbo.Buchhaltung; - -import static org.junit.Assert.*; -import org.junit.Before; -import org.junit.Test; - -public class Test_Auswertung { - - @Before - public void setUp() throws Exception {} - - @Test - public void test() { - fail("Not yet implemented"); - } - -} From a527bc7916988ce284a48be9e26e65e84ebe0290 Mon Sep 17 00:00:00 2001 From: Christian Baltzer Date: Sun, 14 Jul 2019 17:00:53 +0200 Subject: [PATCH 8/8] =?UTF-8?q?library=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pom.xml b/pom.xml index afa24d1..65d9421 100644 --- a/pom.xml +++ b/pom.xml @@ -41,6 +41,11 @@ javafx-fxml 12.0.1 + + com.google.code.gson + gson + 2.8.5 +