From 22f2bd9eeaa5704d255983de44fe3315eb1fcfd7 Mon Sep 17 00:00:00 2001
From: Minh Hiep Pham <minh.pham@telecom-paristech.fr>
Date: Tue, 29 Jan 2019 16:36:08 +0100
Subject: [PATCH] Update test for compareTML method

---
 ttool/src/test/java/test/AbstractTest.java    |   4 +-
 ttool/src/test/java/ui/AbstractUITest.java    |   3 +
 .../java/ui/compareTMLTest/CompareTML.java    |  35 ++++++
 .../ui/compareTMLTest/CompareTMLTests.java    | 101 ++++++++++++++++++
 .../src/test/java/ui/compareTMLTest/file1.tml |   0
 .../src/test/java/ui/compareTMLTest/file2.tml |   1 +
 .../src/test/java/ui/compareTMLTest/file3.tml |   1 +
 .../src/test/java/ui/compareTMLTest/file4.tml |   4 +
 .../src/test/java/ui/compareTMLTest/file5.tml |   4 +
 .../src/test/java/ui/compareTMLTest/file6.tml |   4 +
 .../src/test/java/ui/compareTMLTest/file7.tml |   4 +
 11 files changed, 158 insertions(+), 3 deletions(-)
 create mode 100644 ttool/src/test/java/ui/compareTMLTest/CompareTML.java
 create mode 100644 ttool/src/test/java/ui/compareTMLTest/CompareTMLTests.java
 create mode 100644 ttool/src/test/java/ui/compareTMLTest/file1.tml
 create mode 100644 ttool/src/test/java/ui/compareTMLTest/file2.tml
 create mode 100644 ttool/src/test/java/ui/compareTMLTest/file3.tml
 create mode 100644 ttool/src/test/java/ui/compareTMLTest/file4.tml
 create mode 100644 ttool/src/test/java/ui/compareTMLTest/file5.tml
 create mode 100644 ttool/src/test/java/ui/compareTMLTest/file6.tml
 create mode 100644 ttool/src/test/java/ui/compareTMLTest/file7.tml

diff --git a/ttool/src/test/java/test/AbstractTest.java b/ttool/src/test/java/test/AbstractTest.java
index 9d650f92d8..2d5591feb3 100644
--- a/ttool/src/test/java/test/AbstractTest.java
+++ b/ttool/src/test/java/test/AbstractTest.java
@@ -2,9 +2,7 @@ package test;
 
 import static org.junit.Assert.fail;
 
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.IOException;
+import java.io.*;
 
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
diff --git a/ttool/src/test/java/ui/AbstractUITest.java b/ttool/src/test/java/ui/AbstractUITest.java
index a18e2dcf87..747dcda156 100644
--- a/ttool/src/test/java/ui/AbstractUITest.java
+++ b/ttool/src/test/java/ui/AbstractUITest.java
@@ -1,6 +1,9 @@
 package ui;
 
+import java.io.BufferedReader;
 import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
 import java.util.Arrays;
 import java.util.Collection;
 
