// 正常系。 // アカウント認証代行部分の連携がうまくできていることの検査。 func TestServer(t *testing.T) { // //////////////////////////////// // logutil.SetupConsole(logRoot, level.ALL) // defer logutil.SetupConsole(logRoot, level.OFF) // //////////////////////////////// if monPool == nil { t.SkipNow() } // ID プロバイダの準備。 idpServ, err := newTestIdProvider([]jwk.Key{test_idpKey}) if err != nil { t.Fatal(err) } defer idpServ.close() idp := idpServ.info() // 環境設定。 param, err := newTestParameter() if err != nil { t.Fatal(err) } param.socPort, err = test.FreePort() if err != nil { t.Fatal(err) } // 鍵。 keyDbPath, err := setupKeyDb(param.keyDbPath, []jwk.Key{test_key}) if err != nil { t.Fatal(err) } defer os.RemoveAll(keyDbPath) param.keyDbPath = keyDbPath // ID プロバイダ DB の準備。 param.idpDbTag = param.idpDbTag + strconv.FormatInt(time.Now().UnixNano(), 16) if err := setupIdpDb(param.idpDbTag, param.idpDbTag2, []idpdb.Element{idp}); err != nil { t.Fatal(err) } defer clearIdpDb(param.idpDbTag, param.idpDbTag2) testServer(t, param, idpServ) }
// データベースをちゃんと使った正常系。 func TestServerWithDb(t *testing.T) { // //////////////////////////////// // logutil.SetupConsole(logRoot, level.ALL) // defer logutil.SetupConsole(logRoot, level.OFF) // //////////////////////////////// if monPool == nil { t.SkipNow() } red, err := test.NewRedisServer() if err != nil { t.Fatal(err) } else if red == nil { t.SkipNow() } defer red.Close() // ID プロバイダの準備。 idpServ, err := newTestIdProvider([]jwk.Key{test_idpKey}) if err != nil { t.Fatal(err) } defer idpServ.close() idp := idpServ.info() // 環境設定。 param, err := newTestParameter() if err != nil { t.Fatal(err) } param.socPort, err = test.FreePort() if err != nil { t.Fatal(err) } // 鍵。 param.keyDbType = "redis" param.keyDbAddr = red.Address() keyDbPath, err := setupKeyDb(param.keyDbPath, []jwk.Key{test_key}) if err != nil { t.Fatal(err) } defer os.RemoveAll(keyDbPath) param.keyDbPath = keyDbPath // web DB の準備。 param.webDbType = "redis" param.webDbAddr = red.Address() // ID プロバイダ DB の準備。 param.idpDbTag = param.idpDbTag + strconv.FormatInt(time.Now().UnixNano(), 16) if err := setupIdpDb(param.idpDbTag, param.idpDbTag2, []idpdb.Element{idp}); err != nil { t.Fatal(err) } defer clearIdpDb(param.idpDbTag, param.idpDbTag2) // セッション DB の準備。 param.asessDbType = "redis" param.asessDbAddr = red.Address() // アクセストークン DB の準備。 param.tokDbType = "redis" param.tokDbAddr = red.Address() testServer(t, param, idpServ) }