code.vegaprotocol.io/vega@v0.79.0/datanode/sqlstore/assets_helpers_for_test.go (about) 1 // Copyright (C) 2023 Gobalsky Labs Limited 2 // 3 // This program is free software: you can redistribute it and/or modify 4 // it under the terms of the GNU Affero General Public License as 5 // published by the Free Software Foundation, either version 3 of the 6 // License, or (at your option) any later version. 7 // 8 // This program is distributed in the hope that it will be useful, 9 // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 // GNU Affero General Public License for more details. 12 // 13 // You should have received a copy of the GNU Affero General Public License 14 // along with this program. If not, see <http://www.gnu.org/licenses/>. 15 16 package sqlstore_test 17 18 import ( 19 "context" 20 "testing" 21 "time" 22 23 "code.vegaprotocol.io/vega/datanode/entities" 24 "code.vegaprotocol.io/vega/datanode/sqlstore" 25 26 "github.com/shopspring/decimal" 27 "github.com/stretchr/testify/require" 28 ) 29 30 func CreateAsset(t *testing.T, ctx context.Context, store *sqlstore.Assets, block entities.Block) *entities.Asset { 31 t.Helper() 32 33 asset := NewAsset(t, block) 34 35 require.NoError(t, store.Add(ctx, *asset)) 36 37 return asset 38 } 39 40 func NewAsset(t *testing.T, block entities.Block) *entities.Asset { 41 t.Helper() 42 43 // Postgres only stores timestamps in microsecond resolution. 44 // Without truncating, the timestamp will mismatch in test assertions. 45 blockTimeMs := block.VegaTime.Truncate(time.Microsecond) 46 47 asset := &entities.Asset{ 48 ID: entities.AssetID(GenerateID()), 49 Name: "TestAssetName", 50 Symbol: "TAN", 51 Decimals: 1, 52 Quantum: decimal.NewFromInt(1), 53 Source: "TS", 54 ERC20Contract: "ET", 55 VegaTime: blockTimeMs, 56 } 57 58 return asset 59 }