projectNode1.addGroup(four);
projectNode1.setProperty(Info.PROJECT_COLS, Arrays.asList(e2));
//replace source 3 with groups 5, 6
SymbolMap replacement = SymbolMap.createSymbolMap(Arrays.asList(e1), Arrays.asList(new Constant(null)));
FrameUtil.convertFrame(NodeEditor.findNodePreOrder(joinNode, NodeConstants.Types.SOURCE), getGroup(3), new HashSet<GroupSymbol>(Arrays.asList(getGroup(5), getGroup(6))), replacement.asMap(), null);
assertEquals(4, joinNode.getGroups().size()); //even though this is a cross join it should still retain its groups
assertEquals(0, NodeEditor.findNodePreOrder(joinNode, NodeConstants.Types.SELECT).getGroups().size());
assertEquals(1, projectNode1.getGroups().size());
assertEquals(0, projectNode.getGroups().size());
}