Permalink
Cannot retrieve contributors at this time
Fetching contributors…
| // 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" | |
| // Simulate a 980MB-used condition for this user. | |
| // NOTE: this differs slightly from the printed version. | |
| usage["joe@example.org"] = 980000000 | |
| 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 | |
| */ |