86 lines
2.2 KiB
Go
86 lines
2.2 KiB
Go
package backend_test
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/influxdata/influxdb"
|
|
"github.com/influxdata/influxdb/mock"
|
|
"github.com/influxdata/influxdb/task/backend"
|
|
)
|
|
|
|
func TestCheckpoint(t *testing.T) {
|
|
mockService := &mock.TaskService{
|
|
UpdateTaskFn: func(context.Context, influxdb.ID, influxdb.TaskUpdate) (*influxdb.Task, error) { return nil, nil },
|
|
}
|
|
|
|
cp := backend.NewTaskServiceCheckpointer(mockService)
|
|
err := cp.Checkpoint(context.Background(), influxdb.ID(1), time.Now())
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func TestCheckpointError(t *testing.T) {
|
|
mockService := &mock.TaskService{
|
|
UpdateTaskFn: func(context.Context, influxdb.ID, influxdb.TaskUpdate) (*influxdb.Task, error) {
|
|
return nil, fmt.Errorf("error!")
|
|
},
|
|
}
|
|
|
|
cp := backend.NewTaskServiceCheckpointer(mockService)
|
|
err := cp.Checkpoint(context.Background(), influxdb.ID(1), time.Now())
|
|
if err == nil {
|
|
t.Fatalf("Expected error")
|
|
}
|
|
}
|
|
|
|
func TestLast(t *testing.T) {
|
|
want := time.Now()
|
|
s := want.Format(time.RFC3339Nano)
|
|
mockService := &mock.TaskService{
|
|
FindTaskByIDFn: func(context.Context, influxdb.ID) (*influxdb.Task, error) {
|
|
return &influxdb.Task{LatestCompleted: s}, nil
|
|
},
|
|
}
|
|
|
|
cp := backend.NewTaskServiceCheckpointer(mockService)
|
|
got, err := cp.Last(context.Background(), influxdb.ID(1))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if !got.Equal(want) {
|
|
t.Fatalf("wrong time, wanted: %v, got: %v", want, got)
|
|
}
|
|
}
|
|
|
|
func TestLastFetchError(t *testing.T) {
|
|
mockService := &mock.TaskService{
|
|
FindTaskByIDFn: func(context.Context, influxdb.ID) (*influxdb.Task, error) {
|
|
return nil, fmt.Errorf("error 1")
|
|
},
|
|
}
|
|
|
|
cp := backend.NewTaskServiceCheckpointer(mockService)
|
|
_, err := cp.Last(context.Background(), influxdb.ID(1))
|
|
if err == nil {
|
|
t.Fatal("expected error")
|
|
}
|
|
}
|
|
|
|
func TestLastParseError(t *testing.T) {
|
|
mockService := &mock.TaskService{
|
|
FindTaskByIDFn: func(context.Context, influxdb.ID) (*influxdb.Task, error) {
|
|
return &influxdb.Task{LatestCompleted: "howdy"}, nil
|
|
},
|
|
}
|
|
|
|
cp := backend.NewTaskServiceCheckpointer(mockService)
|
|
_, err := cp.Last(context.Background(), influxdb.ID(1))
|
|
if err == nil {
|
|
t.Fatalf("expected error parsing invalid time: %v", err)
|
|
}
|
|
}
|