mirror of https://github.com/milvus-io/milvus.git
105 lines
2.9 KiB
Go
105 lines
2.9 KiB
Go
package dataservice
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestCollection(t *testing.T) {
|
|
mockAllocator := newMockAllocator()
|
|
meta, err := newMemoryMeta(mockAllocator)
|
|
assert.Nil(t, err)
|
|
testSchema := newTestSchema()
|
|
id, err := mockAllocator.allocID()
|
|
assert.Nil(t, err)
|
|
err = meta.AddCollection(&collectionInfo{
|
|
ID: id,
|
|
Schema: testSchema,
|
|
Partitions: []UniqueID{100},
|
|
})
|
|
assert.Nil(t, err)
|
|
err = meta.AddCollection(&collectionInfo{
|
|
ID: id,
|
|
Schema: testSchema,
|
|
})
|
|
assert.NotNil(t, err)
|
|
has := meta.HasCollection(id)
|
|
assert.True(t, has)
|
|
collection, err := meta.GetCollection(id)
|
|
assert.Nil(t, err)
|
|
assert.EqualValues(t, id, collection.ID)
|
|
assert.EqualValues(t, testSchema, collection.Schema)
|
|
assert.EqualValues(t, 1, len(collection.Partitions))
|
|
assert.EqualValues(t, 100, collection.Partitions[0])
|
|
err = meta.DropCollection(id)
|
|
assert.Nil(t, err)
|
|
has = meta.HasCollection(id)
|
|
assert.False(t, has)
|
|
_, err = meta.GetCollection(id)
|
|
assert.NotNil(t, err)
|
|
}
|
|
|
|
func TestSegment(t *testing.T) {
|
|
mockAllocator := newMockAllocator()
|
|
meta, err := newMemoryMeta(mockAllocator)
|
|
assert.Nil(t, err)
|
|
id, err := mockAllocator.allocID()
|
|
assert.Nil(t, err)
|
|
segID, err := mockAllocator.allocID()
|
|
assert.Nil(t, err)
|
|
segmentInfo, err := BuildSegment(id, 100, segID, []string{"c1", "c2"})
|
|
assert.Nil(t, err)
|
|
err = meta.AddSegment(segmentInfo)
|
|
assert.Nil(t, err)
|
|
info, err := meta.GetSegment(segmentInfo.SegmentID)
|
|
assert.Nil(t, err)
|
|
assert.EqualValues(t, segmentInfo, info)
|
|
ids := meta.GetSegmentsByCollectionID(id)
|
|
assert.EqualValues(t, 1, len(ids))
|
|
assert.EqualValues(t, segmentInfo.SegmentID, ids[0])
|
|
ids = meta.GetSegmentsByCollectionAndPartitionID(id, 100)
|
|
assert.EqualValues(t, 1, len(ids))
|
|
assert.EqualValues(t, segmentInfo.SegmentID, ids[0])
|
|
err = meta.SealSegment(segmentInfo.SegmentID, 100)
|
|
assert.Nil(t, err)
|
|
err = meta.FlushSegment(segmentInfo.SegmentID, 200)
|
|
assert.Nil(t, err)
|
|
info, err = meta.GetSegment(segmentInfo.SegmentID)
|
|
assert.Nil(t, err)
|
|
assert.NotZero(t, info.SealedTime)
|
|
assert.NotZero(t, info.FlushedTime)
|
|
}
|
|
|
|
func TestPartition(t *testing.T) {
|
|
mockAllocator := newMockAllocator()
|
|
meta, err := newMemoryMeta(mockAllocator)
|
|
assert.Nil(t, err)
|
|
testSchema := newTestSchema()
|
|
id, err := mockAllocator.allocID()
|
|
assert.Nil(t, err)
|
|
|
|
err = meta.AddPartition(id, 10)
|
|
assert.NotNil(t, err)
|
|
err = meta.AddCollection(&collectionInfo{
|
|
ID: id,
|
|
Schema: testSchema,
|
|
Partitions: []UniqueID{},
|
|
})
|
|
assert.Nil(t, err)
|
|
err = meta.AddPartition(id, 10)
|
|
assert.Nil(t, err)
|
|
err = meta.AddPartition(id, 10)
|
|
assert.NotNil(t, err)
|
|
collection, err := meta.GetCollection(id)
|
|
assert.Nil(t, err)
|
|
assert.EqualValues(t, 10, collection.Partitions[0])
|
|
err = meta.DropPartition(id, 10)
|
|
assert.Nil(t, err)
|
|
collection, err = meta.GetCollection(id)
|
|
assert.Nil(t, err)
|
|
assert.EqualValues(t, 0, len(collection.Partitions))
|
|
err = meta.DropPartition(id, 10)
|
|
assert.NotNil(t, err)
|
|
}
|