github.com/condensat/bank-core@v0.1.0/database/model/withdrawtarget_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 model 6 7 import ( 8 "reflect" 9 "testing" 10 ) 11 12 func TestFromSepaData(t *testing.T) { 13 t.Parallel() 14 15 ref := WithdrawTargetSepaData{ 16 WithdrawTargetFiatData: WithdrawTargetFiatData{Network: "sepa"}, 17 18 BIC: "BIC", 19 IBAN: "IBAN", 20 } 21 type args struct { 22 withdrawID WithdrawID 23 data WithdrawTargetSepaData 24 } 25 tests := []struct { 26 name string 27 args args 28 want WithdrawTargetSepaData 29 }{ 30 {"default", args{}, WithdrawTargetSepaData{}}, 31 {"valid", args{42, ref}, ref}, 32 } 33 for _, tt := range tests { 34 tt := tt // capture range variable 35 t.Run(tt.name, func(t *testing.T) { 36 got := FromSepaData(tt.args.withdrawID, tt.args.data) 37 38 data, _ := got.SepaData() 39 if !reflect.DeepEqual(data, tt.want) { 40 t.Errorf("FromSepaData() = %v, want %v", data, tt.want) 41 } 42 }) 43 } 44 } 45 46 func TestWithdrawTarget_SepaData(t *testing.T) { 47 t.Parallel() 48 49 type fields struct { 50 ID WithdrawTargetID 51 WithdrawID WithdrawID 52 Type WithdrawTargetType 53 Data WithdrawTargetData 54 } 55 tests := []struct { 56 name string 57 fields fields 58 want WithdrawTargetSepaData 59 wantErr bool 60 }{ 61 {"default", fields{}, WithdrawTargetSepaData{}, true}, 62 {"type", fields{Type: WithdrawTargetSepa}, WithdrawTargetSepaData{}, false}, 63 } 64 for _, tt := range tests { 65 tt := tt // capture range variable 66 t.Run(tt.name, func(t *testing.T) { 67 p := &WithdrawTarget{ 68 ID: tt.fields.ID, 69 WithdrawID: tt.fields.WithdrawID, 70 Type: tt.fields.Type, 71 Data: tt.fields.Data, 72 } 73 got, err := p.SepaData() 74 if (err != nil) != tt.wantErr { 75 t.Errorf("WithdrawTarget.SepaData() error = %v, wantErr %v", err, tt.wantErr) 76 return 77 } 78 if !reflect.DeepEqual(got, tt.want) { 79 t.Errorf("WithdrawTarget.SepaData() = %v, want %v", got, tt.want) 80 } 81 }) 82 } 83 } 84 85 func TestFromSwiftData(t *testing.T) { 86 t.Parallel() 87 88 ref := WithdrawTargetSwiftData{ 89 WithdrawTargetFiatData: WithdrawTargetFiatData{Network: "swift"}, 90 91 CountryCode: "CHE", 92 Bank: "Condensat", 93 Account: "1337", 94 } 95 type args struct { 96 withdrawID WithdrawID 97 data WithdrawTargetSwiftData 98 } 99 tests := []struct { 100 name string 101 args args 102 want WithdrawTargetSwiftData 103 }{ 104 {"default", args{}, WithdrawTargetSwiftData{}}, 105 {"valid", args{42, ref}, ref}, 106 } 107 for _, tt := range tests { 108 tt := tt // capture range variable 109 t.Run(tt.name, func(t *testing.T) { 110 got := FromSwiftData(tt.args.withdrawID, tt.args.data) 111 112 data, _ := got.SwiftData() 113 if !reflect.DeepEqual(data, tt.want) { 114 t.Errorf("FromSwiftData() = %v, want %v", data, tt.want) 115 } 116 }) 117 } 118 } 119 120 func TestWithdrawTarget_SwiftData(t *testing.T) { 121 t.Parallel() 122 123 type fields struct { 124 ID WithdrawTargetID 125 WithdrawID WithdrawID 126 Type WithdrawTargetType 127 Data WithdrawTargetData 128 } 129 tests := []struct { 130 name string 131 fields fields 132 want WithdrawTargetSwiftData 133 wantErr bool 134 }{ 135 {"default", fields{}, WithdrawTargetSwiftData{}, true}, 136 {"type", fields{Type: WithdrawTargetSwift}, WithdrawTargetSwiftData{}, false}, 137 } 138 for _, tt := range tests { 139 tt := tt // capture range variable 140 t.Run(tt.name, func(t *testing.T) { 141 p := &WithdrawTarget{ 142 ID: tt.fields.ID, 143 WithdrawID: tt.fields.WithdrawID, 144 Type: tt.fields.Type, 145 Data: tt.fields.Data, 146 } 147 got, err := p.SwiftData() 148 if (err != nil) != tt.wantErr { 149 t.Errorf("WithdrawTarget.SwiftData() error = %v, wantErr %v", err, tt.wantErr) 150 return 151 } 152 if !reflect.DeepEqual(got, tt.want) { 153 t.Errorf("WithdrawTarget.SwiftData() = %v, want %v", got, tt.want) 154 } 155 }) 156 } 157 } 158 159 func TestFromCardData(t *testing.T) { 160 t.Parallel() 161 162 ref := WithdrawTargetCardData{ 163 WithdrawTargetFiatData: WithdrawTargetFiatData{Network: "card"}, 164 165 PAN: "4222222222222", 166 } 167 type args struct { 168 withdrawID WithdrawID 169 data WithdrawTargetCardData 170 } 171 tests := []struct { 172 name string 173 args args 174 want WithdrawTargetCardData 175 }{ 176 {"default", args{}, WithdrawTargetCardData{}}, 177 {"valid", args{42, ref}, ref}, 178 } 179 for _, tt := range tests { 180 tt := tt // capture range variable 181 t.Run(tt.name, func(t *testing.T) { 182 got := FromCardData(tt.args.withdrawID, tt.args.data) 183 184 data, _ := got.CardData() 185 if !reflect.DeepEqual(data, tt.want) { 186 t.Errorf("FromCardData() = %v, want %v", data, tt.want) 187 } 188 }) 189 } 190 } 191 192 func TestWithdrawTarget_CardData(t *testing.T) { 193 t.Parallel() 194 195 type fields struct { 196 ID WithdrawTargetID 197 WithdrawID WithdrawID 198 Type WithdrawTargetType 199 Data WithdrawTargetData 200 } 201 tests := []struct { 202 name string 203 fields fields 204 want WithdrawTargetCardData 205 wantErr bool 206 }{ 207 {"default", fields{}, WithdrawTargetCardData{}, true}, 208 {"type", fields{Type: WithdrawTargetCard}, WithdrawTargetCardData{}, false}, 209 } 210 for _, tt := range tests { 211 tt := tt // capture range variable 212 t.Run(tt.name, func(t *testing.T) { 213 p := &WithdrawTarget{ 214 ID: tt.fields.ID, 215 WithdrawID: tt.fields.WithdrawID, 216 Type: tt.fields.Type, 217 Data: tt.fields.Data, 218 } 219 got, err := p.CardData() 220 if (err != nil) != tt.wantErr { 221 t.Errorf("WithdrawTarget.CardData() error = %v, wantErr %v", err, tt.wantErr) 222 return 223 } 224 if !reflect.DeepEqual(got, tt.want) { 225 t.Errorf("WithdrawTarget.CardData() = %v, want %v", got, tt.want) 226 } 227 }) 228 } 229 } 230 231 func TestFromOnChainData(t *testing.T) { 232 t.Parallel() 233 234 ref := WithdrawTargetOnChainData{ 235 WithdrawTargetCryptoData: WithdrawTargetCryptoData{Chain: "bitcoin", PublicKey: "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa "}, 236 } 237 type args struct { 238 withdrawID WithdrawID 239 data WithdrawTargetOnChainData 240 } 241 tests := []struct { 242 name string 243 args args 244 want WithdrawTargetOnChainData 245 }{ 246 {"default", args{}, WithdrawTargetOnChainData{}}, 247 {"valid", args{42, ref}, ref}, 248 } 249 for _, tt := range tests { 250 tt := tt // capture range variable 251 t.Run(tt.name, func(t *testing.T) { 252 got := FromOnChainData(tt.args.withdrawID, "bitcoin", tt.args.data) 253 254 data, _ := got.OnChainData() 255 if !reflect.DeepEqual(data, tt.want) { 256 t.Errorf("FromOnChainData() = %v, want %v", data, tt.want) 257 } 258 }) 259 } 260 } 261 262 func TestWithdrawTarget_OnChainData(t *testing.T) { 263 t.Parallel() 264 265 type fields struct { 266 ID WithdrawTargetID 267 WithdrawID WithdrawID 268 Type WithdrawTargetType 269 Data WithdrawTargetData 270 } 271 tests := []struct { 272 name string 273 fields fields 274 want WithdrawTargetOnChainData 275 wantErr bool 276 }{ 277 {"default", fields{}, WithdrawTargetOnChainData{}, true}, 278 {"type", fields{Type: WithdrawTargetOnChain}, WithdrawTargetOnChainData{}, false}, 279 } 280 for _, tt := range tests { 281 tt := tt // capture range variable 282 t.Run(tt.name, func(t *testing.T) { 283 p := &WithdrawTarget{ 284 ID: tt.fields.ID, 285 WithdrawID: tt.fields.WithdrawID, 286 Type: tt.fields.Type, 287 Data: tt.fields.Data, 288 } 289 got, err := p.OnChainData() 290 if (err != nil) != tt.wantErr { 291 t.Errorf("WithdrawTarget.OnChainData() error = %v, wantErr %v", err, tt.wantErr) 292 return 293 } 294 if !reflect.DeepEqual(got, tt.want) { 295 t.Errorf("WithdrawTarget.OnChainData() = %v, want %v", got, tt.want) 296 } 297 }) 298 } 299 } 300 301 func TestFromLiquidData(t *testing.T) { 302 t.Parallel() 303 304 ref := WithdrawTargetLiquidData{ 305 WithdrawTargetCryptoData: WithdrawTargetCryptoData{Chain: "liquid", PublicKey: "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa "}, 306 } 307 type args struct { 308 withdrawID WithdrawID 309 data WithdrawTargetLiquidData 310 } 311 tests := []struct { 312 name string 313 args args 314 want WithdrawTargetLiquidData 315 }{ 316 {"default", args{}, WithdrawTargetLiquidData{}}, 317 {"valid", args{42, ref}, ref}, 318 } 319 for _, tt := range tests { 320 tt := tt // capture range variable 321 t.Run(tt.name, func(t *testing.T) { 322 got := FromLiquidData(tt.args.withdrawID, tt.args.data) 323 324 data, _ := got.LiquidData() 325 if !reflect.DeepEqual(data, tt.want) { 326 t.Errorf("FromLiquidData() = %v, want %v", data, tt.want) 327 } 328 }) 329 } 330 } 331 332 func TestWithdrawTarget_LiquidData(t *testing.T) { 333 t.Parallel() 334 335 type fields struct { 336 ID WithdrawTargetID 337 WithdrawID WithdrawID 338 Type WithdrawTargetType 339 Data WithdrawTargetData 340 } 341 tests := []struct { 342 name string 343 fields fields 344 want WithdrawTargetLiquidData 345 wantErr bool 346 }{ 347 {"default", fields{}, WithdrawTargetLiquidData{}, true}, 348 {"type", fields{Type: WithdrawTargetLiquid}, WithdrawTargetLiquidData{}, false}, 349 } 350 for _, tt := range tests { 351 tt := tt // capture range variable 352 t.Run(tt.name, func(t *testing.T) { 353 p := &WithdrawTarget{ 354 ID: tt.fields.ID, 355 WithdrawID: tt.fields.WithdrawID, 356 Type: tt.fields.Type, 357 Data: tt.fields.Data, 358 } 359 got, err := p.LiquidData() 360 if (err != nil) != tt.wantErr { 361 t.Errorf("WithdrawTarget.LiquidData() error = %v, wantErr %v", err, tt.wantErr) 362 return 363 } 364 if !reflect.DeepEqual(got, tt.want) { 365 t.Errorf("WithdrawTarget.LiquidData() = %v, want %v", got, tt.want) 366 } 367 }) 368 } 369 } 370 371 func TestFromLightningData(t *testing.T) { 372 t.Parallel() 373 374 ref := WithdrawTargetLightningData{ 375 WithdrawTargetCryptoData: WithdrawTargetCryptoData{Chain: "lightning", PublicKey: "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa "}, 376 } 377 type args struct { 378 withdrawID WithdrawID 379 data WithdrawTargetLightningData 380 } 381 tests := []struct { 382 name string 383 args args 384 want WithdrawTargetLightningData 385 }{ 386 {"default", args{}, WithdrawTargetLightningData{}}, 387 {"valid", args{42, ref}, ref}, 388 } 389 for _, tt := range tests { 390 tt := tt // capture range variable 391 t.Run(tt.name, func(t *testing.T) { 392 got := FromLightningData(tt.args.withdrawID, tt.args.data) 393 394 data, _ := got.LightningData() 395 if !reflect.DeepEqual(data, tt.want) { 396 t.Errorf("FromLightningData() = %v, want %v", data, tt.want) 397 } 398 }) 399 } 400 } 401 402 func TestWithdrawTarget_LightningData(t *testing.T) { 403 t.Parallel() 404 405 type fields struct { 406 ID WithdrawTargetID 407 WithdrawID WithdrawID 408 Type WithdrawTargetType 409 Data WithdrawTargetData 410 } 411 tests := []struct { 412 name string 413 fields fields 414 want WithdrawTargetLightningData 415 wantErr bool 416 }{ 417 {"default", fields{}, WithdrawTargetLightningData{}, true}, 418 {"type", fields{Type: WithdrawTargetLightning}, WithdrawTargetLightningData{}, false}, 419 } 420 for _, tt := range tests { 421 tt := tt // capture range variable 422 t.Run(tt.name, func(t *testing.T) { 423 p := &WithdrawTarget{ 424 ID: tt.fields.ID, 425 WithdrawID: tt.fields.WithdrawID, 426 Type: tt.fields.Type, 427 Data: tt.fields.Data, 428 } 429 got, err := p.LightningData() 430 if (err != nil) != tt.wantErr { 431 t.Errorf("WithdrawTarget.LightningData() error = %v, wantErr %v", err, tt.wantErr) 432 return 433 } 434 if !reflect.DeepEqual(got, tt.want) { 435 t.Errorf("WithdrawTarget.LightningData() = %v, want %v", got, tt.want) 436 } 437 }) 438 } 439 }