| OLD | NEW |
| (Empty) |
| 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 | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 // Package wrapper provides a fakable wrapped interface for the appengine SDK's | |
| 6 // APIs. This means that it's possible to mock all of the supported appengine | |
| 7 // APIs for testing (or potentially implement a different backend for them, | |
| 8 // though you would still need to provide enough of the appengine SDK for a | |
| 9 // few key types). | |
| 10 // | |
| 11 // wrapper currently provides interfaces for: | |
| 12 // * Datastore | |
| 13 // * Memcache | |
| 14 // * TaskQueue | |
| 15 // * GlobalInfo (e.g. Namespace, AppID, etc.) | |
| 16 // | |
| 17 // A package which implements the wrapper is expected to provide the following: | |
| 18 // * A package function `Enable(c context.Context, ...) context.Context` | |
| 19 // This function is expected to add any information to c which is necessary | |
| 20 // for the rest of its implementations to work. This may be something like | |
| 21 // an `appengine.Context` or some connection information for an external | |
| 22 // server. The `...` in the function signature may be any additional data | |
| 23 // needed. | |
| 24 // * Any of the package functions: | |
| 25 // | |
| 26 // UseDS(context.Context) context.Context | |
| 27 // UseMC(context.Context) context.Context | |
| 28 // UseTQ(context.Context) context.Context | |
| 29 // UseGI(context.Context) context.Context | |
| 30 // | |
| 31 // each of which would call wrapper.Set<service>Factory with the factory | |
| 32 // function for that interface type. | |
| 33 // * A `Use(context.Context) context.Context` function which calls all of
the | |
| 34 // `Use*` package functions implemented by the package. | |
| 35 // * Partially-implemented interfaces should embed one of the Dummy* structs | |
| 36 // which will panic with an appropriate error for unimplemented | |
| 37 // methods. | |
| 38 // | |
| 39 // see "infra/gae/libs/wrapper/gae" for an appengine-backed implementation. | |
| 40 package wrapper | |
| OLD | NEW |