mirror of
https://github.com/wneessen/go-hibp.git
synced 2024-12-22 18:20:38 +01:00
Merge pull request #18 from wneessen/test-coverage
Fixes and test coverage
This commit is contained in:
commit
a931f4aef3
3 changed files with 52 additions and 5 deletions
|
@ -213,8 +213,9 @@ func (d *ApiDate) UnmarshalJSON(s []byte) error {
|
|||
}
|
||||
|
||||
// Time adds a Time() method to the ApiDate converted time.Time type
|
||||
func (d ApiDate) Time() time.Time {
|
||||
return time.Time(d)
|
||||
func (d *ApiDate) Time() time.Time {
|
||||
dp := *d
|
||||
return time.Time(dp)
|
||||
}
|
||||
|
||||
// setBreachOpts returns a map of default settings and overridden values from different BreachOption
|
||||
|
|
|
@ -1,11 +1,19 @@
|
|||
package hibp
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"os"
|
||||
"testing"
|
||||
)
|
||||
|
||||
const (
|
||||
validDateJSON = `{"date": "2022-10-01"}`
|
||||
validNullDateJSON = `{"date": "null"}`
|
||||
invalidJSON = `{"date": '2022-10-01'}`
|
||||
invalidDateJSON = `{"date": "202299-10-01"}`
|
||||
)
|
||||
|
||||
// TestBreaches tests the Breaches() method of the breaches API
|
||||
func TestBreaches(t *testing.T) {
|
||||
hc := New()
|
||||
|
@ -238,6 +246,44 @@ func TestBreachedAccountWithoutTruncate(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
// TestApiDate_UnmarshalJSON_Time tests the ApiDate type JSON unmarshalling
|
||||
func TestApiDate_UnmarshalJSON_Time(t *testing.T) {
|
||||
type testData struct {
|
||||
Date *ApiDate `json:"date"`
|
||||
}
|
||||
tt := []struct {
|
||||
n string
|
||||
j []byte
|
||||
d string
|
||||
nil bool
|
||||
sf bool
|
||||
}{
|
||||
{"valid Date JSON", []byte(validDateJSON), "2022-10-01", false, false},
|
||||
{"valid Null Date JSON", []byte(validNullDateJSON), "", true, false},
|
||||
{"invalid JSON", []byte(invalidJSON), "", true, true},
|
||||
{"invalid Date", []byte(invalidDateJSON), "", true, true},
|
||||
}
|
||||
|
||||
for _, tc := range tt {
|
||||
t.Run(tc.n, func(t *testing.T) {
|
||||
var td testData
|
||||
if err := json.Unmarshal(tc.j, &td); err != nil && !tc.sf {
|
||||
t.Errorf("failed to unmarshal test JSON: %s", err)
|
||||
}
|
||||
if td.Date == nil && !tc.nil {
|
||||
t.Errorf("unmarshal on ApiDate type failed. Expected data but got nil")
|
||||
return
|
||||
}
|
||||
if !tc.nil {
|
||||
tdd := td.Date.Time().Format("2006-01-02")
|
||||
if tdd != tc.d && !tc.sf {
|
||||
t.Errorf(`unmarshal of ApiDate type failed. Expected: %q, got %q"`, tc.d, tdd)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// ExampleBreachApi_Breaches_getAllBreaches is a code example to show how to fetch all breaches from the
|
||||
// HIBP breaches API
|
||||
func ExampleBreachApi_Breaches_getAllBreaches() {
|
||||
|
|
|
@ -162,7 +162,7 @@ func ExamplePwnedPassApi_CheckPassword() {
|
|||
if m != nil && m.Count != 0 {
|
||||
fmt.Printf("Your password with the hash %q was found %d times in the pwned passwords DB\n",
|
||||
m.Hash, m.Count)
|
||||
// Output: Your password with the hash "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3" was found 86453 times in the pwned passwords DB
|
||||
// Output: Your password with the hash "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3" was found 86495 times in the pwned passwords DB
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -177,7 +177,7 @@ func ExamplePwnedPassApi_CheckPassword_withPadding() {
|
|||
if m != nil && m.Count != 0 {
|
||||
fmt.Printf("Your password with the hash %q was found %d times in the pwned passwords DB\n",
|
||||
m.Hash, m.Count)
|
||||
// Output: Your password with the hash "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3" was found 86453 times in the pwned passwords DB
|
||||
// Output: Your password with the hash "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3" was found 86495 times in the pwned passwords DB
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -193,6 +193,6 @@ func ExamplePwnedPassApi_CheckSHA1() {
|
|||
if m != nil && m.Count != 0 {
|
||||
fmt.Printf("Your password with the hash %q was found %d times in the pwned passwords DB\n",
|
||||
m.Hash, m.Count)
|
||||
// Output: Your password with the hash "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3" was found 86453 times in the pwned passwords DB
|
||||
// Output: Your password with the hash "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3" was found 86495 times in the pwned passwords DB
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue