1// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
2// See LICENSE.txt for license information.
3
4package model
5
6import (
7	"strings"
8	"testing"
9
10	"github.com/stretchr/testify/require"
11)
12
13func TestCommandIsValid(t *testing.T) {
14	o := Command{
15		Id:          NewId(),
16		Token:       NewId(),
17		CreateAt:    GetMillis(),
18		UpdateAt:    GetMillis(),
19		CreatorId:   NewId(),
20		TeamId:      NewId(),
21		Trigger:     "trigger",
22		URL:         "http://example.com",
23		Method:      CommandMethodGet,
24		DisplayName: "",
25		Description: "",
26	}
27
28	require.Nil(t, o.IsValid())
29
30	o.Id = ""
31	require.NotNil(t, o.IsValid(), "should be invalid")
32
33	o.Id = NewId()
34	require.Nil(t, o.IsValid())
35
36	o.Token = ""
37	require.NotNil(t, o.IsValid(), "should be invalid")
38
39	o.Token = NewId()
40	require.Nil(t, o.IsValid())
41
42	o.CreateAt = 0
43	require.NotNil(t, o.IsValid(), "should be invalid")
44
45	o.CreateAt = GetMillis()
46	require.Nil(t, o.IsValid())
47
48	o.UpdateAt = 0
49	require.NotNil(t, o.IsValid(), "should be invalid")
50
51	o.UpdateAt = GetMillis()
52	require.Nil(t, o.IsValid())
53
54	o.CreatorId = ""
55	require.NotNil(t, o.IsValid(), "should be invalid")
56
57	o.CreatorId = NewId()
58	require.Nil(t, o.IsValid())
59
60	o.TeamId = ""
61	require.NotNil(t, o.IsValid(), "should be invalid")
62
63	o.TeamId = NewId()
64	require.Nil(t, o.IsValid())
65
66	o.Trigger = ""
67	require.NotNil(t, o.IsValid(), "should be invalid")
68
69	o.Trigger = strings.Repeat("1", 129)
70	require.NotNil(t, o.IsValid(), "should be invalid")
71
72	o.Trigger = strings.Repeat("1", 128)
73	require.Nil(t, o.IsValid())
74
75	o.URL = ""
76	require.NotNil(t, o.IsValid(), "should be invalid")
77
78	o.URL = "1234"
79	require.NotNil(t, o.IsValid(), "should be invalid")
80
81	o.URL = "https:////example.com"
82	require.NotNil(t, o.IsValid(), "should be invalid")
83
84	o.URL = "https://example.com"
85	require.Nil(t, o.IsValid())
86
87	o.Method = "https://example.com"
88	require.NotNil(t, o.IsValid(), "should be invalid")
89
90	o.Method = CommandMethodGet
91	require.Nil(t, o.IsValid())
92
93	o.Method = CommandMethodPost
94	require.Nil(t, o.IsValid())
95
96	o.DisplayName = strings.Repeat("1", 65)
97	require.NotNil(t, o.IsValid(), "should be invalid")
98
99	o.DisplayName = strings.Repeat("1", 64)
100	require.Nil(t, o.IsValid())
101
102	o.Description = strings.Repeat("1", 129)
103	require.NotNil(t, o.IsValid(), "should be invalid")
104
105	o.Description = strings.Repeat("1", 128)
106	require.Nil(t, o.IsValid())
107}
108
109func TestCommandPreSave(t *testing.T) {
110	o := Command{}
111	o.PreSave()
112}
113
114func TestCommandPreUpdate(t *testing.T) {
115	o := Command{}
116	o.PreUpdate()
117}
118