github.com/condensat/bank-core@v0.1.0/database/query/feeinfo_test.go (about) 1 // Copyright 2020 Condensat Tech. All rights reserved. 2 // Use of this source code is governed by a MIT 3 // license that can be found in the LICENSE file. 4 5 package query 6 7 import ( 8 "reflect" 9 "testing" 10 11 "github.com/condensat/bank-core/database/model" 12 "github.com/condensat/bank-core/database/query/tests" 13 ) 14 15 func TestAddOrUpdateFeeInfo(t *testing.T) { 16 const databaseName = "TestAddOrUpdateFeeInfo" 17 t.Parallel() 18 19 db := tests.Setup(databaseName, FeeModel()) 20 defer tests.Teardown(db, databaseName) 21 22 ref := model.FeeInfo{ 23 Currency: "CURR", 24 Minimum: 1.0, 25 Rate: model.DefaultFeeRate, 26 } 27 28 type args struct { 29 feeInfo model.FeeInfo 30 } 31 tests := []struct { 32 name string 33 args args 34 want model.FeeInfo 35 wantErr bool 36 }{ 37 {"default", args{}, model.FeeInfo{}, true}, 38 {"valid", args{ref}, ref, false}, 39 } 40 for _, tt := range tests { 41 tt := tt // capture range variable 42 t.Run(tt.name, func(t *testing.T) { 43 got, err := AddOrUpdateFeeInfo(db, tt.args.feeInfo) 44 if (err != nil) != tt.wantErr { 45 t.Errorf("AddOrUpdateFeeInfo() error = %v, wantErr %v", err, tt.wantErr) 46 return 47 } 48 if !reflect.DeepEqual(got, tt.want) { 49 t.Errorf("AddOrUpdateFeeInfo() = %v, want %v", got, tt.want) 50 } 51 }) 52 } 53 } 54 55 func TestFeeInfoExists(t *testing.T) { 56 const databaseName = "TestFeeInfoExists" 57 t.Parallel() 58 59 db := tests.Setup(databaseName, FeeModel()) 60 defer tests.Teardown(db, databaseName) 61 62 ref := model.FeeInfo{ 63 Currency: "CURR", 64 Minimum: 1.0, 65 Rate: model.DefaultFeeRate, 66 } 67 68 _, _ = AddOrUpdateFeeInfo(db, ref) 69 70 type args struct { 71 currency model.CurrencyName 72 } 73 tests := []struct { 74 name string 75 args args 76 want bool 77 }{ 78 {"default", args{}, false}, 79 {"notfound", args{"NEW_CURR"}, false}, 80 81 {"found", args{ref.Currency}, true}, 82 } 83 for _, tt := range tests { 84 tt := tt // capture range variable 85 t.Run(tt.name, func(t *testing.T) { 86 if got := FeeInfoExists(db, tt.args.currency); got != tt.want { 87 t.Errorf("FeeInfoExists() = %v, want %v", got, tt.want) 88 } 89 }) 90 } 91 } 92 93 func TestGetFeeInfo(t *testing.T) { 94 const databaseName = "TestGetFeeInfo" 95 t.Parallel() 96 97 db := tests.Setup(databaseName, FeeModel()) 98 defer tests.Teardown(db, databaseName) 99 100 ref := model.FeeInfo{ 101 Currency: "CURR", 102 Minimum: 1.0, 103 Rate: model.DefaultFeeRate, 104 } 105 106 _, _ = AddOrUpdateFeeInfo(db, ref) 107 108 type args struct { 109 currency model.CurrencyName 110 } 111 tests := []struct { 112 name string 113 args args 114 want model.FeeInfo 115 wantErr bool 116 }{ 117 {"default", args{}, model.FeeInfo{}, true}, 118 {"notfound", args{"NEW_CURR"}, model.FeeInfo{}, true}, 119 120 {"found", args{ref.Currency}, ref, false}, 121 } 122 for _, tt := range tests { 123 tt := tt // capture range variable 124 t.Run(tt.name, func(t *testing.T) { 125 got, err := GetFeeInfo(db, tt.args.currency) 126 if (err != nil) != tt.wantErr { 127 t.Errorf("GetFeeInfo() error = %v, wantErr %v", err, tt.wantErr) 128 return 129 } 130 if !reflect.DeepEqual(got, tt.want) { 131 t.Errorf("GetFeeInfo() = %v, want %v", got, tt.want) 132 } 133 }) 134 } 135 }