for (boolean validChild : truths) {
for (boolean isDirty : truths) {
for (boolean isObjectManager : truths) {
for (boolean hasChild : truths) {
Object[] testCase = {
action ? new ThisSaveAction() : new ObjectsSaveAction(),
generateComponent(validParent, isDirty, isObjectManager,
hasChild ? generateComponent(validChild, isDirty, isObjectManager, null) : null),
true,
(isDirty && validParent) || (isObjectManager && hasChild && validChild)
};