mirror of
https://github.com/astaxie/beego.git
synced 2024-11-25 21:11:29 +00:00
Merge pull request #2351 from amrfaissal/add-safemap-count
Add Count method to BeeMap struct
This commit is contained in:
commit
189c73986b
@ -61,10 +61,8 @@ func (m *BeeMap) Set(k interface{}, v interface{}) bool {
|
|||||||
func (m *BeeMap) Check(k interface{}) bool {
|
func (m *BeeMap) Check(k interface{}) bool {
|
||||||
m.lock.RLock()
|
m.lock.RLock()
|
||||||
defer m.lock.RUnlock()
|
defer m.lock.RUnlock()
|
||||||
if _, ok := m.bm[k]; !ok {
|
_, ok := m.bm[k]
|
||||||
return false
|
return ok
|
||||||
}
|
|
||||||
return true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Delete the given key and value.
|
// Delete the given key and value.
|
||||||
@ -84,3 +82,10 @@ func (m *BeeMap) Items() map[interface{}]interface{} {
|
|||||||
}
|
}
|
||||||
return r
|
return r
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Count returns the number of items within the map.
|
||||||
|
func (m *BeeMap) Count() int {
|
||||||
|
m.lock.RLock()
|
||||||
|
defer m.lock.RUnlock()
|
||||||
|
return len(m.bm)
|
||||||
|
}
|
||||||
|
@ -14,25 +14,44 @@
|
|||||||
|
|
||||||
package utils
|
package utils
|
||||||
|
|
||||||
import (
|
import "testing"
|
||||||
"testing"
|
|
||||||
)
|
|
||||||
|
|
||||||
func Test_beemap(t *testing.T) {
|
var safeMap *BeeMap
|
||||||
bm := NewBeeMap()
|
|
||||||
if !bm.Set("astaxie", 1) {
|
|
||||||
t.Error("set Error")
|
|
||||||
}
|
|
||||||
if !bm.Check("astaxie") {
|
|
||||||
t.Error("check err")
|
|
||||||
}
|
|
||||||
|
|
||||||
if v := bm.Get("astaxie"); v.(int) != 1 {
|
func TestNewBeeMap(t *testing.T) {
|
||||||
t.Error("get err")
|
safeMap = NewBeeMap()
|
||||||
}
|
if safeMap == nil {
|
||||||
|
t.Fatal("expected to return non-nil BeeMap", "got", safeMap)
|
||||||
bm.Delete("astaxie")
|
}
|
||||||
if bm.Check("astaxie") {
|
}
|
||||||
t.Error("delete err")
|
|
||||||
|
func TestSet(t *testing.T) {
|
||||||
|
if ok := safeMap.Set("astaxie", 1); !ok {
|
||||||
|
t.Error("expected", true, "got", false)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestCheck(t *testing.T) {
|
||||||
|
if exists := safeMap.Check("astaxie"); !exists {
|
||||||
|
t.Error("expected", true, "got", false)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestGet(t *testing.T) {
|
||||||
|
if val := safeMap.Get("astaxie"); val.(int) != 1 {
|
||||||
|
t.Error("expected value", 1, "got", val)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestDelete(t *testing.T) {
|
||||||
|
safeMap.Delete("astaxie")
|
||||||
|
if exists := safeMap.Check("astaxie"); exists {
|
||||||
|
t.Error("expected element to be deleted")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestCount(t *testing.T) {
|
||||||
|
if count := safeMap.Count(); count != 0 {
|
||||||
|
t.Error("expected count to be", 0, "got", count)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user