summaryrefslogtreecommitdiffstats
path: root/store/storetest/scheme_store.go
diff options
context:
space:
mode:
authorGeorge Goldberg <george@gberg.me>2018-05-03 14:00:26 +0100
committerMartin Kraft <mkraft@users.noreply.github.com>2018-05-03 09:00:26 -0400
commit60cf74352f13874a7d07c609c03b1c763af19cea (patch)
treee8d670db30d8dd18645de44402554e7d64b278e4 /store/storetest/scheme_store.go
parent7d5e85e4136b0e2e6cf902c48b186d99f0698d13 (diff)
downloadchat-60cf74352f13874a7d07c609c03b1c763af19cea.tar.gz
chat-60cf74352f13874a7d07c609c03b1c763af19cea.tar.bz2
chat-60cf74352f13874a7d07c609c03b1c763af19cea.zip
MM-10140: API Implementation for Schemes related Endpoints (#8615)
* Implement basic scheme CRUD endpoints. * Get All Schemes (Paged) Endpoint and store plumbing. * Add get teams/channels for schemes. * Fix unit tests. * Review fixes. * More review fixes.
Diffstat (limited to 'store/storetest/scheme_store.go')
-rw-r--r--store/storetest/scheme_store.go61
1 files changed, 61 insertions, 0 deletions
diff --git a/store/storetest/scheme_store.go b/store/storetest/scheme_store.go
index 45d136d3e..c0cbe5deb 100644
--- a/store/storetest/scheme_store.go
+++ b/store/storetest/scheme_store.go
@@ -17,6 +17,7 @@ func TestSchemeStore(t *testing.T, ss store.Store) {
t.Run("Save", func(t *testing.T) { testSchemeStoreSave(t, ss) })
t.Run("Get", func(t *testing.T) { testSchemeStoreGet(t, ss) })
+ t.Run("GetAllPage", func(t *testing.T) { testSchemeStoreGetAllPage(t, ss) })
t.Run("Delete", func(t *testing.T) { testSchemeStoreDelete(t, ss) })
}
@@ -171,6 +172,66 @@ func testSchemeStoreGet(t *testing.T, ss store.Store) {
assert.NotNil(t, res3.Err)
}
+func testSchemeStoreGetAllPage(t *testing.T, ss store.Store) {
+ // Save a scheme to test with.
+ schemes := []*model.Scheme{
+ {
+ Name: model.NewId(),
+ Description: model.NewId(),
+ Scope: model.SCHEME_SCOPE_TEAM,
+ },
+ {
+ Name: model.NewId(),
+ Description: model.NewId(),
+ Scope: model.SCHEME_SCOPE_CHANNEL,
+ },
+ {
+ Name: model.NewId(),
+ Description: model.NewId(),
+ Scope: model.SCHEME_SCOPE_TEAM,
+ },
+ {
+ Name: model.NewId(),
+ Description: model.NewId(),
+ Scope: model.SCHEME_SCOPE_CHANNEL,
+ },
+ }
+
+ for _, scheme := range schemes {
+ store.Must(ss.Scheme().Save(scheme))
+ }
+
+ r1 := <-ss.Scheme().GetAllPage("", 0, 2)
+ assert.Nil(t, r1.Err)
+ s1 := r1.Data.([]*model.Scheme)
+ assert.Len(t, s1, 2)
+
+ r2 := <-ss.Scheme().GetAllPage("", 2, 2)
+ assert.Nil(t, r2.Err)
+ s2 := r2.Data.([]*model.Scheme)
+ assert.Len(t, s2, 2)
+ assert.NotEqual(t, s1[0].Name, s2[0].Name)
+ assert.NotEqual(t, s1[0].Name, s2[1].Name)
+ assert.NotEqual(t, s1[1].Name, s2[0].Name)
+ assert.NotEqual(t, s1[1].Name, s2[1].Name)
+
+ r3 := <-ss.Scheme().GetAllPage("team", 0, 1000)
+ assert.Nil(t, r3.Err)
+ s3 := r3.Data.([]*model.Scheme)
+ assert.NotZero(t, len(s3))
+ for _, s := range s3 {
+ assert.Equal(t, "team", s.Scope)
+ }
+
+ r4 := <-ss.Scheme().GetAllPage("channel", 0, 1000)
+ assert.Nil(t, r4.Err)
+ s4 := r4.Data.([]*model.Scheme)
+ assert.NotZero(t, len(s4))
+ for _, s := range s4 {
+ assert.Equal(t, "channel", s.Scope)
+ }
+}
+
func testSchemeStoreDelete(t *testing.T, ss store.Store) {
// Save a new scheme.
s1 := &model.Scheme{