github.com/cryptohub-digital/blockbook-fork@v0.0.0-20230713133354-673c927af7f1/common/currencyrateticker_test.go (about) 1 package common 2 3 import ( 4 "testing" 5 ) 6 7 func TestCurrencyRatesTicker_ConvertToken(t *testing.T) { 8 ticker := &CurrencyRatesTicker{ 9 Rates: map[string]float32{ 10 "usd": 2129.987654321, 11 "eur": 1332.12345678, 12 }, 13 TokenRates: map[string]float32{ 14 "0x82df128257a7d7556262e1ab7f1f639d9775b85e": 0.4092341123, 15 "0x6b175474e89094c44da98b954eedeac495271d0f": 12.32323232323232, 16 "0xdac17f958d2ee523a2206206994597c13d831ec7": 1332421341235.51234, 17 }, 18 } 19 tests := []struct { 20 name string 21 value float64 22 token string 23 toCurrency string 24 want float64 25 }{ 26 { 27 name: "usd 0x82df128257a7d7556262e1ab7f1f639d9775b85e", 28 value: 10, 29 token: "0x82df128257a7d7556262e1ab7f1f639d9775b85e", 30 toCurrency: "usd", 31 want: 8716.635514874506, 32 }, 33 { 34 name: "eur 0xdac17f958d2ee523a2206206994597c13d831ec7", 35 value: 23.123, 36 token: "0xdac17f958d2ee523a2206206994597c13d831ec7", 37 toCurrency: "eur", 38 want: 4.104216071804417e+16, 39 }, 40 { 41 name: "eur 0xdac17f958d2ee523a2206206994597c13d831ec8", 42 value: 23.123, 43 token: "0xdac17f958d2ee523a2206206994597c13d831ec8", 44 toCurrency: "eur", 45 want: 0, 46 }, 47 { 48 name: "eur 0xdac17f958d2ee523a2206206994597c13d831ec7", 49 value: 23.123, 50 token: "0xdac17f958d2ee523a2206206994597c13d831ec7", 51 toCurrency: "czk", 52 want: 0, 53 }, 54 } 55 for _, tt := range tests { 56 t.Run(tt.name, func(t *testing.T) { 57 if got := ticker.ConvertToken(tt.value, tt.token, tt.toCurrency); got != tt.want { 58 t.Errorf("CurrencyRatesTicker.ConvertToken() = %v, want %v", got, tt.want) 59 } 60 }) 61 } 62 }