github.com/status-im/status-go@v1.1.0/services/wallet/async/multi_client_scheduler_test.go (about)

     1  package async
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/require"
     7  )
     8  
     9  func Test_makeTaskType(t *testing.T) {
    10  	type args struct {
    11  		firstRequestID   int32
    12  		secondRequestID  int32
    13  		firstOriginalID  int32
    14  		secondOriginalID int32
    15  		policy           ReplacementPolicy
    16  	}
    17  	tests := []struct {
    18  		name             string
    19  		args             args
    20  		wantDifferentIDs bool
    21  	}{
    22  		{
    23  			name: "Different requestID",
    24  			args: args{
    25  				firstRequestID:   1,
    26  				secondRequestID:  2,
    27  				firstOriginalID:  1,
    28  				secondOriginalID: 1,
    29  				policy:           ReplacementPolicyCancelOld,
    30  			},
    31  			wantDifferentIDs: true,
    32  		},
    33  		{
    34  			name: "Different originalID",
    35  			args: args{
    36  				firstRequestID:   1,
    37  				secondRequestID:  1,
    38  				firstOriginalID:  2,
    39  				secondOriginalID: 3,
    40  				policy:           ReplacementPolicyCancelOld,
    41  			},
    42  			wantDifferentIDs: true,
    43  		},
    44  		{
    45  			name: "Same requestID and originalID",
    46  			args: args{
    47  				firstRequestID:   1,
    48  				secondRequestID:  1,
    49  				firstOriginalID:  1,
    50  				secondOriginalID: 1,
    51  				policy:           ReplacementPolicyCancelOld,
    52  			},
    53  			wantDifferentIDs: false,
    54  		},
    55  	}
    56  	for _, tt := range tests {
    57  		t.Run(tt.name, func(t *testing.T) {
    58  			firstTT := makeTaskType(
    59  				tt.args.firstRequestID,
    60  				TaskType{
    61  					ID:     int64(tt.args.firstOriginalID),
    62  					Policy: tt.args.policy,
    63  				})
    64  			secondTT := makeTaskType(
    65  				tt.args.secondRequestID,
    66  				TaskType{
    67  					ID:     int64(tt.args.secondOriginalID),
    68  					Policy: tt.args.policy,
    69  				})
    70  			if tt.wantDifferentIDs {
    71  				require.NotEqual(t, firstTT.ID, secondTT.ID)
    72  			} else {
    73  				require.Equal(t, firstTT.ID, secondTT.ID)
    74  			}
    75  			require.Equal(t, firstTT.Policy, secondTT.Policy)
    76  		})
    77  	}
    78  }