@@ -33,6 +33,7 @@ contract KeyRegistryTest is KeyRegistryTestSuite {
3333 event Remove (uint256 indexed fid , bytes indexed key , bytes keyBytes );
3434 event AdminReset (uint256 indexed fid , bytes indexed key , bytes keyBytes );
3535 event Migrated (uint256 indexed migratedAt );
36+ event SetMigrator (address oldMigrator , address newMigrator );
3637
3738 function testInitialGracePeriod () public {
3839 assertEq (keyRegistry.gracePeriod (), 1 days);
@@ -50,6 +51,46 @@ contract KeyRegistryTest is KeyRegistryTestSuite {
5051 assertEq (keyRegistry.isMigrated (), false );
5152 }
5253
54+ /*//////////////////////////////////////////////////////////////
55+ SET MIGRATOR
56+ //////////////////////////////////////////////////////////////*/
57+
58+ function testFuzzOwnerCanSetMigrator (address migrator ) public {
59+ address oldMigrator = keyRegistry.migrator ();
60+
61+ vm.expectEmit ();
62+ emit SetMigrator (oldMigrator, migrator);
63+ vm.prank (owner);
64+ keyRegistry.setMigrator (migrator);
65+
66+ assertEq (keyRegistry.migrator (), migrator);
67+ }
68+
69+ function testFuzzSetMigratorRevertsWhenMigrated (address migrator ) public {
70+ address oldMigrator = keyRegistry.migrator ();
71+
72+ vm.prank (oldMigrator);
73+ keyRegistry.migrate ();
74+
75+ vm.prank (owner);
76+ vm.expectRevert (IMigration.AlreadyMigrated.selector );
77+ keyRegistry.setMigrator (migrator);
78+
79+ assertEq (keyRegistry.migrator (), oldMigrator);
80+ }
81+
82+ function testFuzzSetMigratorRevertsWhenUnpaused (address migrator ) public {
83+ address oldMigrator = keyRegistry.migrator ();
84+
85+ vm.startPrank (owner);
86+ keyRegistry.unpause ();
87+ vm.expectRevert ("Pausable: not paused " );
88+ keyRegistry.setMigrator (migrator);
89+ vm.stopPrank ();
90+
91+ assertEq (keyRegistry.migrator (), oldMigrator);
92+ }
93+
5394 /*//////////////////////////////////////////////////////////////
5495 MIGRATION
5596 //////////////////////////////////////////////////////////////*/
0 commit comments