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  }