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 }