aboutsummaryrefslogtreecommitdiff
path: root/reqres_tests.go
diff options
context:
space:
mode:
Diffstat (limited to 'reqres_tests.go')
-rw-r--r--reqres_tests.go61
1 files changed, 60 insertions, 1 deletions
diff --git a/reqres_tests.go b/reqres_tests.go
index 7f74bcd..a41c98f 100644
--- a/reqres_tests.go
+++ b/reqres_tests.go
@@ -1,15 +1,74 @@
package stfe
import (
+ "fmt"
"testing"
+
+ "net/http"
)
// TODO: TestNewAddEntryRequest
func TestNewAddEntryRequest(t *testing.T) {
}
-// TODO: TestNewGetEntriesRequest
func TestNewGetEntriesRequest(t *testing.T) {
+ lp := makeTestLogParameters(t, nil)
+ for _, table := range []struct {
+ description string
+ start string
+ end string
+ wantErr bool
+ }{
+ {
+ description: "bad request: start must be an integer",
+ start: "start",
+ end: "10",
+ wantErr: true,
+ },
+ {
+ description: "bad request: end must be an integer",
+ start: "10",
+ end: "end",
+ wantErr: true,
+ },
+ {
+ description: "bad request: start must not be negative",
+ start: "-1",
+ end: "10",
+ wantErr: true,
+ },
+ {
+ description: "bad request: start must be larger than end",
+ start: "1",
+ end: "0",
+ wantErr: true,
+ },
+ {
+ description: "ok request but bad response: expected truncated",
+ start: "0",
+ end: fmt.Sprintf("%d", testMaxRange),
+ },
+ {
+ description: "ok request and response",
+ start: "0",
+ end: fmt.Sprintf("%d", testMaxRange-1),
+ },
+ } {
+ req, err := http.NewRequest("GET", "http://example.com/"+lp.Prefix+"/get-entries", nil)
+ q := req.URL.Query()
+ q.Add("start", table.start)
+ q.Add("end", table.end)
+ req.URL.RawQuery = q.Encode()
+
+ rsp, err := lp.newGetEntriesRequest(req)
+ if got, want := err != nil, table.wantErr; got != want {
+ t.Errorf("got error is %v but wanted %v in test %q: %v", got, want, table.description, err)
+ }
+
+ if n := rsp.End - rsp.Start + 1; n > int64(testMaxRange) {
+ t.Errorf("get-entries range is too large in test %q: %d > %d", table.description, n, testMaxRange)
+ }
+ }
}
// TODO: TestNewGetProofByHashRequest