mirror of
https://github.com/gopl-zh/gopl-zh.github.com.git
synced 2024-11-05 14:03:45 +00:00
54 lines
1.2 KiB
Go
54 lines
1.2 KiB
Go
|
// Copyright © 2016 Alan A. A. Donovan & Brian W. Kernighan.
|
||
|
// License: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
||
|
|
||
|
//!+test
|
||
|
package storage
|
||
|
|
||
|
import (
|
||
|
"strings"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func TestCheckQuotaNotifiesUser(t *testing.T) {
|
||
|
var notifiedUser, notifiedMsg string
|
||
|
notifyUser = func(user, msg string) {
|
||
|
notifiedUser, notifiedMsg = user, msg
|
||
|
}
|
||
|
|
||
|
const user = "joe@example.org"
|
||
|
usage[user] = 980000000 // simulate a 980MB-used condition
|
||
|
|
||
|
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)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//!-test
|
||
|
|
||
|
/*
|
||
|
//!+defer
|
||
|
func TestCheckQuotaNotifiesUser(t *testing.T) {
|
||
|
// Save and restore original notifyUser.
|
||
|
saved := notifyUser
|
||
|
defer func() { notifyUser = saved }()
|
||
|
|
||
|
// Install the test's fake notifyUser.
|
||
|
var notifiedUser, notifiedMsg string
|
||
|
notifyUser = func(user, msg string) {
|
||
|
notifiedUser, notifiedMsg = user, msg
|
||
|
}
|
||
|
// ...rest of test...
|
||
|
}
|
||
|
//!-defer
|
||
|
*/
|