diff --git a/ttool/src/test/java/ui/compareTMLTest/CompareTML.java b/ttool/src/test/java/ui/compareTMLTest/CompareTML.java
new file mode 100644
index 0000000000..fc7dabfa61
--- /dev/null
+++ b/ttool/src/test/java/ui/compareTMLTest/CompareTML.java
@@ -0,0 +1,35 @@
+package ui.compareTMLTest;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+public class CompareTML {
+
+    public CompareTML () {
+
+    }
+    //#issue 82
+    public boolean compareTML(File expected, File clone) throws Exception {
+
+        BufferedReader expectedReader = new BufferedReader(new FileReader(expected));
+        BufferedReader cloneReader = new BufferedReader(new FileReader(clone));
+
+        String expectedString = "";
+        String cloneString = "";
+        String s1;
+        String s2;
+
+        while ((s1 = expectedReader.readLine()) != null) {
+            if (!s1.contains("//") && s1.length() > 0) {
+                expectedString += s1;
+            }
+        }
+
+        while ((s2 = cloneReader.readLine()) != null){
+            if (!s2.contains("//") && s2.length() > 0) {
+                cloneString += s2;
+            }
+        }
+        return expectedString.equals(cloneString);
+    }
+}
diff --git a/ttool/src/test/java/ui/compareTMLTest/CompareTMLTests.java b/ttool/src/test/java/ui/compareTMLTest/CompareTMLTests.java
new file mode 100644
index 0000000000..3e5420f2a3
--- /dev/null
+++ b/ttool/src/test/java/ui/compareTMLTest/CompareTMLTests.java
@@ -0,0 +1,101 @@
+package ui.compareTMLTest;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.File;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+
+import static org.junit.Assert.*;
+
+public class CompareTMLTests {
+
+    final static String PATH_TO_TEST_COMPARE_FILE = "test/java/ui/compareTMLTest/";
+
+    final static String COMMENT_AND_CONTEXT_1 = "// File with comment + context 1" +
+            "\n// Channels\n" +
+            "CHANNEL DIPLODOCUS_C_Design__channel BRBW 4 8 OUT DIPLODOCUS_C_Design__PrimitiveComp1 IN DIPLODOCUS_C_Design__PrimitiveComp2\n" +
+            "CHANNEL DIPLODOCUS_C_Design__channel_0 BRBW 4 8 OUT DIPLODOCUS_C_Design__PrimitiveComp1_0 IN DIPLODOCUS_C_Design__PrimitiveComp2_0";
+    final static String COMMENT_AND_CONTEXT_2 = "// File with comment + context 2" +
+            "\n// Channels\n" +
+            "CHANNEL DIPLODOCUS_C_Design__channel BRBW 4 8 OUT DIPLODOCUS_C_Design__PrimitiveComp1 IN DIPLODOCUS_C_Design__PrimitiveComp2\n" +
+            "CHANNEL DIPLODOCUS_C_Design__channel_0 BRBW 4 8 OUT DIPLODOCUS_C_Design__PrimitiveComp1_0 IN DIPLODOCUS_C_Design__PrimitiveComp2_0";
+    final static String COMMENT_AND_CONTEXT_3 = "// File with comment + context 3" +
+            "\n// Channels\n" +
+            "CHANNEL DIPLODOCUS_C_Design__channel BRBW 5 8 OUT DIPLODOCUS_C_Design__PrimitiveComp1 IN DIPLODOCUS_C_Design__PrimitiveComp2\n" +
+            "CHANNEL DIPLODOCUS_C_Design__channel_0 BRBW 4 8 OUT DIPLODOCUS_C_Design__PrimitiveComp1_0 IN DIPLODOCUS_C_Design__PrimitiveComp2_0";
+    final  static String COMMENT_AND_CONTEXT_4 = "// File with comment + context 3" +
+            "\n// Channels\n" +
+            "CHANNEL DIPLODOCUS_C_Design__channel BRBW 4 8 OUT DIPLODOCUS_C_Design__PrimitiveComp1 IN DIPLODOCUS_C_Design__PrimitiveComp2\n" +
+            "CHANNEL DIPLODOCUS_C_Design__channel_0 BRBW 4 8 OUT DIPLODOCUS_C_Design__PrimitiveComp1_0 IN DIPLODOCUS_C_Design__PrimitiveComp2_0";
+    final static String ONLY_TITLE_1 = "// comment 1";
+    final static String ONLY_TITLE_2 = "// comment 2";
+    final static String EMPTY = "";
+
+    @Before
+    public void setUp () throws Exception{
+        String fileData;
+        fileData = EMPTY;
+        Files.write(Paths.get(PATH_TO_TEST_COMPARE_FILE + "file1.tml"), fileData.getBytes());
+
+        fileData = ONLY_TITLE_1;
+        Files.write(Paths.get(PATH_TO_TEST_COMPARE_FILE + "file2.tml"),fileData.getBytes());
+
+        fileData = ONLY_TITLE_2;
+        Files.write(Paths.get(PATH_TO_TEST_COMPARE_FILE + "file3.tml"),fileData.getBytes());
+
+        fileData = COMMENT_AND_CONTEXT_1;
+        Files.write(Paths.get(PATH_TO_TEST_COMPARE_FILE + "file4.tml"),fileData.getBytes());
+
+        fileData = COMMENT_AND_CONTEXT_2;
+        Files.write(Paths.get(PATH_TO_TEST_COMPARE_FILE + "file5.tml"),fileData.getBytes());
+
+        fileData = COMMENT_AND_CONTEXT_3;
+        Files.write(Paths.get(PATH_TO_TEST_COMPARE_FILE + "file6.tml"),fileData.getBytes());
+
+        fileData = COMMENT_AND_CONTEXT_4;
+        Files.write(Paths.get(PATH_TO_TEST_COMPARE_FILE + "file7.tml"),fileData.getBytes());
+    }
+
+    @Test
+    public void onlyCommentAndEmptyTest () throws Exception {
+        CompareTML ctml = new CompareTML();
+        assertTrue("comparing between empty file and the other including only comment",ctml.compareTML(new File(PATH_TO_TEST_COMPARE_FILE + "file1" +
+                        ".tml"),
+                new File(PATH_TO_TEST_COMPARE_FILE + "file2.tml")));
+    }
+
+    @Test
+    public void onlyCommentAndOnlyComment () throws Exception {
+        CompareTML ctml = new CompareTML();
+        assertTrue("comparing between 2 files including only comment",ctml.compareTML(new File(PATH_TO_TEST_COMPARE_FILE + "file2.tml"),
+                new File(PATH_TO_TEST_COMPARE_FILE + "file3" +
+                        ".tml")));
+    }
+
+    @Test
+    public void sameContextDifferentComment () throws Exception {
+        CompareTML ctml = new CompareTML();
+        assertTrue("comparing between 2 files including the same context but different comment",ctml.compareTML(new File(PATH_TO_TEST_COMPARE_FILE +
+                        "file4.tml"),
+                new File(PATH_TO_TEST_COMPARE_FILE + "file5.tml")));
+    }
+
+    @Test
+    public void DifferentContextDifferentComment () throws Exception {
+        CompareTML ctml = new CompareTML();
+        assertFalse("comparing between 2 files including the same context but different comment",ctml.compareTML(new File(PATH_TO_TEST_COMPARE_FILE +
+                        "file5.tml"),
+                new File(PATH_TO_TEST_COMPARE_FILE + "file6.tml")));
+    }
+
+    @Test
+    public void DifferentContextSameComment () throws Exception {
+        CompareTML ctml = new CompareTML();
+        assertFalse("comparing between 2 files including the same comment but different context",
+                ctml.compareTML(new File(PATH_TO_TEST_COMPARE_FILE +
+                        "file6.tml"),
+                new File(PATH_TO_TEST_COMPARE_FILE + "file7.tml")));
+    }
+}
diff --git a/ttool/src/test/java/ui/compareTMLTest/file1.tml b/ttool/src/test/java/ui/compareTMLTest/file1.tml
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/ttool/src/test/java/ui/compareTMLTest/file2.tml b/ttool/src/test/java/ui/compareTMLTest/file2.tml
new file mode 100644
index 0000000000..f8bba761c0
--- /dev/null
+++ b/ttool/src/test/java/ui/compareTMLTest/file2.tml
@@ -0,0 +1 @@
+// comment 1
\ No newline at end of file
diff --git a/ttool/src/test/java/ui/compareTMLTest/file3.tml b/ttool/src/test/java/ui/compareTMLTest/file3.tml
new file mode 100644
index 0000000000..01294e4cb7
--- /dev/null
+++ b/ttool/src/test/java/ui/compareTMLTest/file3.tml
@@ -0,0 +1 @@
+// comment 2
\ No newline at end of file
diff --git a/ttool/src/test/java/ui/compareTMLTest/file4.tml b/ttool/src/test/java/ui/compareTMLTest/file4.tml
new file mode 100644
index 0000000000..9d5f5aa294
--- /dev/null
+++ b/ttool/src/test/java/ui/compareTMLTest/file4.tml
@@ -0,0 +1,4 @@
+// File with comment + context 1
+// Channels
+CHANNEL DIPLODOCUS_C_Design__channel BRBW 4 8 OUT DIPLODOCUS_C_Design__PrimitiveComp1 IN DIPLODOCUS_C_Design__PrimitiveComp2
+CHANNEL DIPLODOCUS_C_Design__channel_0 BRBW 4 8 OUT DIPLODOCUS_C_Design__PrimitiveComp1_0 IN DIPLODOCUS_C_Design__PrimitiveComp2_0
\ No newline at end of file
diff --git a/ttool/src/test/java/ui/compareTMLTest/file5.tml b/ttool/src/test/java/ui/compareTMLTest/file5.tml
new file mode 100644
index 0000000000..a2b9bcce51
--- /dev/null
+++ b/ttool/src/test/java/ui/compareTMLTest/file5.tml
@@ -0,0 +1,4 @@
+// File with comment + context 2
+// Channels
+CHANNEL DIPLODOCUS_C_Design__channel BRBW 4 8 OUT DIPLODOCUS_C_Design__PrimitiveComp1 IN DIPLODOCUS_C_Design__PrimitiveComp2
+CHANNEL DIPLODOCUS_C_Design__channel_0 BRBW 4 8 OUT DIPLODOCUS_C_Design__PrimitiveComp1_0 IN DIPLODOCUS_C_Design__PrimitiveComp2_0
\ No newline at end of file
diff --git a/ttool/src/test/java/ui/compareTMLTest/file6.tml b/ttool/src/test/java/ui/compareTMLTest/file6.tml
new file mode 100644
index 0000000000..864b0d1e23
--- /dev/null
+++ b/ttool/src/test/java/ui/compareTMLTest/file6.tml
@@ -0,0 +1,4 @@
+// File with comment + context 3
+// Channels
+CHANNEL DIPLODOCUS_C_Design__channel BRBW 5 8 OUT DIPLODOCUS_C_Design__PrimitiveComp1 IN DIPLODOCUS_C_Design__PrimitiveComp2
+CHANNEL DIPLODOCUS_C_Design__channel_0 BRBW 4 8 OUT DIPLODOCUS_C_Design__PrimitiveComp1_0 IN DIPLODOCUS_C_Design__PrimitiveComp2_0
\ No newline at end of file
diff --git a/ttool/src/test/java/ui/compareTMLTest/file7.tml b/ttool/src/test/java/ui/compareTMLTest/file7.tml
new file mode 100644
index 0000000000..58da6df298
--- /dev/null
+++ b/ttool/src/test/java/ui/compareTMLTest/file7.tml
@@ -0,0 +1,4 @@
+// File with comment + context 3
+// Channels
+CHANNEL DIPLODOCUS_C_Design__channel BRBW 4 8 OUT DIPLODOCUS_C_Design__PrimitiveComp1 IN DIPLODOCUS_C_Design__PrimitiveComp2
+CHANNEL DIPLODOCUS_C_Design__channel_0 BRBW 4 8 OUT DIPLODOCUS_C_Design__PrimitiveComp1_0 IN DIPLODOCUS_C_Design__PrimitiveComp2_0
\ No newline at end of file
-- 
GitLab