@@ -3,18 +3,29 @@ package petooh
3
3
import (
4
4
"bytes"
5
5
"errors"
6
+ "io"
6
7
"strings"
7
8
"testing"
8
9
)
9
10
10
- const source = `KoKoKoKoKoKoKoKoKoKo Kud-Kudah
11
+ const (
12
+ valDefault = `KoKoKoKoKoKoKoKoKoKo Kud-Kudah
11
13
KoKoKoKoKoKoKoKo kudah kO kud-Kudah Kukarek kudah
12
14
KoKoKo Kud-Kudah
13
15
kOkOkOkO kudah kO kud-Kudah Ko Kukarek kudah
14
16
KoKoKoKo Kud-Kudah KoKoKoKo kudah kO kud-Kudah kO Kukarek
15
17
kOkOkOkOkO Kukarek Kukarek kOkOkOkOkOkOkO
16
18
Kukarek`
17
- const res = "PETOOH"
19
+ wrongSyntax = `Kudak`
20
+ wrongPointer = `kudah`
21
+ wrongPointerL = `KoKudkudahkud`
22
+ wrongLevel = `kudkud`
23
+ valLvl = `KudahKokudahKoKudKudah
24
+ KoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKo
25
+ KoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKo
26
+ KoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKo
27
+ KoKoKoKoKukarekkudahkOkud`
28
+ )
18
29
19
30
type errorReader struct {
20
31
}
@@ -23,32 +34,41 @@ func (er errorReader) Read(p []byte) (n int, err error) {
23
34
return 0 , errors .New ("test" )
24
35
}
25
36
26
- func TestProcess (t * testing.T ) {
27
-
28
- r := strings .NewReader (source )
29
-
37
+ func processTestData (r io.Reader ) (string , error ) {
30
38
w := bytes .NewBuffer ([]byte {})
31
-
32
39
err := Process (r , w )
40
+ return w .String (), err
41
+ }
33
42
34
- if w .String () != res {
35
- t .Errorf ("method returns false result %s, but %s expected" , w .String (), res )
36
- }
37
-
38
- if err != nil {
39
- t .Errorf ("failed on source code processing: %s" , err )
43
+ func TestProcess (t * testing.T ) {
44
+ for _ , td := range []struct {
45
+ r io.Reader
46
+ exp string
47
+ }{
48
+ {strings .NewReader (valDefault ), "PETOOH" }, //default example
49
+ {strings .NewReader (valLvl ), "A" }, //simple example with A
50
+ } {
51
+ res , err := processTestData (td .r )
52
+ if res != td .exp {
53
+ t .Errorf ("method returns false result %s, but %s expected" , res , td .exp )
54
+ }
55
+ if err != nil {
56
+ t .Errorf ("failed on valDefault code processing: %s" , err )
57
+ }
40
58
}
41
-
42
59
}
43
60
44
61
func TestProcessEmpty (t * testing.T ) {
45
- r := errorReader {}
46
-
47
- w := bytes .NewBuffer ([]byte {})
48
-
49
- err := Process (r , w )
50
-
51
- if err == nil {
52
- t .Error ("should be error but no error was returned" )
62
+ for _ , r := range []io.Reader {
63
+ errorReader {},
64
+ strings .NewReader (wrongSyntax ), //wrong sintax example
65
+ strings .NewReader (wrongPointer ), //negative pointer
66
+ strings .NewReader (wrongPointerL ), //negative pointer on second level
67
+ strings .NewReader (wrongLevel ), //negative level
68
+ } {
69
+ _ , err := processTestData (r )
70
+ if err == nil {
71
+ t .Error ("should be error but no error was returned" )
72
+ }
53
73
}
54
74
}
0 commit comments