| Index: filter/count/count_test.go
 | 
| diff --git a/filter/count/count_test.go b/filter/count/count_test.go
 | 
| index 04a66fc4e3e12b383d5f388eafbe6a97b96e9c35..08f2b2fa1bbea2c1fe1a7f20c706a9b2bad2adcb 100644
 | 
| --- a/filter/count/count_test.go
 | 
| +++ b/filter/count/count_test.go
 | 
| @@ -21,8 +21,17 @@ import (
 | 
|  func TestCount(t *testing.T) {
 | 
|  	t.Parallel()
 | 
|  
 | 
| +	pnil := func(_ rawdatastore.Key, err error) {
 | 
| +		So(err, ShouldBeNil)
 | 
| +	}
 | 
| +
 | 
| +	gnil := func(_ rawdatastore.PropertyMap, err error) {
 | 
| +		So(err, ShouldBeNil)
 | 
| +	}
 | 
| +
 | 
|  	Convey("Test Count filter", t, func() {
 | 
| -		c, ctr := FilterRDS(memory.Use(context.Background()))
 | 
| +		c, fb := featureBreaker.FilterRDS(memory.Use(context.Background()), nil)
 | 
| +		c, ctr := FilterRDS(c)
 | 
|  
 | 
|  		So(c, ShouldNotBeNil)
 | 
|  		So(ctr, ShouldNotBeNil)
 | 
| @@ -32,44 +41,54 @@ func TestCount(t *testing.T) {
 | 
|  		Convey("Calling a rds function should reflect in counter", func() {
 | 
|  			p := rawdatastore.Property{}
 | 
|  			p.SetValue(100, false)
 | 
| -			_, err := rds.Put(rds.NewKey("Kind", "", 0, nil), &rawdatastore.PropertyMap{
 | 
| -				"Val": {p},
 | 
| -			})
 | 
| -			So(err, ShouldBeNil)
 | 
| +			keys := []rawdatastore.Key{rds.NewKey("Kind", "", 0, nil)}
 | 
| +			vals := []rawdatastore.PropertyLoadSaver{&rawdatastore.PropertyMap{"Val": {p}}}
 | 
| +
 | 
| +			So(rds.PutMulti(keys, vals, pnil), ShouldBeNil)
 | 
|  			So(ctr.NewKey.Successes, ShouldEqual, 1)
 | 
| -			So(ctr.Put.Successes, ShouldEqual, 1)
 | 
| +			So(ctr.PutMulti.Successes, ShouldEqual, 1)
 | 
|  
 | 
|  			Convey("effects are cumulative", func() {
 | 
| -				_, err := rds.Put(rds.NewKey("Kind", "", 0, nil), &rawdatastore.PropertyMap{
 | 
| -					"Val": {p},
 | 
| -				})
 | 
| -				So(err, ShouldBeNil)
 | 
| -				So(ctr.NewKey.Successes, ShouldEqual, 2)
 | 
| -				So(ctr.Put.Successes, ShouldEqual, 2)
 | 
| +				So(rds.PutMulti(keys, vals, pnil), ShouldBeNil)
 | 
| +				So(ctr.PutMulti.Successes, ShouldEqual, 2)
 | 
|  
 | 
|  				Convey("even within transactions", func() {
 | 
| +					root := rds.NewKey("Root", "", 1, nil)
 | 
|  					rds.RunInTransaction(func(c context.Context) error {
 | 
|  						rds := rawdatastore.Get(c)
 | 
| -						k := rds.NewKey("Wat", "sup", 0, nil)
 | 
| -						rds.Put(k, &rawdatastore.PropertyMap{"Wat": {p}})
 | 
| -						rds.Put(k, &rawdatastore.PropertyMap{"Wat": {p}})
 | 
| +						keys := []rawdatastore.Key{
 | 
| +							rds.NewKey("Kind", "hi", 0, root),
 | 
| +							rds.NewKey("Kind", "there", 0, root),
 | 
| +						}
 | 
| +						vals = append(vals, vals[0])
 | 
| +						So(rds.PutMulti(keys, vals, pnil), ShouldBeNil)
 | 
|  						return nil
 | 
|  					}, nil)
 | 
|  				})
 | 
|  			})
 | 
|  		})
 | 
| +
 | 
|  		Convey("errors count against errors", func() {
 | 
| -			rds.Get(nil, nil)
 | 
| -			So(ctr.Get.Errors, ShouldEqual, 1)
 | 
| -			k, err := rds.Put(rds.NewKey("Kind", "", 0, nil), &rawdatastore.PropertyMap{
 | 
| -				"Val": {rawdatastore.Property{}},
 | 
| +			keys := []rawdatastore.Key{rds.NewKey("Kind", "", 1, nil)}
 | 
| +			vals := []rawdatastore.PropertyLoadSaver{&rawdatastore.PropertyMap{"Val": {{}}}}
 | 
| +
 | 
| +			fb.BreakFeatures(nil, "GetMulti")
 | 
| +
 | 
| +			rds.GetMulti(keys, gnil)
 | 
| +			So(ctr.GetMulti.Errors, ShouldEqual, 1)
 | 
| +
 | 
| +			fb.UnbreakFeatures("GetMulti")
 | 
| +
 | 
| +			err := rds.PutMulti(keys, vals, func(k rawdatastore.Key, err error) {
 | 
| +				keys[0] = k
 | 
| +				So(err, ShouldBeNil)
 | 
|  			})
 | 
|  			So(err, ShouldBeNil)
 | 
| -			So(ctr.NewKey.Successes, ShouldEqual, 1)
 | 
| -			rds.Get(k, &rawdatastore.PropertyMap{})
 | 
| -			So(ctr.Get.Errors, ShouldEqual, 1)
 | 
| -			So(ctr.Get.Successes, ShouldEqual, 1)
 | 
| -			So(ctr.Get.Total(), ShouldEqual, 2)
 | 
| +
 | 
| +			rds.GetMulti(keys, gnil)
 | 
| +			So(ctr.GetMulti.Errors, ShouldEqual, 1)
 | 
| +			So(ctr.GetMulti.Successes, ShouldEqual, 1)
 | 
| +			So(ctr.GetMulti.Total(), ShouldEqual, 2)
 | 
|  		})
 | 
|  	})
 | 
|  
 | 
| @@ -133,7 +152,7 @@ func ExampleFilterRDS() {
 | 
|  		val := rawdatastore.PropertyMap{
 | 
|  			"FieldName": {prop},
 | 
|  		}
 | 
| -		rds.Put(key, &val)
 | 
| +		rds.PutMulti([]rawdatastore.Key{key}, []rawdatastore.PropertyLoadSaver{&val}, nil)
 | 
|  	}
 | 
|  
 | 
|  	// Using the other function.
 | 
| @@ -142,7 +161,7 @@ func ExampleFilterRDS() {
 | 
|  
 | 
|  	// Then we can see what happened!
 | 
|  	fmt.Printf("%#v\n", counter.NewKey)
 | 
| -	fmt.Printf("%d\n", counter.Put.Successes)
 | 
| +	fmt.Printf("%d\n", counter.PutMulti.Successes)
 | 
|  	// Output:
 | 
|  	// count.Entry{Successes:2, Errors:0}
 | 
|  	// 2
 | 
| 
 |