changeset 2:a064f3d39dda

Add getopts and FileWriteTest, Fix build.gradle.
author Hiroyuki Tamae <e165759@ie.u-ryukyu.ac.jp>
date Tue, 07 Nov 2017 16:57:32 +0900
parents 8efe825340e8
children aaba9f20bc54
files build.gradle src/main/java/jp/ac/uryukyu/ie/e165759/FileWrite.java src/test/java/jp/ac/uryukyu/ie/e165759/FileWriteTest.java
diffstat 3 files changed, 98 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/build.gradle	Sun Nov 05 16:29:06 2017 +0900
+++ b/build.gradle	Tue Nov 07 16:57:32 2017 +0900
@@ -2,15 +2,29 @@
 version '1.0-SNAPSHOT'
 
 apply plugin: 'java'
+apply plugin: 'org.junit.platform.gradle.plugin'
+//sourceCompatibility = 1.9
 
-sourceCompatibility = 1.9
+defaultTasks 'test'
+
+buildscript {
+    repositories {
+        mavenCentral()
+    }
+    dependencies {
+        classpath 'org.junit.platform:junit-platform-gradle-plugin:1.0.1'
+    }
+}
 
 repositories {
     mavenCentral()
 }
 
 dependencies {
-    testCompile group: 'junit', name: 'junit', version: '4.12'
+    //testCompile group: 'junit', name: 'junit', version: '5.0-SNAPSHOT'
+    testCompile("org.junit.jupiter:junit-jupiter-api:5.0.1")
+    testRuntime("org.junit.jupiter:junit-jupiter-engine:5.0.1")
+    testCompileOnly('org.apiguardian:apiguardian-api:1.0.0')
 }
 
 compileJava {
--- a/src/main/java/jp/ac/uryukyu/ie/e165759/FileWrite.java	Sun Nov 05 16:29:06 2017 +0900
+++ b/src/main/java/jp/ac/uryukyu/ie/e165759/FileWrite.java	Tue Nov 07 16:57:32 2017 +0900
@@ -1,7 +1,62 @@
 package jp.ac.uryukyu.ie.e165759;
 
+import java.io.*;
+
 public class FileWrite {
-    public static void main(String args[]){
-        System.out.println("test");
+    private boolean isBuffering = true; //継承したクラスの中で衝突したのがわかるのでpublicがオススメ
+    private long writeSize;
+    private String filename = "testData.txt";
+    private int writeData = '0';
+
+    public static void main(String args[]) throws IOException {
+        System.out.println("Hello World!");
+
+        FileWrite filewrite = new FileWrite();
+        filewrite.getopts(args);
+        try {
+            filewrite.writeTest();
+        }catch(IOException e){
+            System.err.println();
+        }
+    }
+
+    void getopts(String[] args){
+        for(int i=0;i < args.length;i++){
+            switch (args[i]) {
+                case "-b" : isBuffering = true; break;
+                case "-u" : isBuffering = false; break;
+                case "-s" :
+                    if (i+1<=args.length){
+                        writeSize = Integer.parseInt(args[i+1]);
+                        i++;
+                    }
+                    break;
+            }
+        }
+    }
+
+    private void writeTest() throws IOException{
+        long start = System.currentTimeMillis();
+        long written = 0;
+        int data = writeData;
+        long size = writeSize;
+
+        OutputStream os = new FileOutputStream(filename);
+        if(isBuffering) {
+            os = new BufferedOutputStream(os);
+        }
+        while(written < size){
+            os.write(data);
+            written ++;
+        }
+        os.close();
+        long end = System.currentTimeMillis();
+        System.out.println("write" +size+ "bytes in" +(end-start)+ "millisec.");
+    }
+    long getWriteSize(){
+        return writeSize;
+    }
+    boolean isBuffered(){
+        return isBuffering;
     }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/test/java/jp/ac/uryukyu/ie/e165759/FileWriteTest.java	Tue Nov 07 16:57:32 2017 +0900
@@ -0,0 +1,25 @@
+package jp.ac.uryukyu.ie.e165759;
+
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+class FileWriteTest {
+
+    @Test
+    void getopts() {
+
+        FileWrite filewrite = new FileWrite();
+        String[] args = {"-b","-s","12"};
+        filewrite.getopts(args);
+        assertEquals(filewrite.getWriteSize(),1234);
+        assertEquals(filewrite.isBuffered(),true);
+
+        String[] args2 = {"-u","-s","1234"};
+        filewrite.getopts(args2);
+        assertEquals(filewrite.getWriteSize(),12);
+        assertEquals(filewrite.isBuffered(),true);
+
+    }
+
+}
\ No newline at end of file