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  }