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  }