feat(ooapi): add toplevel client and simplify API (#248)
* feat(ooapi): add toplevel client and simplify API This diff should simplify using ooapi from other packages by adding more abstraction that wraps the existing code. Part of https://github.com/ooni/probe/issues/1355. * fix(ooapi): use correct comment for cloners See https://github.com/ooni/probe-cli/pull/248#discussion_r590663843 * fix(ooapi): make sure the documentation is current See https://github.com/ooni/probe-cli/pull/248#discussion_r590665773 * fix(ooapi): automate copying APIs See https://github.com/ooni/probe-cli/pull/248#discussion_r590665837 * feat(ooapi): add unit tests for clientcall.go See https://github.com/ooni/probe-cli/pull/248#discussion_r590666297 * fix(ooapi): rewrite integration tests to use toplevel API See https://github.com/ooni/probe-cli/pull/248#discussion_r590665084
This commit is contained in:
parent
c22828d369
commit
28ce79eff1
33 changed files with 2090 additions and 795 deletions
|
|
@ -1,5 +1,5 @@
|
|||
// Code generated by go generate; DO NOT EDIT.
|
||||
// 2021-02-26 15:45:52.9205436 +0100 CET m=+0.000137951
|
||||
// 2021-03-10 13:17:34.605701732 +0100 CET m=+0.000131680
|
||||
|
||||
package ooapi
|
||||
|
||||
|
|
@ -16,7 +16,7 @@ import (
|
|||
"github.com/ooni/probe-cli/v3/internal/engine/ooapi/apimodel"
|
||||
)
|
||||
|
||||
func TestRegisterAndLoginPsiphonConfigAPISuccess(t *testing.T) {
|
||||
func TestRegisterAndLoginPsiphonConfigSuccess(t *testing.T) {
|
||||
ff := &fakeFill{}
|
||||
var expect apimodel.PsiphonConfigResponse
|
||||
ff.fill(&expect)
|
||||
|
|
@ -31,7 +31,7 @@ func TestRegisterAndLoginPsiphonConfigAPISuccess(t *testing.T) {
|
|||
Token: "antani-antani-token",
|
||||
},
|
||||
}
|
||||
login := &PsiphonConfigAPIWithLogin{
|
||||
login := &withLoginPsiphonConfigAPI{
|
||||
API: &FakePsiphonConfigAPI{
|
||||
WithResult: &FakePsiphonConfigAPI{
|
||||
Response: expect,
|
||||
|
|
@ -39,7 +39,7 @@ func TestRegisterAndLoginPsiphonConfigAPISuccess(t *testing.T) {
|
|||
},
|
||||
RegisterAPI: registerAPI,
|
||||
LoginAPI: loginAPI,
|
||||
KVStore: &memkvstore{},
|
||||
KVStore: &MemKVStore{},
|
||||
}
|
||||
var req *apimodel.PsiphonConfigRequest
|
||||
ff.fill(&req)
|
||||
|
|
@ -62,7 +62,7 @@ func TestRegisterAndLoginPsiphonConfigAPISuccess(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestPsiphonConfigAPIContinueUsingToken(t *testing.T) {
|
||||
func TestPsiphonConfigContinueUsingToken(t *testing.T) {
|
||||
ff := &fakeFill{}
|
||||
var expect apimodel.PsiphonConfigResponse
|
||||
ff.fill(&expect)
|
||||
|
|
@ -77,7 +77,7 @@ func TestPsiphonConfigAPIContinueUsingToken(t *testing.T) {
|
|||
Token: "antani-antani-token",
|
||||
},
|
||||
}
|
||||
login := &PsiphonConfigAPIWithLogin{
|
||||
login := &withLoginPsiphonConfigAPI{
|
||||
API: &FakePsiphonConfigAPI{
|
||||
WithResult: &FakePsiphonConfigAPI{
|
||||
Response: expect,
|
||||
|
|
@ -85,7 +85,7 @@ func TestPsiphonConfigAPIContinueUsingToken(t *testing.T) {
|
|||
},
|
||||
RegisterAPI: registerAPI,
|
||||
LoginAPI: loginAPI,
|
||||
KVStore: &memkvstore{},
|
||||
KVStore: &MemKVStore{},
|
||||
}
|
||||
var req *apimodel.PsiphonConfigRequest
|
||||
ff.fill(&req)
|
||||
|
|
@ -135,7 +135,7 @@ func TestPsiphonConfigAPIContinueUsingToken(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestPsiphonConfigAPIWithValidButExpiredToken(t *testing.T) {
|
||||
func TestPsiphonConfigWithValidButExpiredToken(t *testing.T) {
|
||||
ff := &fakeFill{}
|
||||
var expect apimodel.PsiphonConfigResponse
|
||||
ff.fill(&expect)
|
||||
|
|
@ -149,7 +149,7 @@ func TestPsiphonConfigAPIWithValidButExpiredToken(t *testing.T) {
|
|||
Token: "antani-antani-token",
|
||||
},
|
||||
}
|
||||
login := &PsiphonConfigAPIWithLogin{
|
||||
login := &withLoginPsiphonConfigAPI{
|
||||
API: &FakePsiphonConfigAPI{
|
||||
WithResult: &FakePsiphonConfigAPI{
|
||||
Response: expect,
|
||||
|
|
@ -157,7 +157,7 @@ func TestPsiphonConfigAPIWithValidButExpiredToken(t *testing.T) {
|
|||
},
|
||||
RegisterAPI: registerAPI,
|
||||
LoginAPI: loginAPI,
|
||||
KVStore: &memkvstore{},
|
||||
KVStore: &MemKVStore{},
|
||||
}
|
||||
ls := &loginState{
|
||||
ClientID: "antani-antani",
|
||||
|
|
@ -189,7 +189,7 @@ func TestPsiphonConfigAPIWithValidButExpiredToken(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestPsiphonConfigAPIWithRegisterAPIError(t *testing.T) {
|
||||
func TestPsiphonConfigWithRegisterAPIError(t *testing.T) {
|
||||
ff := &fakeFill{}
|
||||
var expect apimodel.PsiphonConfigResponse
|
||||
ff.fill(&expect)
|
||||
|
|
@ -197,14 +197,14 @@ func TestPsiphonConfigAPIWithRegisterAPIError(t *testing.T) {
|
|||
registerAPI := &FakeRegisterAPI{
|
||||
Err: errMocked,
|
||||
}
|
||||
login := &PsiphonConfigAPIWithLogin{
|
||||
login := &withLoginPsiphonConfigAPI{
|
||||
API: &FakePsiphonConfigAPI{
|
||||
WithResult: &FakePsiphonConfigAPI{
|
||||
Response: expect,
|
||||
},
|
||||
},
|
||||
RegisterAPI: registerAPI,
|
||||
KVStore: &memkvstore{},
|
||||
KVStore: &MemKVStore{},
|
||||
}
|
||||
var req *apimodel.PsiphonConfigRequest
|
||||
ff.fill(&req)
|
||||
|
|
@ -221,7 +221,7 @@ func TestPsiphonConfigAPIWithRegisterAPIError(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestPsiphonConfigAPIWithLoginFailure(t *testing.T) {
|
||||
func TestPsiphonConfigWithLoginFailure(t *testing.T) {
|
||||
ff := &fakeFill{}
|
||||
var expect apimodel.PsiphonConfigResponse
|
||||
ff.fill(&expect)
|
||||
|
|
@ -234,7 +234,7 @@ func TestPsiphonConfigAPIWithLoginFailure(t *testing.T) {
|
|||
loginAPI := &FakeLoginAPI{
|
||||
Err: errMocked,
|
||||
}
|
||||
login := &PsiphonConfigAPIWithLogin{
|
||||
login := &withLoginPsiphonConfigAPI{
|
||||
API: &FakePsiphonConfigAPI{
|
||||
WithResult: &FakePsiphonConfigAPI{
|
||||
Response: expect,
|
||||
|
|
@ -242,7 +242,7 @@ func TestPsiphonConfigAPIWithLoginFailure(t *testing.T) {
|
|||
},
|
||||
RegisterAPI: registerAPI,
|
||||
LoginAPI: loginAPI,
|
||||
KVStore: &memkvstore{},
|
||||
KVStore: &MemKVStore{},
|
||||
}
|
||||
var req *apimodel.PsiphonConfigRequest
|
||||
ff.fill(&req)
|
||||
|
|
@ -262,7 +262,7 @@ func TestPsiphonConfigAPIWithLoginFailure(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestRegisterAndLoginPsiphonConfigAPIThenFail(t *testing.T) {
|
||||
func TestRegisterAndLoginPsiphonConfigThenFail(t *testing.T) {
|
||||
ff := &fakeFill{}
|
||||
var expect apimodel.PsiphonConfigResponse
|
||||
ff.fill(&expect)
|
||||
|
|
@ -278,7 +278,7 @@ func TestRegisterAndLoginPsiphonConfigAPIThenFail(t *testing.T) {
|
|||
},
|
||||
}
|
||||
errMocked := errors.New("mocked error")
|
||||
login := &PsiphonConfigAPIWithLogin{
|
||||
login := &withLoginPsiphonConfigAPI{
|
||||
API: &FakePsiphonConfigAPI{
|
||||
WithResult: &FakePsiphonConfigAPI{
|
||||
Err: errMocked,
|
||||
|
|
@ -286,7 +286,7 @@ func TestRegisterAndLoginPsiphonConfigAPIThenFail(t *testing.T) {
|
|||
},
|
||||
RegisterAPI: registerAPI,
|
||||
LoginAPI: loginAPI,
|
||||
KVStore: &memkvstore{},
|
||||
KVStore: &MemKVStore{},
|
||||
}
|
||||
var req *apimodel.PsiphonConfigRequest
|
||||
ff.fill(&req)
|
||||
|
|
@ -306,28 +306,28 @@ func TestRegisterAndLoginPsiphonConfigAPIThenFail(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestPsiphonConfigAPITheDatabaseIsReplaced(t *testing.T) {
|
||||
func TestPsiphonConfigTheDatabaseIsReplaced(t *testing.T) {
|
||||
ff := &fakeFill{}
|
||||
handler := &LoginHandler{t: t}
|
||||
srvr := httptest.NewServer(handler)
|
||||
defer srvr.Close()
|
||||
registerAPI := &RegisterAPI{
|
||||
HTTPClient: &VerboseHTTPClient{t: t},
|
||||
registerAPI := &simpleRegisterAPI{
|
||||
HTTPClient: &VerboseHTTPClient{T: t},
|
||||
BaseURL: srvr.URL,
|
||||
}
|
||||
loginAPI := &LoginAPI{
|
||||
HTTPClient: &VerboseHTTPClient{t: t},
|
||||
loginAPI := &simpleLoginAPI{
|
||||
HTTPClient: &VerboseHTTPClient{T: t},
|
||||
BaseURL: srvr.URL,
|
||||
}
|
||||
baseAPI := &PsiphonConfigAPI{
|
||||
HTTPClient: &VerboseHTTPClient{t: t},
|
||||
baseAPI := &simplePsiphonConfigAPI{
|
||||
HTTPClient: &VerboseHTTPClient{T: t},
|
||||
BaseURL: srvr.URL,
|
||||
}
|
||||
login := &PsiphonConfigAPIWithLogin{
|
||||
login := &withLoginPsiphonConfigAPI{
|
||||
API: baseAPI,
|
||||
RegisterAPI: registerAPI,
|
||||
LoginAPI: loginAPI,
|
||||
KVStore: &memkvstore{},
|
||||
KVStore: &MemKVStore{},
|
||||
}
|
||||
var req *apimodel.PsiphonConfigRequest
|
||||
ff.fill(&req)
|
||||
|
|
@ -366,7 +366,7 @@ func TestPsiphonConfigAPITheDatabaseIsReplaced(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestRegisterAndLoginPsiphonConfigAPICannotWriteState(t *testing.T) {
|
||||
func TestRegisterAndLoginPsiphonConfigCannotWriteState(t *testing.T) {
|
||||
ff := &fakeFill{}
|
||||
var expect apimodel.PsiphonConfigResponse
|
||||
ff.fill(&expect)
|
||||
|
|
@ -382,7 +382,7 @@ func TestRegisterAndLoginPsiphonConfigAPICannotWriteState(t *testing.T) {
|
|||
},
|
||||
}
|
||||
errMocked := errors.New("mocked error")
|
||||
login := &PsiphonConfigAPIWithLogin{
|
||||
login := &withLoginPsiphonConfigAPI{
|
||||
API: &FakePsiphonConfigAPI{
|
||||
WithResult: &FakePsiphonConfigAPI{
|
||||
Response: expect,
|
||||
|
|
@ -390,7 +390,7 @@ func TestRegisterAndLoginPsiphonConfigAPICannotWriteState(t *testing.T) {
|
|||
},
|
||||
RegisterAPI: registerAPI,
|
||||
LoginAPI: loginAPI,
|
||||
KVStore: &memkvstore{},
|
||||
KVStore: &MemKVStore{},
|
||||
JSONCodec: &FakeCodec{
|
||||
EncodeErr: errMocked,
|
||||
},
|
||||
|
|
@ -413,13 +413,13 @@ func TestRegisterAndLoginPsiphonConfigAPICannotWriteState(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestPsiphonConfigAPIReadStateDecodeFailure(t *testing.T) {
|
||||
func TestPsiphonConfigReadStateDecodeFailure(t *testing.T) {
|
||||
ff := &fakeFill{}
|
||||
var expect apimodel.PsiphonConfigResponse
|
||||
ff.fill(&expect)
|
||||
errMocked := errors.New("mocked error")
|
||||
login := &PsiphonConfigAPIWithLogin{
|
||||
KVStore: &memkvstore{},
|
||||
login := &withLoginPsiphonConfigAPI{
|
||||
KVStore: &MemKVStore{},
|
||||
JSONCodec: &FakeCodec{DecodeErr: errMocked},
|
||||
}
|
||||
ls := &loginState{
|
||||
|
|
@ -440,28 +440,28 @@ func TestPsiphonConfigAPIReadStateDecodeFailure(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestPsiphonConfigAPITheDatabaseIsReplacedThenFailure(t *testing.T) {
|
||||
func TestPsiphonConfigTheDatabaseIsReplacedThenFailure(t *testing.T) {
|
||||
ff := &fakeFill{}
|
||||
handler := &LoginHandler{t: t}
|
||||
srvr := httptest.NewServer(handler)
|
||||
defer srvr.Close()
|
||||
registerAPI := &RegisterAPI{
|
||||
HTTPClient: &VerboseHTTPClient{t: t},
|
||||
registerAPI := &simpleRegisterAPI{
|
||||
HTTPClient: &VerboseHTTPClient{T: t},
|
||||
BaseURL: srvr.URL,
|
||||
}
|
||||
loginAPI := &LoginAPI{
|
||||
HTTPClient: &VerboseHTTPClient{t: t},
|
||||
loginAPI := &simpleLoginAPI{
|
||||
HTTPClient: &VerboseHTTPClient{T: t},
|
||||
BaseURL: srvr.URL,
|
||||
}
|
||||
baseAPI := &PsiphonConfigAPI{
|
||||
HTTPClient: &VerboseHTTPClient{t: t},
|
||||
baseAPI := &simplePsiphonConfigAPI{
|
||||
HTTPClient: &VerboseHTTPClient{T: t},
|
||||
BaseURL: srvr.URL,
|
||||
}
|
||||
login := &PsiphonConfigAPIWithLogin{
|
||||
login := &withLoginPsiphonConfigAPI{
|
||||
API: baseAPI,
|
||||
RegisterAPI: registerAPI,
|
||||
LoginAPI: loginAPI,
|
||||
KVStore: &memkvstore{},
|
||||
KVStore: &MemKVStore{},
|
||||
}
|
||||
var req *apimodel.PsiphonConfigRequest
|
||||
ff.fill(&req)
|
||||
|
|
@ -502,28 +502,28 @@ func TestPsiphonConfigAPITheDatabaseIsReplacedThenFailure(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestPsiphonConfigAPIClockIsOffThenSuccess(t *testing.T) {
|
||||
func TestPsiphonConfigClockIsOffThenSuccess(t *testing.T) {
|
||||
ff := &fakeFill{}
|
||||
handler := &LoginHandler{t: t}
|
||||
srvr := httptest.NewServer(handler)
|
||||
defer srvr.Close()
|
||||
registerAPI := &RegisterAPI{
|
||||
HTTPClient: &VerboseHTTPClient{t: t},
|
||||
registerAPI := &simpleRegisterAPI{
|
||||
HTTPClient: &VerboseHTTPClient{T: t},
|
||||
BaseURL: srvr.URL,
|
||||
}
|
||||
loginAPI := &LoginAPI{
|
||||
HTTPClient: &VerboseHTTPClient{t: t},
|
||||
loginAPI := &simpleLoginAPI{
|
||||
HTTPClient: &VerboseHTTPClient{T: t},
|
||||
BaseURL: srvr.URL,
|
||||
}
|
||||
baseAPI := &PsiphonConfigAPI{
|
||||
HTTPClient: &VerboseHTTPClient{t: t},
|
||||
baseAPI := &simplePsiphonConfigAPI{
|
||||
HTTPClient: &VerboseHTTPClient{T: t},
|
||||
BaseURL: srvr.URL,
|
||||
}
|
||||
login := &PsiphonConfigAPIWithLogin{
|
||||
login := &withLoginPsiphonConfigAPI{
|
||||
API: baseAPI,
|
||||
RegisterAPI: registerAPI,
|
||||
LoginAPI: loginAPI,
|
||||
KVStore: &memkvstore{},
|
||||
KVStore: &MemKVStore{},
|
||||
}
|
||||
var req *apimodel.PsiphonConfigRequest
|
||||
ff.fill(&req)
|
||||
|
|
@ -564,28 +564,28 @@ func TestPsiphonConfigAPIClockIsOffThenSuccess(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestPsiphonConfigAPIClockIsOffThen401(t *testing.T) {
|
||||
func TestPsiphonConfigClockIsOffThen401(t *testing.T) {
|
||||
ff := &fakeFill{}
|
||||
handler := &LoginHandler{t: t}
|
||||
srvr := httptest.NewServer(handler)
|
||||
defer srvr.Close()
|
||||
registerAPI := &RegisterAPI{
|
||||
HTTPClient: &VerboseHTTPClient{t: t},
|
||||
registerAPI := &simpleRegisterAPI{
|
||||
HTTPClient: &VerboseHTTPClient{T: t},
|
||||
BaseURL: srvr.URL,
|
||||
}
|
||||
loginAPI := &LoginAPI{
|
||||
HTTPClient: &VerboseHTTPClient{t: t},
|
||||
loginAPI := &simpleLoginAPI{
|
||||
HTTPClient: &VerboseHTTPClient{T: t},
|
||||
BaseURL: srvr.URL,
|
||||
}
|
||||
baseAPI := &PsiphonConfigAPI{
|
||||
HTTPClient: &VerboseHTTPClient{t: t},
|
||||
baseAPI := &simplePsiphonConfigAPI{
|
||||
HTTPClient: &VerboseHTTPClient{T: t},
|
||||
BaseURL: srvr.URL,
|
||||
}
|
||||
login := &PsiphonConfigAPIWithLogin{
|
||||
login := &withLoginPsiphonConfigAPI{
|
||||
API: baseAPI,
|
||||
RegisterAPI: registerAPI,
|
||||
LoginAPI: loginAPI,
|
||||
KVStore: &memkvstore{},
|
||||
KVStore: &MemKVStore{},
|
||||
}
|
||||
var req *apimodel.PsiphonConfigRequest
|
||||
ff.fill(&req)
|
||||
|
|
@ -627,28 +627,28 @@ func TestPsiphonConfigAPIClockIsOffThen401(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestPsiphonConfigAPIClockIsOffThen500(t *testing.T) {
|
||||
func TestPsiphonConfigClockIsOffThen500(t *testing.T) {
|
||||
ff := &fakeFill{}
|
||||
handler := &LoginHandler{t: t}
|
||||
srvr := httptest.NewServer(handler)
|
||||
defer srvr.Close()
|
||||
registerAPI := &RegisterAPI{
|
||||
HTTPClient: &VerboseHTTPClient{t: t},
|
||||
registerAPI := &simpleRegisterAPI{
|
||||
HTTPClient: &VerboseHTTPClient{T: t},
|
||||
BaseURL: srvr.URL,
|
||||
}
|
||||
loginAPI := &LoginAPI{
|
||||
HTTPClient: &VerboseHTTPClient{t: t},
|
||||
loginAPI := &simpleLoginAPI{
|
||||
HTTPClient: &VerboseHTTPClient{T: t},
|
||||
BaseURL: srvr.URL,
|
||||
}
|
||||
baseAPI := &PsiphonConfigAPI{
|
||||
HTTPClient: &VerboseHTTPClient{t: t},
|
||||
baseAPI := &simplePsiphonConfigAPI{
|
||||
HTTPClient: &VerboseHTTPClient{T: t},
|
||||
BaseURL: srvr.URL,
|
||||
}
|
||||
login := &PsiphonConfigAPIWithLogin{
|
||||
login := &withLoginPsiphonConfigAPI{
|
||||
API: baseAPI,
|
||||
RegisterAPI: registerAPI,
|
||||
LoginAPI: loginAPI,
|
||||
KVStore: &memkvstore{},
|
||||
KVStore: &MemKVStore{},
|
||||
}
|
||||
var req *apimodel.PsiphonConfigRequest
|
||||
ff.fill(&req)
|
||||
|
|
@ -690,7 +690,7 @@ func TestPsiphonConfigAPIClockIsOffThen500(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestRegisterAndLoginTorTargetsAPISuccess(t *testing.T) {
|
||||
func TestRegisterAndLoginTorTargetsSuccess(t *testing.T) {
|
||||
ff := &fakeFill{}
|
||||
var expect apimodel.TorTargetsResponse
|
||||
ff.fill(&expect)
|
||||
|
|
@ -705,7 +705,7 @@ func TestRegisterAndLoginTorTargetsAPISuccess(t *testing.T) {
|
|||
Token: "antani-antani-token",
|
||||
},
|
||||
}
|
||||
login := &TorTargetsAPIWithLogin{
|
||||
login := &withLoginTorTargetsAPI{
|
||||
API: &FakeTorTargetsAPI{
|
||||
WithResult: &FakeTorTargetsAPI{
|
||||
Response: expect,
|
||||
|
|
@ -713,7 +713,7 @@ func TestRegisterAndLoginTorTargetsAPISuccess(t *testing.T) {
|
|||
},
|
||||
RegisterAPI: registerAPI,
|
||||
LoginAPI: loginAPI,
|
||||
KVStore: &memkvstore{},
|
||||
KVStore: &MemKVStore{},
|
||||
}
|
||||
var req *apimodel.TorTargetsRequest
|
||||
ff.fill(&req)
|
||||
|
|
@ -736,7 +736,7 @@ func TestRegisterAndLoginTorTargetsAPISuccess(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestTorTargetsAPIContinueUsingToken(t *testing.T) {
|
||||
func TestTorTargetsContinueUsingToken(t *testing.T) {
|
||||
ff := &fakeFill{}
|
||||
var expect apimodel.TorTargetsResponse
|
||||
ff.fill(&expect)
|
||||
|
|
@ -751,7 +751,7 @@ func TestTorTargetsAPIContinueUsingToken(t *testing.T) {
|
|||
Token: "antani-antani-token",
|
||||
},
|
||||
}
|
||||
login := &TorTargetsAPIWithLogin{
|
||||
login := &withLoginTorTargetsAPI{
|
||||
API: &FakeTorTargetsAPI{
|
||||
WithResult: &FakeTorTargetsAPI{
|
||||
Response: expect,
|
||||
|
|
@ -759,7 +759,7 @@ func TestTorTargetsAPIContinueUsingToken(t *testing.T) {
|
|||
},
|
||||
RegisterAPI: registerAPI,
|
||||
LoginAPI: loginAPI,
|
||||
KVStore: &memkvstore{},
|
||||
KVStore: &MemKVStore{},
|
||||
}
|
||||
var req *apimodel.TorTargetsRequest
|
||||
ff.fill(&req)
|
||||
|
|
@ -809,7 +809,7 @@ func TestTorTargetsAPIContinueUsingToken(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestTorTargetsAPIWithValidButExpiredToken(t *testing.T) {
|
||||
func TestTorTargetsWithValidButExpiredToken(t *testing.T) {
|
||||
ff := &fakeFill{}
|
||||
var expect apimodel.TorTargetsResponse
|
||||
ff.fill(&expect)
|
||||
|
|
@ -823,7 +823,7 @@ func TestTorTargetsAPIWithValidButExpiredToken(t *testing.T) {
|
|||
Token: "antani-antani-token",
|
||||
},
|
||||
}
|
||||
login := &TorTargetsAPIWithLogin{
|
||||
login := &withLoginTorTargetsAPI{
|
||||
API: &FakeTorTargetsAPI{
|
||||
WithResult: &FakeTorTargetsAPI{
|
||||
Response: expect,
|
||||
|
|
@ -831,7 +831,7 @@ func TestTorTargetsAPIWithValidButExpiredToken(t *testing.T) {
|
|||
},
|
||||
RegisterAPI: registerAPI,
|
||||
LoginAPI: loginAPI,
|
||||
KVStore: &memkvstore{},
|
||||
KVStore: &MemKVStore{},
|
||||
}
|
||||
ls := &loginState{
|
||||
ClientID: "antani-antani",
|
||||
|
|
@ -863,7 +863,7 @@ func TestTorTargetsAPIWithValidButExpiredToken(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestTorTargetsAPIWithRegisterAPIError(t *testing.T) {
|
||||
func TestTorTargetsWithRegisterAPIError(t *testing.T) {
|
||||
ff := &fakeFill{}
|
||||
var expect apimodel.TorTargetsResponse
|
||||
ff.fill(&expect)
|
||||
|
|
@ -871,14 +871,14 @@ func TestTorTargetsAPIWithRegisterAPIError(t *testing.T) {
|
|||
registerAPI := &FakeRegisterAPI{
|
||||
Err: errMocked,
|
||||
}
|
||||
login := &TorTargetsAPIWithLogin{
|
||||
login := &withLoginTorTargetsAPI{
|
||||
API: &FakeTorTargetsAPI{
|
||||
WithResult: &FakeTorTargetsAPI{
|
||||
Response: expect,
|
||||
},
|
||||
},
|
||||
RegisterAPI: registerAPI,
|
||||
KVStore: &memkvstore{},
|
||||
KVStore: &MemKVStore{},
|
||||
}
|
||||
var req *apimodel.TorTargetsRequest
|
||||
ff.fill(&req)
|
||||
|
|
@ -895,7 +895,7 @@ func TestTorTargetsAPIWithRegisterAPIError(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestTorTargetsAPIWithLoginFailure(t *testing.T) {
|
||||
func TestTorTargetsWithLoginFailure(t *testing.T) {
|
||||
ff := &fakeFill{}
|
||||
var expect apimodel.TorTargetsResponse
|
||||
ff.fill(&expect)
|
||||
|
|
@ -908,7 +908,7 @@ func TestTorTargetsAPIWithLoginFailure(t *testing.T) {
|
|||
loginAPI := &FakeLoginAPI{
|
||||
Err: errMocked,
|
||||
}
|
||||
login := &TorTargetsAPIWithLogin{
|
||||
login := &withLoginTorTargetsAPI{
|
||||
API: &FakeTorTargetsAPI{
|
||||
WithResult: &FakeTorTargetsAPI{
|
||||
Response: expect,
|
||||
|
|
@ -916,7 +916,7 @@ func TestTorTargetsAPIWithLoginFailure(t *testing.T) {
|
|||
},
|
||||
RegisterAPI: registerAPI,
|
||||
LoginAPI: loginAPI,
|
||||
KVStore: &memkvstore{},
|
||||
KVStore: &MemKVStore{},
|
||||
}
|
||||
var req *apimodel.TorTargetsRequest
|
||||
ff.fill(&req)
|
||||
|
|
@ -936,7 +936,7 @@ func TestTorTargetsAPIWithLoginFailure(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestRegisterAndLoginTorTargetsAPIThenFail(t *testing.T) {
|
||||
func TestRegisterAndLoginTorTargetsThenFail(t *testing.T) {
|
||||
ff := &fakeFill{}
|
||||
var expect apimodel.TorTargetsResponse
|
||||
ff.fill(&expect)
|
||||
|
|
@ -952,7 +952,7 @@ func TestRegisterAndLoginTorTargetsAPIThenFail(t *testing.T) {
|
|||
},
|
||||
}
|
||||
errMocked := errors.New("mocked error")
|
||||
login := &TorTargetsAPIWithLogin{
|
||||
login := &withLoginTorTargetsAPI{
|
||||
API: &FakeTorTargetsAPI{
|
||||
WithResult: &FakeTorTargetsAPI{
|
||||
Err: errMocked,
|
||||
|
|
@ -960,7 +960,7 @@ func TestRegisterAndLoginTorTargetsAPIThenFail(t *testing.T) {
|
|||
},
|
||||
RegisterAPI: registerAPI,
|
||||
LoginAPI: loginAPI,
|
||||
KVStore: &memkvstore{},
|
||||
KVStore: &MemKVStore{},
|
||||
}
|
||||
var req *apimodel.TorTargetsRequest
|
||||
ff.fill(&req)
|
||||
|
|
@ -980,28 +980,28 @@ func TestRegisterAndLoginTorTargetsAPIThenFail(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestTorTargetsAPITheDatabaseIsReplaced(t *testing.T) {
|
||||
func TestTorTargetsTheDatabaseIsReplaced(t *testing.T) {
|
||||
ff := &fakeFill{}
|
||||
handler := &LoginHandler{t: t}
|
||||
srvr := httptest.NewServer(handler)
|
||||
defer srvr.Close()
|
||||
registerAPI := &RegisterAPI{
|
||||
HTTPClient: &VerboseHTTPClient{t: t},
|
||||
registerAPI := &simpleRegisterAPI{
|
||||
HTTPClient: &VerboseHTTPClient{T: t},
|
||||
BaseURL: srvr.URL,
|
||||
}
|
||||
loginAPI := &LoginAPI{
|
||||
HTTPClient: &VerboseHTTPClient{t: t},
|
||||
loginAPI := &simpleLoginAPI{
|
||||
HTTPClient: &VerboseHTTPClient{T: t},
|
||||
BaseURL: srvr.URL,
|
||||
}
|
||||
baseAPI := &TorTargetsAPI{
|
||||
HTTPClient: &VerboseHTTPClient{t: t},
|
||||
baseAPI := &simpleTorTargetsAPI{
|
||||
HTTPClient: &VerboseHTTPClient{T: t},
|
||||
BaseURL: srvr.URL,
|
||||
}
|
||||
login := &TorTargetsAPIWithLogin{
|
||||
login := &withLoginTorTargetsAPI{
|
||||
API: baseAPI,
|
||||
RegisterAPI: registerAPI,
|
||||
LoginAPI: loginAPI,
|
||||
KVStore: &memkvstore{},
|
||||
KVStore: &MemKVStore{},
|
||||
}
|
||||
var req *apimodel.TorTargetsRequest
|
||||
ff.fill(&req)
|
||||
|
|
@ -1040,7 +1040,7 @@ func TestTorTargetsAPITheDatabaseIsReplaced(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestRegisterAndLoginTorTargetsAPICannotWriteState(t *testing.T) {
|
||||
func TestRegisterAndLoginTorTargetsCannotWriteState(t *testing.T) {
|
||||
ff := &fakeFill{}
|
||||
var expect apimodel.TorTargetsResponse
|
||||
ff.fill(&expect)
|
||||
|
|
@ -1056,7 +1056,7 @@ func TestRegisterAndLoginTorTargetsAPICannotWriteState(t *testing.T) {
|
|||
},
|
||||
}
|
||||
errMocked := errors.New("mocked error")
|
||||
login := &TorTargetsAPIWithLogin{
|
||||
login := &withLoginTorTargetsAPI{
|
||||
API: &FakeTorTargetsAPI{
|
||||
WithResult: &FakeTorTargetsAPI{
|
||||
Response: expect,
|
||||
|
|
@ -1064,7 +1064,7 @@ func TestRegisterAndLoginTorTargetsAPICannotWriteState(t *testing.T) {
|
|||
},
|
||||
RegisterAPI: registerAPI,
|
||||
LoginAPI: loginAPI,
|
||||
KVStore: &memkvstore{},
|
||||
KVStore: &MemKVStore{},
|
||||
JSONCodec: &FakeCodec{
|
||||
EncodeErr: errMocked,
|
||||
},
|
||||
|
|
@ -1087,13 +1087,13 @@ func TestRegisterAndLoginTorTargetsAPICannotWriteState(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestTorTargetsAPIReadStateDecodeFailure(t *testing.T) {
|
||||
func TestTorTargetsReadStateDecodeFailure(t *testing.T) {
|
||||
ff := &fakeFill{}
|
||||
var expect apimodel.TorTargetsResponse
|
||||
ff.fill(&expect)
|
||||
errMocked := errors.New("mocked error")
|
||||
login := &TorTargetsAPIWithLogin{
|
||||
KVStore: &memkvstore{},
|
||||
login := &withLoginTorTargetsAPI{
|
||||
KVStore: &MemKVStore{},
|
||||
JSONCodec: &FakeCodec{DecodeErr: errMocked},
|
||||
}
|
||||
ls := &loginState{
|
||||
|
|
@ -1114,28 +1114,28 @@ func TestTorTargetsAPIReadStateDecodeFailure(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestTorTargetsAPITheDatabaseIsReplacedThenFailure(t *testing.T) {
|
||||
func TestTorTargetsTheDatabaseIsReplacedThenFailure(t *testing.T) {
|
||||
ff := &fakeFill{}
|
||||
handler := &LoginHandler{t: t}
|
||||
srvr := httptest.NewServer(handler)
|
||||
defer srvr.Close()
|
||||
registerAPI := &RegisterAPI{
|
||||
HTTPClient: &VerboseHTTPClient{t: t},
|
||||
registerAPI := &simpleRegisterAPI{
|
||||
HTTPClient: &VerboseHTTPClient{T: t},
|
||||
BaseURL: srvr.URL,
|
||||
}
|
||||
loginAPI := &LoginAPI{
|
||||
HTTPClient: &VerboseHTTPClient{t: t},
|
||||
loginAPI := &simpleLoginAPI{
|
||||
HTTPClient: &VerboseHTTPClient{T: t},
|
||||
BaseURL: srvr.URL,
|
||||
}
|
||||
baseAPI := &TorTargetsAPI{
|
||||
HTTPClient: &VerboseHTTPClient{t: t},
|
||||
baseAPI := &simpleTorTargetsAPI{
|
||||
HTTPClient: &VerboseHTTPClient{T: t},
|
||||
BaseURL: srvr.URL,
|
||||
}
|
||||
login := &TorTargetsAPIWithLogin{
|
||||
login := &withLoginTorTargetsAPI{
|
||||
API: baseAPI,
|
||||
RegisterAPI: registerAPI,
|
||||
LoginAPI: loginAPI,
|
||||
KVStore: &memkvstore{},
|
||||
KVStore: &MemKVStore{},
|
||||
}
|
||||
var req *apimodel.TorTargetsRequest
|
||||
ff.fill(&req)
|
||||
|
|
@ -1176,28 +1176,28 @@ func TestTorTargetsAPITheDatabaseIsReplacedThenFailure(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestTorTargetsAPIClockIsOffThenSuccess(t *testing.T) {
|
||||
func TestTorTargetsClockIsOffThenSuccess(t *testing.T) {
|
||||
ff := &fakeFill{}
|
||||
handler := &LoginHandler{t: t}
|
||||
srvr := httptest.NewServer(handler)
|
||||
defer srvr.Close()
|
||||
registerAPI := &RegisterAPI{
|
||||
HTTPClient: &VerboseHTTPClient{t: t},
|
||||
registerAPI := &simpleRegisterAPI{
|
||||
HTTPClient: &VerboseHTTPClient{T: t},
|
||||
BaseURL: srvr.URL,
|
||||
}
|
||||
loginAPI := &LoginAPI{
|
||||
HTTPClient: &VerboseHTTPClient{t: t},
|
||||
loginAPI := &simpleLoginAPI{
|
||||
HTTPClient: &VerboseHTTPClient{T: t},
|
||||
BaseURL: srvr.URL,
|
||||
}
|
||||
baseAPI := &TorTargetsAPI{
|
||||
HTTPClient: &VerboseHTTPClient{t: t},
|
||||
baseAPI := &simpleTorTargetsAPI{
|
||||
HTTPClient: &VerboseHTTPClient{T: t},
|
||||
BaseURL: srvr.URL,
|
||||
}
|
||||
login := &TorTargetsAPIWithLogin{
|
||||
login := &withLoginTorTargetsAPI{
|
||||
API: baseAPI,
|
||||
RegisterAPI: registerAPI,
|
||||
LoginAPI: loginAPI,
|
||||
KVStore: &memkvstore{},
|
||||
KVStore: &MemKVStore{},
|
||||
}
|
||||
var req *apimodel.TorTargetsRequest
|
||||
ff.fill(&req)
|
||||
|
|
@ -1238,28 +1238,28 @@ func TestTorTargetsAPIClockIsOffThenSuccess(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestTorTargetsAPIClockIsOffThen401(t *testing.T) {
|
||||
func TestTorTargetsClockIsOffThen401(t *testing.T) {
|
||||
ff := &fakeFill{}
|
||||
handler := &LoginHandler{t: t}
|
||||
srvr := httptest.NewServer(handler)
|
||||
defer srvr.Close()
|
||||
registerAPI := &RegisterAPI{
|
||||
HTTPClient: &VerboseHTTPClient{t: t},
|
||||
registerAPI := &simpleRegisterAPI{
|
||||
HTTPClient: &VerboseHTTPClient{T: t},
|
||||
BaseURL: srvr.URL,
|
||||
}
|
||||
loginAPI := &LoginAPI{
|
||||
HTTPClient: &VerboseHTTPClient{t: t},
|
||||
loginAPI := &simpleLoginAPI{
|
||||
HTTPClient: &VerboseHTTPClient{T: t},
|
||||
BaseURL: srvr.URL,
|
||||
}
|
||||
baseAPI := &TorTargetsAPI{
|
||||
HTTPClient: &VerboseHTTPClient{t: t},
|
||||
baseAPI := &simpleTorTargetsAPI{
|
||||
HTTPClient: &VerboseHTTPClient{T: t},
|
||||
BaseURL: srvr.URL,
|
||||
}
|
||||
login := &TorTargetsAPIWithLogin{
|
||||
login := &withLoginTorTargetsAPI{
|
||||
API: baseAPI,
|
||||
RegisterAPI: registerAPI,
|
||||
LoginAPI: loginAPI,
|
||||
KVStore: &memkvstore{},
|
||||
KVStore: &MemKVStore{},
|
||||
}
|
||||
var req *apimodel.TorTargetsRequest
|
||||
ff.fill(&req)
|
||||
|
|
@ -1301,28 +1301,28 @@ func TestTorTargetsAPIClockIsOffThen401(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestTorTargetsAPIClockIsOffThen500(t *testing.T) {
|
||||
func TestTorTargetsClockIsOffThen500(t *testing.T) {
|
||||
ff := &fakeFill{}
|
||||
handler := &LoginHandler{t: t}
|
||||
srvr := httptest.NewServer(handler)
|
||||
defer srvr.Close()
|
||||
registerAPI := &RegisterAPI{
|
||||
HTTPClient: &VerboseHTTPClient{t: t},
|
||||
registerAPI := &simpleRegisterAPI{
|
||||
HTTPClient: &VerboseHTTPClient{T: t},
|
||||
BaseURL: srvr.URL,
|
||||
}
|
||||
loginAPI := &LoginAPI{
|
||||
HTTPClient: &VerboseHTTPClient{t: t},
|
||||
loginAPI := &simpleLoginAPI{
|
||||
HTTPClient: &VerboseHTTPClient{T: t},
|
||||
BaseURL: srvr.URL,
|
||||
}
|
||||
baseAPI := &TorTargetsAPI{
|
||||
HTTPClient: &VerboseHTTPClient{t: t},
|
||||
baseAPI := &simpleTorTargetsAPI{
|
||||
HTTPClient: &VerboseHTTPClient{T: t},
|
||||
BaseURL: srvr.URL,
|
||||
}
|
||||
login := &TorTargetsAPIWithLogin{
|
||||
login := &withLoginTorTargetsAPI{
|
||||
API: baseAPI,
|
||||
RegisterAPI: registerAPI,
|
||||
LoginAPI: loginAPI,
|
||||
KVStore: &memkvstore{},
|
||||
KVStore: &MemKVStore{},
|
||||
}
|
||||
var req *apimodel.TorTargetsRequest
|
||||
ff.fill(&req)
|
||||
|
|
|
|||
Loading…
Reference in a new issue