48 lines
		
	
	
		
			869 B
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			869 B
		
	
	
	
		
			Go
		
	
	
	
package canoninja
 | 
						|
 | 
						|
import (
 | 
						|
	"bytes"
 | 
						|
	"testing"
 | 
						|
)
 | 
						|
 | 
						|
func TestGenerate(t *testing.T) {
 | 
						|
	tests := []struct {
 | 
						|
		name     string
 | 
						|
		in       []byte
 | 
						|
		wantSink string
 | 
						|
		wantErr  bool
 | 
						|
	}{
 | 
						|
		{
 | 
						|
			name: "1",
 | 
						|
			in: []byte(`
 | 
						|
rule rule1
 | 
						|
  abcd
 | 
						|
rule rule2
 | 
						|
  abcd
 | 
						|
build x: rule1
 | 
						|
`),
 | 
						|
			wantSink: `
 | 
						|
rule R9c97aba7f61994be6862f5ea9a62d26130c7f48b
 | 
						|
  abcd
 | 
						|
rule R9c97aba7f61994be6862f5ea9a62d26130c7f48b
 | 
						|
  abcd
 | 
						|
build x: R9c97aba7f61994be6862f5ea9a62d26130c7f48b
 | 
						|
`,
 | 
						|
			wantErr: false,
 | 
						|
		},
 | 
						|
	}
 | 
						|
	for _, tt := range tests {
 | 
						|
		t.Run(tt.name, func(t *testing.T) {
 | 
						|
			sink := &bytes.Buffer{}
 | 
						|
			err := Generate("<file>", tt.in, sink)
 | 
						|
			if (err != nil) != tt.wantErr {
 | 
						|
				t.Errorf("Generate() error = %v, wantErr %v", err, tt.wantErr)
 | 
						|
				return
 | 
						|
			}
 | 
						|
			if gotSink := sink.String(); gotSink != tt.wantSink {
 | 
						|
				t.Errorf("Generate() gotSink = %v, want %v", gotSink, tt.wantSink)
 | 
						|
			}
 | 
						|
		})
 | 
						|
	}
 | 
						|
}
 |