github.com/mattermosttest/mattermost-server/v5@v5.0.0-20200917143240-9dfa12e121f9/model/command_args_test.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See LICENSE.txt for license information. 3 4 package model 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/require" 10 ) 11 12 func TestCommandArgs_AddUserMention(t *testing.T) { 13 fixture := []struct { 14 args CommandArgs 15 mentions map[string]string 16 expected CommandArgs 17 }{ 18 { 19 CommandArgs{}, 20 map[string]string{"one": "1"}, 21 CommandArgs{ 22 UserMentions: map[string]string{"one": "1"}, 23 }, 24 }, 25 { 26 CommandArgs{ 27 ChannelMentions: map[string]string{"channel": "1"}, 28 }, 29 map[string]string{"one": "1"}, 30 CommandArgs{ 31 UserMentions: map[string]string{"one": "1"}, 32 ChannelMentions: map[string]string{"channel": "1"}, 33 }, 34 }, 35 { 36 CommandArgs{ 37 UserMentions: map[string]string{"one": "1"}, 38 }, 39 map[string]string{"one": "1"}, 40 CommandArgs{ 41 UserMentions: map[string]string{"one": "1"}, 42 }, 43 }, 44 { 45 CommandArgs{}, 46 map[string]string{"one": "1", "two": "2", "three": "3"}, 47 CommandArgs{ 48 UserMentions: map[string]string{"one": "1", "two": "2", "three": "3"}, 49 }, 50 }, 51 } 52 53 for _, data := range fixture { 54 for name, id := range data.mentions { 55 data.args.AddUserMention(name, id) 56 } 57 require.Equal(t, data.args, data.expected) 58 } 59 } 60 61 func TestCommandArgs_AddChannelMention(t *testing.T) { 62 fixture := []struct { 63 args CommandArgs 64 mentions map[string]string 65 expected CommandArgs 66 }{ 67 { 68 CommandArgs{}, 69 map[string]string{"one": "1"}, 70 CommandArgs{ 71 ChannelMentions: map[string]string{"one": "1"}, 72 }, 73 }, 74 { 75 CommandArgs{ 76 UserMentions: map[string]string{"user": "1"}, 77 }, 78 map[string]string{"one": "1"}, 79 CommandArgs{ 80 ChannelMentions: map[string]string{"one": "1"}, 81 UserMentions: map[string]string{"user": "1"}, 82 }, 83 }, 84 { 85 CommandArgs{ 86 ChannelMentions: map[string]string{"one": "1"}, 87 }, 88 map[string]string{"one": "1"}, 89 CommandArgs{ 90 ChannelMentions: map[string]string{"one": "1"}, 91 }, 92 }, 93 { 94 CommandArgs{}, 95 map[string]string{"one": "1", "two": "2", "three": "3"}, 96 CommandArgs{ 97 ChannelMentions: map[string]string{"one": "1", "two": "2", "three": "3"}, 98 }, 99 }, 100 } 101 102 for _, data := range fixture { 103 for name, id := range data.mentions { 104 data.args.AddChannelMention(name, id) 105 } 106 require.Equal(t, data.args, data.expected) 107 } 108 }