private SortableDependencyGroup newChange(String schema, String changeTypeName, String objectName, String changeName, int orderWithinObject, ImmutableSet<String> dependencies) {
ChangeType changeType = mock(ChangeType.class);
when(changeType.getName()).thenReturn(changeTypeName);
when(changeType.isRerunnable()).thenReturn(true);
SortableDependency sort = mock(SortableDependency.class);
ObjectKey key = new ObjectKey(schema, objectName, changeType);
when(sort.getChangeKey()).thenReturn(new ChangeKey(key, changeName));
if (dependencies != null) {
when(sort.getCodeDependencies()).thenReturn(dependencies.collectWith(new Function2<String, CodeDependencyType, CodeDependency>() {
@Override
public CodeDependency value(String target, CodeDependencyType codeDependencyType) {
return new CodeDependency(target, codeDependencyType);
}
}, CodeDependencyType.EXPLICIT));
}
when(sort.getOrderWithinObject()).thenReturn(orderWithinObject);
String keyString = key.toString();
when(sort.toString()).thenReturn(keyString);
SortableDependencyGroup depGroup = mock(SortableDependencyGroup.class);
when(depGroup.getComponents()).thenReturn(Sets.immutable.<SortableDependency>with(sort));
return depGroup;
}
}