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:
Simone Basso 2021-03-19 09:30:42 +01:00 committed by GitHub
commit 28ce79eff1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
33 changed files with 2090 additions and 795 deletions

View file

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