github.com/gnolang/gno@v0.0.0-20240520182011-228e9d0192ce/examples/gno.land/p/demo/ownable/ownable_test.gno (about)

     1  package ownable
     2  
     3  import (
     4  	"std"
     5  	"testing"
     6  )
     7  
     8  var (
     9  	firstCaller  = std.Address("g1l9aypkr8xfvs82zeux486ddzec88ty69lue9de")
    10  	secondCaller = std.Address("g127jydsh6cms3lrtdenydxsckh23a8d6emqcvfa")
    11  )
    12  
    13  func TestNew(t *testing.T) {
    14  	std.TestSetOrigCaller(firstCaller)
    15  
    16  	result := New()
    17  	if firstCaller != result.owner {
    18  		t.Fatalf("Expected %s, got: %s\n", firstCaller, result.owner)
    19  	}
    20  }
    21  
    22  func TestOwner(t *testing.T) {
    23  	std.TestSetOrigCaller(firstCaller)
    24  
    25  	result := New()
    26  	resultOwner := result.Owner()
    27  
    28  	expected := firstCaller
    29  	if resultOwner != expected {
    30  		t.Fatalf("Expected %s, got: %s\n", expected, result)
    31  	}
    32  }
    33  
    34  func TestTransferOwnership(t *testing.T) {
    35  	std.TestSetOrigCaller(firstCaller)
    36  	o := New()
    37  
    38  	err := o.TransferOwnership(secondCaller)
    39  	if err != nil {
    40  		t.Fatalf("TransferOwnership failed, %v", err)
    41  	}
    42  
    43  	result := o.Owner()
    44  	if secondCaller != result {
    45  		t.Fatalf("Expected: %s, got: %s\n", secondCaller, result)
    46  	}
    47  }
    48  
    49  func TestCallerIsOwner(t *testing.T) {
    50  	std.TestSetOrigCaller(firstCaller)
    51  
    52  	o := New()
    53  	unauthorizedCaller := secondCaller
    54  
    55  	std.TestSetOrigCaller(unauthorizedCaller)
    56  
    57  	err := o.CallerIsOwner()
    58  	if err == nil {
    59  		t.Fatalf("Expected %s to not be owner\n", unauthorizedCaller)
    60  	}
    61  }
    62  
    63  func TestDropOwnership(t *testing.T) {
    64  	std.TestSetOrigCaller(firstCaller)
    65  
    66  	o := New()
    67  
    68  	err := o.DropOwnership()
    69  	if err != nil {
    70  		t.Fatalf("DropOwnership failed, %v", err)
    71  	}
    72  
    73  	owner := o.Owner()
    74  	if owner != "" {
    75  		t.Fatalf("Expected owner to be empty, not %s\n", owner)
    76  	}
    77  }
    78  
    79  // Errors
    80  
    81  func TestErrUnauthorized(t *testing.T) {
    82  	std.TestSetOrigCaller(firstCaller)
    83  
    84  	o := New()
    85  
    86  	std.TestSetOrigCaller(secondCaller)
    87  
    88  	err := o.TransferOwnership(firstCaller)
    89  	if err != ErrUnauthorized {
    90  		t.Fatalf("Should've been ErrUnauthorized, was %v", err)
    91  	}
    92  
    93  	err = o.DropOwnership()
    94  	if err != ErrUnauthorized {
    95  		t.Fatalf("Should've been ErrUnauthorized, was %v", err)
    96  	}
    97  }
    98  
    99  func TestErrInvalidAddress(t *testing.T) {
   100  	std.TestSetOrigCaller(firstCaller)
   101  
   102  	o := New()
   103  
   104  	err := o.TransferOwnership("")
   105  	if err != ErrInvalidAddress {
   106  		t.Fatalf("Should've been ErrInvalidAddress, was %v", err)
   107  	}
   108  
   109  	err = o.TransferOwnership("10000000001000000000100000000010000000001000000000")
   110  	if err != ErrInvalidAddress {
   111  		t.Fatalf("Should've been ErrInvalidAddress, was %v", err)
   112  	}
   113  }