github.com/gnolang/gno@v0.0.0-20240520182011-228e9d0192ce/docs/assets/how-to-guides/porting-solidity-to-gno/porting-13.gno (about) 1 // The whole test 2 func TestFull(t *testing.T) { 3 bidder01 := testutils.TestAddress("bidder01") // g1vf5kger9wgcrzh6lta047h6lta047h6lufftkw 4 bidder02 := testutils.TestAddress("bidder02") // g1vf5kger9wgcryh6lta047h6lta047h6lnhe2x2 5 6 // Variables test 7 { 8 shouldEqual(t, highestBidder, "") 9 shouldEqual(t, receiver, "g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5") 10 shouldEqual(t, auctionEndBlock, 423) 11 shouldEqual(t, highestBid, 0) 12 shouldEqual(t, pendingReturns.Size(), 0) 13 shouldEqual(t, ended, false) 14 } 15 16 // Send two or more types of coins 17 { 18 std.TestSetOrigCaller(bidder01) 19 std.TestSetOrigSend(std.Coins{{"ugnot", 0}, {"test", 1}}, nil) 20 shouldPanic(t, Bid) 21 } 22 23 // Send less than the highest bid 24 { 25 std.TestSetOrigCaller(bidder01) 26 std.TestSetOrigSend(std.Coins{{"ugnot", 0}}, nil) 27 shouldPanic(t, Bid) 28 } 29 30 // Send more than the highest bid 31 { 32 std.TestSetOrigCaller(bidder01) 33 std.TestSetOrigSend(std.Coins{{"ugnot", 1}}, nil) 34 shouldNoPanic(t, Bid) 35 36 shouldEqual(t, pendingReturns.Size(), 0) 37 shouldEqual(t, highestBid, 1) 38 shouldEqual(t, highestBidder, "g1vf5kger9wgcrzh6lta047h6lta047h6lufftkw") 39 } 40 41 // Other participants in the auction 42 { 43 44 // Send less amount than the current highest bid (current: 1) 45 std.TestSetOrigCaller(bidder02) 46 std.TestSetOrigSend(std.Coins{{"ugnot", 1}}, nil) 47 shouldPanic(t, Bid) 48 49 // Send more amount than the current highest bid (exceeded) 50 std.TestSetOrigCaller(bidder02) 51 std.TestSetOrigSend(std.Coins{{"ugnot", 2}}, nil) 52 shouldNoPanic(t, Bid) 53 54 shouldEqual(t, highestBid, 2) 55 shouldEqual(t, highestBidder, "g1vf5kger9wgcryh6lta047h6lta047h6lnhe2x2") 56 57 shouldEqual(t, pendingReturns.Size(), 1) // Return to the existing bidder 58 shouldEqual(t, pendingReturns.Has("g1vf5kger9wgcrzh6lta047h6lta047h6lufftkw"), true) 59 } 60 61 // Auction ends 62 { 63 std.TestSkipHeights(150) 64 shouldPanic(t, AuctionEnd) 65 shouldEqual(t, ended, false) 66 67 std.TestSkipHeights(301) 68 shouldNoPanic(t, AuctionEnd) 69 shouldEqual(t, ended, true) 70 71 banker := std.GetBanker(std.BankerTypeRealmSend) 72 shouldEqual(t, banker.GetCoins(receiver).String(), "2ugnot") 73 } 74 }