status-im/status-go

View on GitHub
services/wallet/async/multi_client_scheduler_test.go

Summary

Maintainability
A
0 mins
Test Coverage
package async

import (
    "testing"

    "github.com/stretchr/testify/require"
)

func Test_makeTaskType(t *testing.T) {
    type args struct {
        firstRequestID   int32
        secondRequestID  int32
        firstOriginalID  int32
        secondOriginalID int32
        policy           ReplacementPolicy
    }
    tests := []struct {
        name             string
        args             args
        wantDifferentIDs bool
    }{
        {
            name: "Different requestID",
            args: args{
                firstRequestID:   1,
                secondRequestID:  2,
                firstOriginalID:  1,
                secondOriginalID: 1,
                policy:           ReplacementPolicyCancelOld,
            },
            wantDifferentIDs: true,
        },
        {
            name: "Different originalID",
            args: args{
                firstRequestID:   1,
                secondRequestID:  1,
                firstOriginalID:  2,
                secondOriginalID: 3,
                policy:           ReplacementPolicyCancelOld,
            },
            wantDifferentIDs: true,
        },
        {
            name: "Same requestID and originalID",
            args: args{
                firstRequestID:   1,
                secondRequestID:  1,
                firstOriginalID:  1,
                secondOriginalID: 1,
                policy:           ReplacementPolicyCancelOld,
            },
            wantDifferentIDs: false,
        },
    }
    for _, tt := range tests {
        t.Run(tt.name, func(t *testing.T) {
            firstTT := makeTaskType(
                tt.args.firstRequestID,
                TaskType{
                    ID:     int64(tt.args.firstOriginalID),
                    Policy: tt.args.policy,
                })
            secondTT := makeTaskType(
                tt.args.secondRequestID,
                TaskType{
                    ID:     int64(tt.args.secondOriginalID),
                    Policy: tt.args.policy,
                })
            if tt.wantDifferentIDs {
                require.NotEqual(t, firstTT.ID, secondTT.ID)
            } else {
                require.Equal(t, firstTT.ID, secondTT.ID)
            }
            require.Equal(t, firstTT.Policy, secondTT.Policy)
        })
    }
}