package com.liveramp.hank.test.coordinator; import com.liveramp.hank.coordinator.AbstractHostDomain; import com.liveramp.hank.coordinator.Domain; import com.liveramp.hank.coordinator.HostDomainPartition; import java.io.IOException; import java.util.HashSet; import java.util.Set; import java.util.TreeSet; public class MockHostDomain extends AbstractHostDomain { protected final Domain domain; private final Set<HostDomainPartition> partitions = new HashSet<HostDomainPartition>(); private Set<Integer> removedPartitions = new TreeSet<Integer>(); public MockHostDomain(Domain domain, int... partitionNumberAndVersionPairs) { this.domain = domain; for (int i = 0; i < partitionNumberAndVersionPairs.length; i += 2) { partitions.add(new MockHostDomainPartition(partitionNumberAndVersionPairs[i], partitionNumberAndVersionPairs[i + 1])); } } @Override public HostDomainPartition addPartition(int partitionNumber) { MockHostDomainPartition result = new MockHostDomainPartition(partitionNumber, null); partitions.add(result); return result; } @Override public void removePartition(int partitionNumber) throws IOException { removedPartitions.add(partitionNumber); } public boolean isRemoved(int partitionNumber) { return removedPartitions.contains(partitionNumber); } @Override public Domain getDomain() { return domain; } @Override public Set<HostDomainPartition> getPartitions() throws IOException { return partitions; } }