github.com/masterhung0112/hk_server/v5@v5.0.0-20220302090640-ec71aef15e1c/model/auditconv_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/assert"
    10  )
    11  
    12  type Sample struct {
    13  	flag bool
    14  	name string
    15  }
    16  
    17  func TestAuditModelTypeConv(t *testing.T) {
    18  	sample := &Sample{flag: true, name: "sample"}
    19  	sample2 := &Sample{name: "sample2"}
    20  	sampleArr := []*Sample{sample, sample2}
    21  
    22  	user := &User{}
    23  
    24  	type args struct {
    25  		val interface{}
    26  	}
    27  	tests := []struct {
    28  		name          string
    29  		args          args
    30  		wantConverted bool
    31  		wantNewVal    interface{}
    32  	}{
    33  		{name: "nil value", args: args{val: nil}, wantConverted: false, wantNewVal: nil},
    34  		{name: "string value", args: args{val: "hello"}, wantConverted: false, wantNewVal: "hello"},
    35  		{name: "string array", args: args{val: []string{"hello", "there"}}, wantConverted: false, wantNewVal: []string{"hello", "there"}},
    36  		{name: "int value", args: args{val: 77}, wantConverted: false, wantNewVal: 77},
    37  		{name: "int array", args: args{val: []int{77, 68}}, wantConverted: false, wantNewVal: []int{77, 68}},
    38  		{name: "struct pointer value", args: args{val: sample}, wantConverted: false, wantNewVal: sample},
    39  		{name: "struct pointer array", args: args{val: sampleArr}, wantConverted: false, wantNewVal: sampleArr},
    40  		{name: "model user", args: args{val: user}, wantConverted: true, wantNewVal: "XXX"},
    41  	}
    42  	for _, tt := range tests {
    43  		t.Run(tt.name, func(t *testing.T) {
    44  			gotNewVal, gotConverted := AuditModelTypeConv(tt.args.val)
    45  			assert.Equal(t, tt.wantConverted, gotConverted)
    46  			if !tt.wantConverted {
    47  				assert.Equal(t, tt.wantNewVal, gotNewVal)
    48  			}
    49  		})
    50  	}
    51  }