aboutsummaryrefslogtreecommitdiff
path: root/pkg/spool/parse_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/spool/parse_test.go')
-rw-r--r--pkg/spool/parse_test.go42
1 files changed, 42 insertions, 0 deletions
diff --git a/pkg/spool/parse_test.go b/pkg/spool/parse_test.go
new file mode 100644
index 0000000..cfbb050
--- /dev/null
+++ b/pkg/spool/parse_test.go
@@ -0,0 +1,42 @@
+package spool
+
+import (
+ "bytes"
+ "io"
+ "reflect"
+ "testing"
+ "testing/iotest"
+
+ "git.adyxax.org/adyxax/bareos-zabbix-check/pkg/job"
+)
+
+func TestParse(t *testing.T) {
+ readerError := iotest.TimeoutReader(bytes.NewReader([]byte("\n")))
+ readerCorruptedTimestamp := bytes.NewReader([]byte("test,x"))
+ readerOneJob := bytes.NewReader([]byte("test,1"))
+ type args struct {
+ handle io.Reader
+ }
+ tests := []struct {
+ name string
+ args args
+ wantJobs []job.Job
+ wantErr bool
+ }{
+ {"empty", args{readerError}, nil, true},
+ {"corrupted timestamp", args{readerCorruptedTimestamp}, nil, true},
+ {"one job", args{readerOneJob}, []job.Job{{Name: "test", Timestamp: 1, Success: true}}, false},
+ }
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ gotJobs, err := Parse(tt.args.handle)
+ if (err != nil) != tt.wantErr {
+ t.Errorf("Parse() error = %v, wantErr %v", err, tt.wantErr)
+ return
+ }
+ if !reflect.DeepEqual(gotJobs, tt.wantJobs) {
+ t.Errorf("Parse() = %v, want %v", gotJobs, tt.wantJobs)
+ }
+ })
+ }
+}