func TestMain(m *testing.M) { var session *r.Session var err error c, err := dockertest.ConnectToRethinkDB(20, time.Millisecond*500, func(url string) bool { if session, err = r.Connect(r.ConnectOpts{Address: url, Database: "hydra"}); err != nil { return false } else if _, err = r.DBCreate("hydra").RunWrite(session); err != nil { logrus.Printf("Database exists: %s", err) return false } else if _, err = r.TableCreate("hydra_authorize_code").RunWrite(session); err != nil { logrus.Printf("Could not create table: %s", err) return false } else if _, err = r.TableCreate("hydra_id_sessions").RunWrite(session); err != nil { logrus.Printf("Could not create table: %s", err) return false } else if _, err = r.TableCreate("hydra_access_token").RunWrite(session); err != nil { logrus.Printf("Could not create table: %s", err) return false } else if _, err = r.TableCreate("hydra_implicit").RunWrite(session); err != nil { logrus.Printf("Could not create table: %s", err) return false } else if _, err = r.TableCreate("hydra_refresh_token").RunWrite(session); err != nil { logrus.Printf("Could not create table: %s", err) return false } rethinkManager = &FositeRehinkDBStore{ Session: session, AuthorizeCodesTable: r.Table("hydra_authorize_code"), IDSessionsTable: r.Table("hydra_id_sessions"), AccessTokensTable: r.Table("hydra_access_token"), ImplicitTable: r.Table("hydra_implicit"), RefreshTokensTable: r.Table("hydra_refresh_token"), AuthorizeCodes: make(RDBItems), IDSessions: make(RDBItems), AccessTokens: make(RDBItems), Implicit: make(RDBItems), RefreshTokens: make(RDBItems), } rethinkManager.Watch(context.Background()) time.Sleep(500 * time.Millisecond) return true }) if session != nil { defer session.Close() } if err != nil { logrus.Fatalf("Could not connect to database: %s", err) } clientManagers["rethink"] = rethinkManager retCode := m.Run() c.KillRemove() os.Exit(retCode) }
func TestMain(m *testing.M) { var session *r.Session var err error c, err := dockertest.ConnectToRethinkDB(20, time.Second, func(url string) bool { if session, err = r.Connect(r.ConnectOpts{Address: url, Database: "hydra"}); err != nil { return false } else if _, err = r.DBCreate("hydra").RunWrite(session); err != nil { log.Printf("Database exists: %s", err) return false } else if _, err = r.TableCreate("hydra_keys").RunWrite(session); err != nil { log.Printf("Could not create table: %s", err) return false } key, err := rand.RandomBytes(32) if err != nil { log.Printf("Could not watch: %s", err) return false } rethinkManager = &RethinkManager{ Keys: map[string]jose.JsonWebKeySet{}, Session: session, Table: r.Table("hydra_keys"), Cipher: &AEAD{ Key: key, }, } rethinkManager.Watch(context.Background()) time.Sleep(100 * time.Millisecond) return true }) if session != nil { defer session.Close() } if err != nil { log.Fatalf("Could not connect to database: %s", err) } managers["rethink"] = rethinkManager retCode := m.Run() c.KillRemove() os.Exit(retCode) }
func TestMain(m *testing.M) { var session *r.Session var err error c, err := dockertest.ConnectToRethinkDB(20, time.Second, func(url string) bool { if session, err = r.Connect(r.ConnectOpts{Address: url, Database: "hydra"}); err != nil { return false } else if _, err = r.DBCreate("hydra").RunWrite(session); err != nil { log.Printf("Database exists: %s", err) return false } else if _, err = r.TableCreate("hydra_clients").RunWrite(session); err != nil { log.Printf("Could not create table: %s", err) return false } rethinkManager = &RethinkManager{ Session: session, Table: r.Table("hydra_clients"), Clients: make(map[string]*fosite.DefaultClient), Hasher: &hash.BCrypt{ // Low workfactor reduces test time WorkFactor: 4, }, } rethinkManager.Watch(context.Background()) time.Sleep(100 * time.Millisecond) return true }) if session != nil { defer session.Close() } if err != nil { log.Fatalf("Could not connect to database: %s", err) } clientManagers["rethink"] = rethinkManager retCode := m.Run() c.KillRemove() os.Exit(retCode) }