81 lines
1.5 KiB
Go
81 lines
1.5 KiB
Go
package movies
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/Sirupsen/logrus"
|
|
"github.com/jmoiron/sqlx"
|
|
_ "github.com/lib/pq"
|
|
_ "github.com/mattes/migrate/driver/postgres"
|
|
"github.com/odwrtw/polochon/lib"
|
|
"github.com/odwrtw/polochon/modules/mock"
|
|
"gitlab.quimbo.fr/odwrtw/canape-sql/sqly"
|
|
)
|
|
|
|
var db *sqlx.DB
|
|
var pgdsn string
|
|
|
|
func init() {
|
|
var err error
|
|
|
|
pgdsn = os.Getenv("POSTGRES_DSN")
|
|
db, err = sqlx.Connect("postgres", pgdsn)
|
|
|
|
if err != nil {
|
|
fmt.Printf("Unavailable PG tests:\n %v\n", err)
|
|
os.Exit(1)
|
|
}
|
|
}
|
|
|
|
func TestIntegrate(t *testing.T) {
|
|
sqly.RunWithLastestMigration(db, pgdsn, t, func(db *sqlx.DB, t *testing.T) {
|
|
detailer, _ := mock.NewDetailer(nil)
|
|
polochonConfig := polochon.MovieConfig{
|
|
Detailers: []polochon.Detailer{
|
|
detailer,
|
|
},
|
|
}
|
|
movie := Movie{
|
|
Movie: polochon.Movie{
|
|
MovieConfig: polochonConfig,
|
|
ImdbID: "tt12345",
|
|
},
|
|
}
|
|
|
|
log := logrus.NewEntry(logrus.New())
|
|
err := movie.GetDetails(db, log)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
// Get it
|
|
movie = Movie{
|
|
Movie: polochon.Movie{
|
|
MovieConfig: polochonConfig,
|
|
ImdbID: "tt12345",
|
|
},
|
|
}
|
|
err = movie.Get(db)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if movie.Title != fmt.Sprintf("Movie %s", movie.ImdbID) {
|
|
t.Fatalf("Unexpected movie's title: %s", movie.Title)
|
|
}
|
|
|
|
// Delete it
|
|
err = movie.Delete(db)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
// Get it again
|
|
err = movie.Get(db)
|
|
if err != ErrNotFound {
|
|
t.Fatalf("Unexpected error: %q", err)
|
|
}
|
|
})
|
|
}
|