blob: 3c45f8cf4b0a7da8009341e5d97b1952dd022342 [file] [log] [blame]
Sasha Smundak26c705f2021-09-30 18:13:54 -07001package canoninja
2
3import (
4 "bytes"
5 "testing"
6)
7
8func TestGenerate(t *testing.T) {
9 tests := []struct {
10 name string
11 in []byte
12 wantSink string
13 wantErr bool
14 }{
15 {
16 name: "1",
17 in: []byte(`
18rule rule1
19 abcd
20rule rule2
21 abcd
22build x: rule1
23`),
24 wantSink: `
25rule R9c97aba7f61994be6862f5ea9a62d26130c7f48b
26 abcd
27rule R9c97aba7f61994be6862f5ea9a62d26130c7f48b
28 abcd
29build x: R9c97aba7f61994be6862f5ea9a62d26130c7f48b
30`,
31 wantErr: false,
32 },
33 }
34 for _, tt := range tests {
35 t.Run(tt.name, func(t *testing.T) {
36 sink := &bytes.Buffer{}
37 err := Generate("<file>", tt.in, sink)
38 if (err != nil) != tt.wantErr {
39 t.Errorf("Generate() error = %v, wantErr %v", err, tt.wantErr)
40 return
41 }
42 if gotSink := sink.String(); gotSink != tt.wantSink {
43 t.Errorf("Generate() gotSink = %v, want %v", gotSink, tt.wantSink)
44 }
45 })
46 }
47}