2015-03-14 21:02:19 -04:00
|
|
|
package donutmem
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
. "gopkg.in/check.v1"
|
2015-03-14 22:21:27 -04:00
|
|
|
"io/ioutil"
|
2015-03-14 21:02:19 -04:00
|
|
|
)
|
|
|
|
|
|
|
|
func Test(t *testing.T) { TestingT(t) }
|
|
|
|
|
|
|
|
type MySuite struct{}
|
|
|
|
|
|
|
|
var _ = Suite(&MySuite{})
|
|
|
|
|
|
|
|
func (s *MySuite) TestAPISuite(c *C) {
|
2015-03-14 22:21:27 -04:00
|
|
|
data := "Hello World"
|
2015-03-14 21:02:19 -04:00
|
|
|
donut := NewDonutMem()
|
|
|
|
|
2015-03-14 22:21:27 -04:00
|
|
|
writer := donut.GetObjectWriter("foo", "bar", 0, 2)
|
|
|
|
count, err := writer.Write([]byte("hello"))
|
2015-03-14 21:02:19 -04:00
|
|
|
c.Assert(err, Not(IsNil))
|
|
|
|
|
|
|
|
err = donut.CreateBucket("foo")
|
|
|
|
c.Assert(err, IsNil)
|
|
|
|
|
2015-03-14 22:21:27 -04:00
|
|
|
writer = donut.GetObjectWriter("foo", "bar", 0, 2)
|
|
|
|
count, err = writer.Write([]byte(data))
|
|
|
|
c.Assert(count, Equals, len(data))
|
2015-03-14 21:02:19 -04:00
|
|
|
c.Assert(err, IsNil)
|
2015-03-14 22:29:54 -04:00
|
|
|
err = writer.Close()
|
2015-03-14 22:21:27 -04:00
|
|
|
c.Assert(err, IsNil)
|
|
|
|
|
2015-03-14 22:29:54 -04:00
|
|
|
// data should be available
|
2015-03-14 21:02:19 -04:00
|
|
|
reader, err := donut.GetObjectReader("foo", "bar", 0)
|
|
|
|
c.Assert(err, IsNil)
|
2015-03-14 22:21:27 -04:00
|
|
|
result, err := ioutil.ReadAll(reader)
|
|
|
|
c.Assert(result, DeepEquals, []byte(data))
|
2015-03-14 22:29:54 -04:00
|
|
|
|
|
|
|
// try writing, should see error
|
|
|
|
writer = donut.GetObjectWriter("foo", "bar", 0, 2)
|
|
|
|
count, err = writer.Write([]byte("different data"))
|
|
|
|
c.Assert(count, Equals, 0)
|
|
|
|
c.Assert(err, Not(IsNil))
|
|
|
|
// try again, should see error
|
|
|
|
count, err = writer.Write([]byte("different data"))
|
|
|
|
c.Assert(count, Equals, 0)
|
|
|
|
c.Assert(err, Not(IsNil))
|
|
|
|
|
|
|
|
// data should not change
|
|
|
|
reader, err = donut.GetObjectReader("foo", "bar", 0)
|
|
|
|
c.Assert(err, IsNil)
|
|
|
|
result, err = ioutil.ReadAll(reader)
|
|
|
|
c.Assert(result, DeepEquals, []byte(data))
|
|
|
|
|
2015-03-14 21:02:19 -04:00
|
|
|
}
|