public void testUpdate() throws Exception { final MockUpdater mockUpdater = new MockUpdater(); StorageEngine mockStorageEngine = new MSE(mockUpdater); DomainGroup mockDomainGroupConfig = getMockDomainGroupConfig(mockStorageEngine); final RingGroup mockRingGroupConfig = new MRG(mockDomainGroupConfig, "myRingGroup", null); UpdateManager ud = new UpdateManager( new MockPartDaemonConfigurator(1, null, "myRingGroup", "/local/data/dir"), mockHostConfig, mockRingGroupConfig, mockRingConfig); ud.update(); assertTrue("update() was called on the storage engine", mockUpdater.isUpdated()); assertEquals( "excludeVersions passed in as expected", Collections.singleton(45), mockUpdater.excludeVersions); assertEquals( "update() called with proper args", Integer.valueOf(0), mockUpdater.updatedToVersion); assertEquals( "current version", Integer.valueOf(1), HOST_DOMAIN_PARTITION.getCurrentDomainGroupVersion()); assertNull("updating to version", HOST_DOMAIN_PARTITION.getUpdatingToDomainGroupVersion()); assertFalse("host domain contains the partition", MOCK_DELETER.hasDeleted()); assertFalse( "host domain partition has not yet been deleted", PARTITION_FOR_DELETION.isDeleted()); PARTITION_FOR_DELETION.setDeletable(true); ud.update(); assertTrue("host domain does not contain the partition", MOCK_DELETER.hasDeleted()); assertTrue("host domain partition has been deleted", PARTITION_FOR_DELETION.isDeleted()); }
public static long computeUpdateETA(Host host) { return UpdateManager.getUpdateETA(host); }