github.com/gigforks/mattermost-server@v4.9.1-0.20180619094218-800d97fa55d0+incompatible/store/storetest/system_store.go (about)

     1  // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
     2  // See License.txt for license information.
     3  
     4  package storetest
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/assert"
    10  
    11  	"github.com/mattermost/mattermost-server/model"
    12  	"github.com/mattermost/mattermost-server/store"
    13  )
    14  
    15  func TestSystemStore(t *testing.T, ss store.Store) {
    16  	t.Run("", func(t *testing.T) { testSystemStore(t, ss) })
    17  	t.Run("SaveOrUpdate", func(t *testing.T) { testSystemStoreSaveOrUpdate(t, ss) })
    18  	t.Run("PermanentDeleteByName", func(t *testing.T) { testSystemStorePermanentDeleteByName(t, ss) })
    19  }
    20  
    21  func testSystemStore(t *testing.T, ss store.Store) {
    22  	system := &model.System{Name: model.NewId(), Value: "value"}
    23  	store.Must(ss.System().Save(system))
    24  
    25  	result := <-ss.System().Get()
    26  	systems := result.Data.(model.StringMap)
    27  
    28  	if systems[system.Name] != system.Value {
    29  		t.Fatal()
    30  	}
    31  
    32  	system.Value = "value2"
    33  	store.Must(ss.System().Update(system))
    34  
    35  	result2 := <-ss.System().Get()
    36  	systems2 := result2.Data.(model.StringMap)
    37  
    38  	if systems2[system.Name] != system.Value {
    39  		t.Fatal()
    40  	}
    41  
    42  	result3 := <-ss.System().GetByName(system.Name)
    43  	rsystem := result3.Data.(*model.System)
    44  	if rsystem.Value != system.Value {
    45  		t.Fatal()
    46  	}
    47  }
    48  
    49  func testSystemStoreSaveOrUpdate(t *testing.T, ss store.Store) {
    50  	system := &model.System{Name: model.NewId(), Value: "value"}
    51  
    52  	if err := (<-ss.System().SaveOrUpdate(system)).Err; err != nil {
    53  		t.Fatal(err)
    54  	}
    55  
    56  	system.Value = "value2"
    57  
    58  	if r := <-ss.System().SaveOrUpdate(system); r.Err != nil {
    59  		t.Fatal(r.Err)
    60  	}
    61  }
    62  
    63  func testSystemStorePermanentDeleteByName(t *testing.T, ss store.Store) {
    64  	s1 := &model.System{Name: model.NewId(), Value: "value"}
    65  	s2 := &model.System{Name: model.NewId(), Value: "value"}
    66  
    67  	store.Must(ss.System().Save(s1))
    68  	store.Must(ss.System().Save(s2))
    69  
    70  	res1 := <-ss.System().GetByName(s1.Name)
    71  	assert.Nil(t, res1.Err)
    72  
    73  	res2 := <-ss.System().GetByName(s2.Name)
    74  	assert.Nil(t, res2.Err)
    75  
    76  	res3 := <-ss.System().PermanentDeleteByName(s1.Name)
    77  	assert.Nil(t, res3.Err)
    78  
    79  	res4 := <-ss.System().GetByName(s1.Name)
    80  	assert.NotNil(t, res4.Err)
    81  
    82  	res5 := <-ss.System().GetByName(s2.Name)
    83  	assert.Nil(t, res5.Err)
    84  
    85  	res6 := <-ss.System().PermanentDeleteByName(s2.Name)
    86  	assert.Nil(t, res6.Err)
    87  
    88  	res7 := <-ss.System().GetByName(s1.Name)
    89  	assert.NotNil(t, res7.Err)
    90  
    91  	res8 := <-ss.System().GetByName(s2.Name)
    92  	assert.NotNil(t, res8.Err)
    93  
    94  }