Browse Source

Merge pull request #11 from adammck/add_getall

Add GetAll method (take two)
Kamil Kisiel 12 years ago
parent
commit
1be7a086a5
2 changed files with 42 additions and 0 deletions
  1. +21
    -0
      context.go
  2. +21
    -0
      context_test.go

+ 21
- 0
context.go View File

@ -48,6 +48,27 @@ func GetOk(r *http.Request, key interface{}) (interface{}, bool) {
return nil, false return nil, false
} }
// GetAll returns all stored values for the request as a map. Nil is returned for invalid requests.
func GetAll(r *http.Request) map[interface{}]interface{} {
mutex.Lock()
defer mutex.Unlock()
if context, ok := data[r]; ok {
return context
}
return nil
}
// GetAllOk returns all stored values for the request as a map. It returns not
// ok if the request was never registered.
func GetAllOk(r *http.Request) (map[interface{}]interface{}, bool) {
mutex.Lock()
defer mutex.Unlock()
context, ok := data[r]
return context, ok
}
// Delete removes a value stored for a given key in a given request. // Delete removes a value stored for a given key in a given request.
func Delete(r *http.Request, key interface{}) { func Delete(r *http.Request, key interface{}) {
mutex.Lock() mutex.Lock()


+ 21
- 0
context_test.go View File

@ -24,6 +24,7 @@ func TestContext(t *testing.T) {
} }
r, _ := http.NewRequest("GET", "http://localhost:8080/", nil) r, _ := http.NewRequest("GET", "http://localhost:8080/", nil)
emptyR, _ := http.NewRequest("GET", "http://localhost:8080/", nil)
// Get() // Get()
assertEqual(Get(r, key1), nil) assertEqual(Get(r, key1), nil)
@ -51,6 +52,26 @@ func TestContext(t *testing.T) {
assertEqual(value, nil) assertEqual(value, nil)
assertEqual(ok, true) assertEqual(ok, true)
// GetAll()
values := GetAll(r)
assertEqual(len(values), 3)
// GetAll() for empty request
values = GetAll(emptyR)
if values != nil {
t.Error("GetAll didn't return nil value for invalid request")
}
// GetAllOk()
values, ok = GetAllOk(r)
assertEqual(len(values), 3)
assertEqual(ok, true)
// GetAllOk() for empty request
values, ok = GetAllOk(emptyR)
assertEqual(value, nil)
assertEqual(ok, false)
// Delete() // Delete()
Delete(r, key1) Delete(r, key1)
assertEqual(Get(r, key1), nil) assertEqual(Get(r, key1), nil)


Loading…
Cancel
Save