27 lines
687 B
Go
27 lines
687 B
Go
|
import (
|
||
|
"strings"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func TestCheckQuotaNotifiesUser(t *testing.T) {
|
||
|
var notifiedUser, notifiedMsg string
|
||
|
notifyUser = func(user, msg string) {
|
||
|
notifiedUser, notifiedMsg = user, msg
|
||
|
}
|
||
|
// ...simulate a 980MB-used condition...
|
||
|
const user = "joe@example.org"
|
||
|
CheckQuota(user)
|
||
|
if notifiedUser == "" && notifiedMsg == "" {
|
||
|
t.Fatalf("notifyUser not called")
|
||
|
}
|
||
|
if notifiedUser != user {
|
||
|
t.Errorf("wrong user (%s) notified, want %s",
|
||
|
notifiedUser, user)
|
||
|
}
|
||
|
const wantSubstring = "98% of your quota"
|
||
|
if !strings.Contains(notifiedMsg, wantSubstring) {
|
||
|
t.Errorf("unexpected notification message <<%s>>, "+
|
||
|
"want substring %q", notifiedMsg, wantSubstring)
|
||
|
}
|
||
|
}
|