public void testKeepsExistingUpdatesGoing() throws Exception { final MockDomainGroup domainGroup = new MockDomainGroup("myDomainGroup") { @Override public DomainGroupVersion getLatestVersion() { return new MockDomainGroupVersion(null, null, 2); } }; final MockRingGroup mockRingGroupConf = new MockRingGroup(null, "myRingGroup", Collections.EMPTY_SET) { @Override public DomainGroup getDomainGroup() { return domainGroup; } @Override public Integer getCurrentVersion() { return 1; } @Override public boolean isUpdating() { return true; } }; DataDeployerConfigurator mockConfig = new DataDeployerConfigurator() { @Override public long getSleepInterval() { return 100; } @Override public String getRingGroupName() { return "myRingGroup"; } @Override public Coordinator getCoordinator() { return new MockCoordinator() { @Override public RingGroup getRingGroupConfig(String ringGroupName) { return mockRingGroupConf; } }; } }; MockRingGroupUpdateTransitionFunction mockTransFunc = new MockRingGroupUpdateTransitionFunction(); DataDeployer daemon = new DataDeployer(mockConfig, mockTransFunc); daemon.processUpdates(mockRingGroupConf, domainGroup); assertEquals(mockRingGroupConf, mockTransFunc.calledWithRingGroup); }
public void testTriggersUpdates() throws Exception { final MockDomainGroup domainGroup = new MockDomainGroup("myDomainGroup") { @Override public DomainGroupVersion getLatestVersion() { return new MockDomainGroupVersion(null, null, 2); } }; final MockHostDomainPartition mockHostDomainPartitionConfig = new MockHostDomainPartition(0, 0, 1); final MockHost mockHostConfig = new MockHost(new PartDaemonAddress("locahost", 12345)) { @Override public Set<HostDomain> getAssignedDomains() throws IOException { return Collections.singleton( (HostDomain) new AbstractHostDomain() { @Override public HostDomainPartition addPartition(int partNum, int initialVersion) { return null; } @Override public int getDomainId() { return 0; } @Override public Set<HostDomainPartition> getPartitions() { return Collections.singleton( (HostDomainPartition) mockHostDomainPartitionConfig); } }); } }; final MockRing mockRingConfig = new MockRing(null, null, 1, null) { @Override public Set<Host> getHosts() { return Collections.singleton((Host) mockHostConfig); } }; final MockRingGroup mockRingGroupConf = new MockRingGroup(null, "myRingGroup", Collections.EMPTY_SET) { @Override public DomainGroup getDomainGroup() { return domainGroup; } @Override public Integer getCurrentVersion() { return 1; } @Override public Set<Ring> getRings() { return Collections.singleton((Ring) mockRingConfig); } }; DataDeployerConfigurator mockConfig = new DataDeployerConfigurator() { @Override public long getSleepInterval() { return 100; } @Override public String getRingGroupName() { return "myRingGroup"; } @Override public Coordinator getCoordinator() { return new MockCoordinator() { @Override public RingGroup getRingGroupConfig(String ringGroupName) { return mockRingGroupConf; } }; } }; MockRingGroupUpdateTransitionFunction mockTransFunc = new MockRingGroupUpdateTransitionFunction(); DataDeployer daemon = new DataDeployer(mockConfig, mockTransFunc); daemon.processUpdates(mockRingGroupConf, domainGroup); assertNull(mockTransFunc.calledWithRingGroup); assertEquals(2, mockRingGroupConf.updateToVersion); assertEquals(Integer.valueOf(2), mockRingConfig.updatingToVersion); assertEquals(2, mockHostDomainPartitionConfig.updatingToVersion); }