OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package count | 5 package count |
6 | 6 |
7 import ( | 7 import ( |
8 "fmt" | 8 "fmt" |
9 "testing" | 9 "testing" |
10 | 10 |
11 "github.com/luci/gae/filter/featureBreaker" | 11 "github.com/luci/gae/filter/featureBreaker" |
12 "github.com/luci/gae/impl/memory" | 12 "github.com/luci/gae/impl/memory" |
13 "github.com/luci/gae/service/datastore" | 13 "github.com/luci/gae/service/datastore" |
14 "github.com/luci/gae/service/info" | 14 "github.com/luci/gae/service/info" |
| 15 "github.com/luci/gae/service/mail" |
15 "github.com/luci/gae/service/memcache" | 16 "github.com/luci/gae/service/memcache" |
16 "github.com/luci/gae/service/taskqueue" | 17 "github.com/luci/gae/service/taskqueue" |
17 "github.com/luci/gae/service/user" | 18 "github.com/luci/gae/service/user" |
18 . "github.com/luci/luci-go/common/testing/assertions" | 19 . "github.com/luci/luci-go/common/testing/assertions" |
19 . "github.com/smartystreets/goconvey/convey" | 20 . "github.com/smartystreets/goconvey/convey" |
20 "golang.org/x/net/context" | 21 "golang.org/x/net/context" |
21 ) | 22 ) |
22 | 23 |
23 func shouldHaveSuccessesAndErrors(actual interface{}, expected ...interface{}) s
tring { | 24 func shouldHaveSuccessesAndErrors(actual interface{}, expected ...interface{}) s
tring { |
24 a := actual.(Entry) | 25 a := actual.(Entry) |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
151 u := user.Get(c) | 152 u := user.Get(c) |
152 | 153 |
153 _, err := u.CurrentOAuth("foo") | 154 _, err := u.CurrentOAuth("foo") |
154 die(err) | 155 die(err) |
155 fb.BreakFeatures(nil, "CurrentOAuth") | 156 fb.BreakFeatures(nil, "CurrentOAuth") |
156 _, err = u.CurrentOAuth("foo") | 157 _, err = u.CurrentOAuth("foo") |
157 So(err, ShouldErrLike, `"CurrentOAuth" is broken`) | 158 So(err, ShouldErrLike, `"CurrentOAuth" is broken`) |
158 | 159 |
159 So(ctr.CurrentOAuth, shouldHaveSuccessesAndErrors, 1, 1) | 160 So(ctr.CurrentOAuth, shouldHaveSuccessesAndErrors, 1, 1) |
160 }) | 161 }) |
| 162 |
| 163 Convey("works for mail", t, func() { |
| 164 c, fb := featureBreaker.FilterMail(memory.Use(context.Background
()), nil) |
| 165 c, ctr := FilterMail(c) |
| 166 So(c, ShouldNotBeNil) |
| 167 So(ctr, ShouldNotBeNil) |
| 168 |
| 169 m := mail.Get(c) |
| 170 |
| 171 err := m.Send(&mail.Message{ |
| 172 Sender: "admin@example.com", |
| 173 To: []string{"coolDood@example.com"}, |
| 174 Body: "hi", |
| 175 }) |
| 176 die(err) |
| 177 |
| 178 fb.BreakFeatures(nil, "Send") |
| 179 err = m.Send(&mail.Message{ |
| 180 Sender: "admin@example.com", |
| 181 To: []string{"coolDood@example.com"}, |
| 182 Body: "hi", |
| 183 }) |
| 184 So(err, ShouldErrLike, `"Send" is broken`) |
| 185 |
| 186 So(ctr.Send, shouldHaveSuccessesAndErrors, 1, 1) |
| 187 }) |
161 } | 188 } |
162 | 189 |
163 func ExampleFilterRDS() { | 190 func ExampleFilterRDS() { |
164 // Set up your context using a base service implementation (memory or pr
od) | 191 // Set up your context using a base service implementation (memory or pr
od) |
165 c := memory.Use(context.Background()) | 192 c := memory.Use(context.Background()) |
166 | 193 |
167 // Apply the counter.FilterRDS | 194 // Apply the counter.FilterRDS |
168 c, counter := FilterRDS(c) | 195 c, counter := FilterRDS(c) |
169 | 196 |
170 // functions use ds from the context like normal... they don't need to k
now | 197 // functions use ds from the context like normal... they don't need to k
now |
(...skipping 11 matching lines...) Expand all Loading... |
182 | 209 |
183 // Using the other function. | 210 // Using the other function. |
184 someCalledFunc(c) | 211 someCalledFunc(c) |
185 someCalledFunc(c) | 212 someCalledFunc(c) |
186 | 213 |
187 // Then we can see what happened! | 214 // Then we can see what happened! |
188 fmt.Printf("%d\n", counter.PutMulti.Successes()) | 215 fmt.Printf("%d\n", counter.PutMulti.Successes()) |
189 // Output: | 216 // Output: |
190 // 2 | 217 // 2 |
191 } | 218 } |
OLD | NEW |