X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=sdl_test.go;fp=sdl_test.go;h=3d06bb451c94da3b7c1aa53b9598012b23c9e4f9;hb=135580f96b31e8dd0ccd5695df877a7942b912ae;hp=a941f83966a791bfa599adefa3ea89c493b54c63;hpb=a66fcfb6cc2918cb06945ebb2f84f0c9f440ec09;p=ric-plt%2Fsdlgo.git diff --git a/sdl_test.go b/sdl_test.go index a941f83..3d06bb4 100644 --- a/sdl_test.go +++ b/sdl_test.go @@ -104,6 +104,30 @@ func (m *mockDB) DelIEPub(channel, message, key string, data interface{}) (bool, return a.Bool(0), a.Error(1) } +func (m *mockDB) SAdd(key string, data ...interface{}) error { + a := m.Called(key, data) + return a.Error(0) +} + +func (m *mockDB) SRem(key string, data ...interface{}) error { + a := m.Called(key, data) + return a.Error(0) +} +func (m *mockDB) SMembers(key string) ([]string, error) { + a := m.Called(key) + return a.Get(0).([]string), a.Error(1) +} + +func (m *mockDB) SIsMember(key string, data interface{}) (bool, error) { + a := m.Called(key, data) + return a.Bool(0), a.Error(1) +} + +func (m *mockDB) SCard(key string) (int64, error) { + a := m.Called(key) + return a.Get(0).(int64), a.Error(1) +} + func setup() (*mockDB, *sdlgo.SdlInstance) { m := new(mockDB) i := sdlgo.NewSdlInstance("namespace", m) @@ -1038,3 +1062,173 @@ func TestRemoveAllAndPublishIncorrectChannel(t *testing.T) { m.AssertExpectations(t) } + +func TestAddMemberSuccessfully(t *testing.T) { + m, i := setup() + + groupExpected := string("{namespace},group") + membersExpected := []interface{}{"member1", "member2"} + + m.On("SAdd", groupExpected, membersExpected).Return(nil) + + err := i.AddMember("group", "member1", "member2") + assert.Nil(t, err) + m.AssertExpectations(t) +} + +func TestAddMemberFail(t *testing.T) { + m, i := setup() + + groupExpected := string("{namespace},group") + membersExpected := []interface{}{"member1", "member2"} + + m.On("SAdd", groupExpected, membersExpected).Return(errors.New("Some error")) + + err := i.AddMember("group", "member1", "member2") + assert.NotNil(t, err) + m.AssertExpectations(t) +} +func TestRemoveMemberSuccessfully(t *testing.T) { + m, i := setup() + + groupExpected := string("{namespace},group") + membersExpected := []interface{}{"member1", "member2"} + + m.On("SRem", groupExpected, membersExpected).Return(nil) + + err := i.RemoveMember("group", "member1", "member2") + assert.Nil(t, err) + m.AssertExpectations(t) +} + +func TestRemoveMemberFail(t *testing.T) { + m, i := setup() + + groupExpected := string("{namespace},group") + membersExpected := []interface{}{"member1", "member2"} + + m.On("SRem", groupExpected, membersExpected).Return(errors.New("Some error")) + + err := i.RemoveMember("group", "member1", "member2") + assert.NotNil(t, err) + m.AssertExpectations(t) +} + +func TestRemoveGroupSuccessfully(t *testing.T) { + m, i := setup() + + groupExpected := []string{"{namespace},group"} + + m.On("Del", groupExpected).Return(nil) + + err := i.RemoveGroup("group") + assert.Nil(t, err) + m.AssertExpectations(t) +} +func TestRemoveGroupFail(t *testing.T) { + m, i := setup() + + groupExpected := []string{"{namespace},group"} + + m.On("Del", groupExpected).Return(errors.New("Some error")) + + err := i.RemoveGroup("group") + assert.NotNil(t, err) + m.AssertExpectations(t) +} + +func TestGetMembersSuccessfully(t *testing.T) { + m, i := setup() + + groupExpected := "{namespace},group" + returnExpected := []string{"member1", "member2"} + + m.On("SMembers", groupExpected).Return(returnExpected, nil) + + result, err := i.GetMembers("group") + assert.Nil(t,err) + assert.Equal(t, result, returnExpected) + m.AssertExpectations(t) +} +func TestGetMembersFail(t *testing.T) { + m, i := setup() + + groupExpected := "{namespace},group" + returnExpected := []string{"member1", "member2"} + + m.On("SMembers", groupExpected).Return(returnExpected, errors.New("Some error")) + + result, err := i.GetMembers("group") + assert.NotNil(t,err) + assert.Equal(t, []string{}, result) + m.AssertExpectations(t) +} + +func TestIsMemberSuccessfullyIsMember(t *testing.T) { + m, i := setup() + + groupExpected := "{namespace},group" + memberExpected := "member" + + m.On("SIsMember", groupExpected, memberExpected).Return(true, nil) + + result, err := i.IsMember("group", "member") + assert.Nil(t, err) + assert.True(t, result) + m.AssertExpectations(t) +} +func TestIsMemberSuccessfullyIsNotMember(t *testing.T) { + m, i := setup() + + groupExpected := "{namespace},group" + memberExpected := "member" + + m.On("SIsMember", groupExpected, memberExpected).Return(false, nil) + + result, err := i.IsMember("group", "member") + assert.Nil(t, err) + assert.False(t, result) + m.AssertExpectations(t) +} +func TestIsMemberFailure(t *testing.T) { + m, i := setup() + + groupExpected := "{namespace},group" + memberExpected := "member" + + m.On("SIsMember", groupExpected, memberExpected).Return(true, errors.New("Some error")) + + result, err := i.IsMember("group", "member") + assert.NotNil(t, err) + assert.False(t, result) + m.AssertExpectations(t) +} + +func TestGroupSizeSuccessfully(t *testing.T) { + m, i := setup() + + var expectedSize int64 + expectedSize = 2 + groupExpected := "{namespace},group" + + m.On("SCard", groupExpected).Return(expectedSize, nil) + + result, err := i.GroupSize("group") + assert.Nil(t, err) + assert.Equal(t, expectedSize, result) + m.AssertExpectations(t) +} +func TestGroupSizeFail(t *testing.T) { + m, i := setup() + + var expectedSize int64 + expectedSize = 2 + groupExpected := "{namespace},group" + + m.On("SCard", groupExpected).Return(expectedSize, errors.New("Some error")) + + result, err := i.GroupSize("group") + assert.NotNil(t, err) + assert.Equal(t, int64(0), result) + m.AssertExpectations(t) +} \ No newline at end of file