minio/pkg/donutbox/donutmem/donutmem_test.go

57 lines
1.3 KiB
Go
Raw Normal View History

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
}