woocya 2 лет назад
Родитель
Сommit
8512b496ff

+ 1 - 0
dir/file.java

@@ -0,0 +1 @@
+abcdfg

+ 1 - 0
dir/file.json

@@ -0,0 +1 @@
+abcdfg

+ 1 - 0
dir/file.txt

@@ -0,0 +1 @@
+abcdfg

+ 1 - 0
dir/file_special_characters.java

@@ -0,0 +1 @@
+34a$21b37&#!maleznaki

+ 1 - 0
dir/file_special_characters.txt

@@ -0,0 +1 @@
+34a$21b37&#!maleznaki

+ 0 - 0
dir/file_to_write.txt


+ 0 - 0
dir_empty/.gitkeep


+ 13 - 2
untitled/src/main/java/DirConverter.java

@@ -3,11 +3,22 @@ import java.io.IOException;
 import java.util.ArrayList;
 
 public class DirConverter {
-    public static void convertSpecifiedFiles(String dirFullPath, String extension) throws IOException {
 
+    private FileConverter fileConverter;
+
+    DirConverter(FileConverter fileConverter){
+        this.fileConverter = fileConverter;
+    }
+
+    public void convertSpecifiedFiles(String filepath, String extension) throws IOException {
+        final File folder = new File(filepath);
+        ArrayList<String> filenames = listFileForFolder(folder, extension);
+        for(String filename : filenames){
+            fileConverter.convertFileToUpperCase(filepath + filename);
+        }
     }
 
-    public static ArrayList<String> listFileForFolder(File folder, String extension) {
+    public ArrayList<String> listFileForFolder(File folder, String extension) {
         ArrayList<String> filenames = new ArrayList<>();
         String filename;
 

+ 4 - 4
untitled/src/main/java/FileConverter.java

@@ -3,12 +3,12 @@ import java.util.Scanner;
 
 public class FileConverter {
 
-    public static void convertFileToUpperCase(String fileFullPath) throws IOException{
+    public void convertFileToUpperCase(String fileFullPath) throws IOException{
         String content = readFile(fileFullPath);
         content = toUpperCase(content);
         writeToFile(content, fileFullPath);
     }
-    public static String readFile(String fileFullPath) throws IOException{
+    public String readFile(String fileFullPath) throws IOException{
         StringBuilder stringBuilder = new StringBuilder();
         File file = new File(fileFullPath);
         Scanner reader = new Scanner(file);
@@ -20,10 +20,10 @@ public class FileConverter {
         reader.close();
         return stringBuilder.toString();
     }
-    public static String toUpperCase(String content){
+    public String toUpperCase(String content){
         return content.toUpperCase();
     }
-    private static void writeToFile(String content, String fileFullPath) throws IOException {
+    private void writeToFile(String content, String fileFullPath) throws IOException {
         FileWriter fileWriter = new FileWriter(fileFullPath, false);
         fileWriter.write(content);
         fileWriter.close();

+ 42 - 2
untitled/src/test/java/DirConverterTest.java

@@ -6,12 +6,52 @@ import java.util.ArrayList;
 import java.util.Arrays;
 
 import static org.junit.jupiter.api.Assertions.*;
+import static org.mockito.Mockito.*;
 public class DirConverterTest {
+    public static final String path_to_test_files = "H:\\Lucja\\itaz\\8\\konwersja-liter\\";
+
+    private DirConverter dirConverter;
+    private FileConverter fileConverter;
+
+    DirConverterTest(){
+        //tworzymy atrapę klasy FileConverter poprzez słówko mock
+        fileConverter = mock(FileConverter.class);
+        dirConverter = new DirConverter(fileConverter);
+    }
+
+    private void basicTest(String dir, String extension, int numOfInvocations) throws IOException {
+        dirConverter.convertSpecifiedFiles(path_to_test_files + dir + "\\", extension);
+
+        verify(fileConverter, times(numOfInvocations)).convertFileToUpperCase(anyString());
+        reset(fileConverter);
+    }
 
     @Test
     void testFindingFiles() {
-        File dirPath  = new File("H:\\Lucja\\itaz\\konwersja-liter\\dir\\");
+        File dirPath  = new File("H:\\Lucja\\itaz\\8\\konwersja-liter\\dir\\");
         ArrayList<String> filenames = new ArrayList<>(Arrays.asList("file.txt", "file_special_characters.txt", "file_to_write.txt"));
-        assertEquals(filenames, DirConverter.listFileForFolder(dirPath, ".txt"));
+        assertEquals(filenames, dirConverter.listFileForFolder(dirPath, ".txt"));
+    }
+
+    @Test
+    void testEmptyDir() throws IOException {
+        basicTest("dir_empty", ".txt", 0);
+        basicTest("dir_empty", ".java", 0);
+        basicTest("dir_empty", ".json", 0);
+    }
+
+    @Test
+    void testOneJsonFile() throws IOException {
+        basicTest("dir", ".json", 1);
+    }
+
+    @Test
+    void testThreeJavaFiles() throws IOException {
+        basicTest("dir", ".java", 2);
+    }
+
+    @Test
+    void testThreeTxtFiles() throws IOException {
+        basicTest("dir", ".txt", 3);
     }
 }

+ 13 - 6
untitled/src/test/java/FileConverterTest.java

@@ -6,18 +6,25 @@ import java.io.*;
 import static org.junit.jupiter.api.Assertions.*;
 
 public class FileConverterTest {
-    public static final String path_to_test_files = "C:\\Users\\piotr\\Documents\\Studia\\IiTA - 8zd\\konwersja-liter\\untitled\\src\\main\\resources\\";
+    //public static final String path_to_test_files = "C:\\Users\\piotr\\Documents\\Studia\\IiTA - 8zd\\konwersja-liter\\untitled\\src\\main\\resources\\";
+    public static final String path_to_test_files = "H:\\Lucja\\itaz\\8\\konwersja-liter\\dir\\";
+
+    private FileConverter fileConverter;
+
+    FileConverterTest() {
+        fileConverter = new FileConverter();
+    }
 
     private String basicTest(String file_name) throws IOException {
         String basic = "abcdfg";
         String path = path_to_test_files + file_name;
-        String content = FileConverter.readFile(path);
+        String content = fileConverter.readFile(path);
         assertEquals(basic,content);
         return content;
     }
     private void checkUpperCase (String content) throws IOException {
         String basic = "ABCDFG";
-        assertEquals(basic,FileConverter.toUpperCase(content));
+        assertEquals(basic,fileConverter.toUpperCase(content));
     }
     private void checkIfFileIsUpperCase(String path) throws IOException {
         File file = new File(path);
@@ -40,18 +47,18 @@ public class FileConverterTest {
         String basic = "ABCDFG";
         String file_name = "file.txt";
         String path = path_to_test_files + file_name;
-        assertEquals(basic,FileConverter.toUpperCase(FileConverter.readFile(path)));
+        assertEquals(basic,fileConverter.toUpperCase(fileConverter.readFile(path)));
 
         basic = "34A$21B37&#!MALEZNAKI";
         file_name = "file_special_characters.txt";
         path = path_to_test_files + file_name;
-        assertEquals(basic,FileConverter.toUpperCase(FileConverter.readFile(path)));
+        assertEquals(basic,fileConverter.toUpperCase(fileConverter.readFile(path)));
     }
     @Test
     void testFileConverter() throws IOException {
         String file_name = "file.txt";
         String path = path_to_test_files + file_name;
-        FileConverter.convertFileToUpperCase(path);
+        fileConverter.convertFileToUpperCase(path);
         checkIfFileIsUpperCase(path);
     }
     private static void writeToFile(String filePath, String content) throws IOException {