54 lines
1.2 KiB
Go
54 lines
1.2 KiB
Go
//go:build integration
|
|
|
|
package main
|
|
|
|
import (
|
|
"context"
|
|
"os"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/breel-render/spoc-bot-vr/model"
|
|
)
|
|
|
|
func TestDriverIntegration(t *testing.T) {
|
|
ctx, can := context.WithTimeout(context.Background(), time.Second*30)
|
|
defer can()
|
|
|
|
driver, err := NewDriver(ctx, os.Getenv("DRIVER_CONN"))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
defer driver.Close()
|
|
|
|
q, err := NewQueue(ctx, t.Name(), driver)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
qV := []byte("hello")
|
|
if err := q.Enqueue(ctx, qV); err != nil {
|
|
t.Error("q cannot enqueue:", err)
|
|
} else if reservation, v, err := q.Syn(ctx); err != nil {
|
|
t.Error("q cannot syn:", err)
|
|
} else if string(v) != string(qV) {
|
|
t.Error("q enqueued wrong:", string(v))
|
|
} else if len(reservation) == 0 {
|
|
t.Error("q didnt have reservation")
|
|
} else if err := q.Ack(ctx, reservation); err != nil {
|
|
t.Error("q cannot ack:", err)
|
|
}
|
|
|
|
s, err := NewStorage(ctx, driver)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
evt := model.Event{ID: "x", Name: "y"}
|
|
if err := s.UpsertEvent(ctx, evt); err != nil {
|
|
t.Error("s cannot upsert:", err)
|
|
} else if e, err := s.GetEvent(ctx, evt.ID); err != nil {
|
|
t.Error("s cannot get:", err)
|
|
} else if e != evt {
|
|
t.Error("s upserted wrong:", e)
|
|
}
|
|
}
|