github.com/lologarithm/mattermost-server@v5.3.2-0.20181002060438-c82a84ed765b+incompatible/store/storetest/service_terms_store.go (about)

     1  // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
     2  // See License.txt for license information.
     3  
     4  package storetest
     5  
     6  import (
     7  	"github.com/mattermost/mattermost-server/model"
     8  	"github.com/mattermost/mattermost-server/store"
     9  	"github.com/stretchr/testify/assert"
    10  	"testing"
    11  )
    12  
    13  func TestServiceTermsStore(t *testing.T, ss store.Store) {
    14  	t.Run("TestSaveServiceTerms", func(t *testing.T) { testSaveServiceTerms(t, ss) })
    15  	t.Run("TestGetLatestServiceTerms", func(t *testing.T) { testGetLatestServiceTerms(t, ss) })
    16  	t.Run("TestGetServiceTerms", func(t *testing.T) { testGetServiceTerms(t, ss) })
    17  }
    18  
    19  func testSaveServiceTerms(t *testing.T, ss store.Store) {
    20  	u1 := model.User{}
    21  	u1.Username = model.NewId()
    22  	u1.Email = MakeEmail()
    23  	u1.Nickname = model.NewId()
    24  	store.Must(ss.User().Save(&u1))
    25  
    26  	serviceTerms := &model.ServiceTerms{Text: "service terms", UserId: u1.Id}
    27  	r1 := <-ss.ServiceTerms().Save(serviceTerms)
    28  
    29  	if r1.Err != nil {
    30  		t.Fatal(r1.Err)
    31  	}
    32  
    33  	savedServiceTerms := r1.Data.(*model.ServiceTerms)
    34  	if len(savedServiceTerms.Id) != 26 {
    35  		t.Fatal("Id should have been populated")
    36  	}
    37  
    38  	if savedServiceTerms.CreateAt == 0 {
    39  		t.Fatal("Create at should have been populated")
    40  	}
    41  }
    42  
    43  func testGetLatestServiceTerms(t *testing.T, ss store.Store) {
    44  	u1 := model.User{}
    45  	u1.Username = model.NewId()
    46  	u1.Email = MakeEmail()
    47  	u1.Nickname = model.NewId()
    48  	store.Must(ss.User().Save(&u1))
    49  
    50  	serviceTerms := &model.ServiceTerms{Text: "service terms", UserId: u1.Id}
    51  	store.Must(ss.ServiceTerms().Save(serviceTerms))
    52  
    53  	r1 := <-ss.ServiceTerms().GetLatest(true)
    54  	if r1.Err != nil {
    55  		t.Fatal(r1.Err)
    56  	}
    57  
    58  	fetchedServiceTerms := r1.Data.(*model.ServiceTerms)
    59  	assert.Equal(t, serviceTerms.Text, fetchedServiceTerms.Text)
    60  	assert.Equal(t, serviceTerms.UserId, fetchedServiceTerms.UserId)
    61  }
    62  
    63  func testGetServiceTerms(t *testing.T, ss store.Store) {
    64  	u1 := model.User{}
    65  	u1.Username = model.NewId()
    66  	u1.Email = MakeEmail()
    67  	u1.Nickname = model.NewId()
    68  	store.Must(ss.User().Save(&u1))
    69  
    70  	serviceTerms := &model.ServiceTerms{Text: "service terms", UserId: u1.Id}
    71  	store.Must(ss.ServiceTerms().Save(serviceTerms))
    72  
    73  	r1 := <-ss.ServiceTerms().Get("an_invalid_id", true)
    74  	assert.NotNil(t, r1.Err)
    75  	assert.Nil(t, r1.Data)
    76  
    77  	r1 = <-ss.ServiceTerms().Get(serviceTerms.Id, true)
    78  	assert.Nil(t, r1.Err)
    79  
    80  	receivedServiceTerms := r1.Data.(*model.ServiceTerms)
    81  	assert.Equal(t, "service terms", receivedServiceTerms.Text)
    82  }