canape/movies/movies_test.go
2016-02-21 19:56:01 +01:00

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)
}
})
}