@@ -2,12 +2,16 @@ package main
2
2
3
3
import (
4
4
"bytes"
5
+ "fmt"
6
+ "io/ioutil"
5
7
"os"
6
8
"path"
9
+ "path/filepath"
7
10
"runtime"
8
11
"strings"
9
12
"testing"
10
13
14
+ "github.com/sergi/go-diff/diffmatchpatch"
11
15
"github.com/yoozoo/protoapi/cmd"
12
16
)
13
17
@@ -89,4 +93,41 @@ func TestCmd(t *testing.T) {
89
93
test (t , cmd )
90
94
}
91
95
}
96
+
97
+ files , err := filePathWalkDir ("test/expected" )
98
+ if err != nil {
99
+ t .Fatal (err )
100
+ }
101
+
102
+ for _ , expectedFileName := range files {
103
+ resultFileName := strings .Replace (expectedFileName , "expected" , "result" , 1 )
104
+
105
+ expectedFile , err := ioutil .ReadFile (expectedFileName )
106
+ if err != nil {
107
+ t .Error ("expectedFile read err: " , expectedFileName , err )
108
+ }
109
+
110
+ resultFile , err := ioutil .ReadFile (resultFileName )
111
+ if err != nil {
112
+ t .Error ("resultFile read err: " , resultFileName , err )
113
+ }
114
+
115
+ if string (expectedFile ) != string (resultFile ) {
116
+ dmp := diffmatchpatch .New ()
117
+ diffs := dmp .DiffMain (string (expectedFile ), string (resultFile ), false )
118
+ t .Error ("file different: " , expectedFileName , resultFileName )
119
+ fmt .Println (dmp .DiffPrettyText (diffs ))
120
+ }
121
+ }
122
+ }
123
+
124
+ func filePathWalkDir (root string ) ([]string , error ) {
125
+ var files []string
126
+ err := filepath .Walk (root , func (path string , info os.FileInfo , err error ) error {
127
+ if ! info .IsDir () {
128
+ files = append (files , path )
129
+ }
130
+ return nil
131
+ })
132
+ return files , err
92
133
}
0 commit comments