private void lookupAndSaveDataObject(AgendaDefinition agendaDefinition) {
    AgendaBo agendaBo = findAgendaByPrimaryKey(agendaDefinition);

    AgendaEditorMaintainable aem = new AgendaEditorMaintainable();
    AgendaEditor ae = new AgendaEditor();
    ae.setAgenda(agendaBo);
    aem.setDataObject(ae);
    aem.saveDataObject();
  }
  @Test
  public void testOrphanAgendaItems() {
    AgendaEditorMaintainable aem = new AgendaEditorMaintainable();
    AgendaEditor ae = new AgendaEditor();
    AgendaDefinitionDataWrapper agendaWrapper = new AgendaDefinitionDataWrapper();

    AgendaBo agendaBoToUpdate = findAgendaByPrimaryKey(agendaWrapper.agenda);

    //  Before we change anything, verify everything is as expected
    AgendaItemDefinition toBeDeletedItem1 =
        agendaBoService.getAgendaItemById(agendaWrapper.firstItem.getId());
    AgendaItemDefinition toBeDeletedItem2 =
        agendaBoService.getAgendaItemById(agendaWrapper.secondItem.getId());
    AgendaItemDefinition toBeDeletedItem3 =
        agendaBoService.getAgendaItemById(agendaWrapper.thirdItem.getId());
    AgendaItemDefinition toBeDeletedItem4 =
        agendaBoService.getAgendaItemById(agendaWrapper.fourthItem.getId());

    RuleDefinition toBeDeletedRule1 =
        ruleBoService.getRuleByRuleId(agendaWrapper.firstItem.getRuleId());
    RuleDefinition toBeDeletedRule2 =
        ruleBoService.getRuleByRuleId(agendaWrapper.secondItem.getRuleId());
    RuleDefinition toBeDeletedRule3 =
        ruleBoService.getRuleByRuleId(agendaWrapper.thirdItem.getRuleId());
    RuleDefinition toBeDeletedRule4 =
        ruleBoService.getRuleByRuleId(agendaWrapper.fourthItem.getRuleId());

    PropositionDefinition toBeDeletedProp1 =
        propositionBoService.getPropositionById(agendaWrapper.firstItem.getRule().getPropId());
    PropositionDefinition toBeDeletedProp2 =
        propositionBoService.getPropositionById(agendaWrapper.secondItem.getRule().getPropId());
    PropositionDefinition toBeDeletedProp3 =
        propositionBoService.getPropositionById(agendaWrapper.thirdItem.getRule().getPropId());
    PropositionDefinition toBeDeletedProp4 =
        propositionBoService.getPropositionById(agendaWrapper.fourthItem.getRule().getPropId());

    assertEquals(agendaBoToUpdate.getItems().size(), 4);
    assertEquals(agendaBoToUpdate.getName(), "TestAgenda1");

    assertNotNull("First item should be present", toBeDeletedItem1);
    assertNotNull("Second item should be present", toBeDeletedItem2);
    assertNotNull("Third item should be present", toBeDeletedItem3);
    assertNotNull("Fourth item should be present", toBeDeletedItem4);

    assertNotNull("First Item's rule should be present", toBeDeletedRule1);
    assertNotNull("Second Item's rule should be present", toBeDeletedRule2);
    assertNotNull("Third Item's rule should be present", toBeDeletedRule3);
    assertNotNull("Fourth Item's rule should be present", toBeDeletedRule4);

    assertNotNull("First Item's proposition should be present", toBeDeletedProp1);
    assertNotNull("Second Item's proposition should be present", toBeDeletedProp2);
    assertNotNull("Third Item's proposition should be present", toBeDeletedProp3);
    assertNotNull("Fourth Item's proposition should be present", toBeDeletedProp4);

    // Change the agenda!
    agendaBoToUpdate.setName("Updated Agenda Name!");
    agendaBoToUpdate.setFirstItem(null);
    agendaBoToUpdate.setFirstItemId(null);
    agendaBoToUpdate.setItems(new ArrayList<AgendaItemBo>());

    ae.setAgenda(agendaBoToUpdate);
    aem.setDataObject(ae);
    aem.saveDataObject();

    // Get the updated agenda and verify agenda items, rule, propositions, etc were updated or
    // deleted.
    AgendaBo agendaBoUpdated = findAgendaByPrimaryKey(agendaWrapper.agenda);

    AgendaItemDefinition deletedItem1 =
        agendaBoService.getAgendaItemById(agendaWrapper.firstItem.getId());
    AgendaItemDefinition deletedItem2 =
        agendaBoService.getAgendaItemById(agendaWrapper.secondItem.getId());
    AgendaItemDefinition deletedItem3 =
        agendaBoService.getAgendaItemById(agendaWrapper.thirdItem.getId());
    AgendaItemDefinition deletedItem4 =
        agendaBoService.getAgendaItemById(agendaWrapper.fourthItem.getId());

    RuleDefinition deletedRule1 =
        ruleBoService.getRuleByRuleId(agendaWrapper.firstItem.getRuleId());
    RuleDefinition deletedRule2 =
        ruleBoService.getRuleByRuleId(agendaWrapper.secondItem.getRuleId());
    RuleDefinition deletedRule3 =
        ruleBoService.getRuleByRuleId(agendaWrapper.thirdItem.getRuleId());
    RuleDefinition deletedRule4 =
        ruleBoService.getRuleByRuleId(agendaWrapper.fourthItem.getRuleId());

    PropositionDefinition deletedProp1 =
        propositionBoService.getPropositionById(agendaWrapper.firstItem.getRule().getPropId());
    PropositionDefinition deletedProp2 =
        propositionBoService.getPropositionById(agendaWrapper.secondItem.getRule().getPropId());
    PropositionDefinition deletedProp3 =
        propositionBoService.getPropositionById(agendaWrapper.thirdItem.getRule().getPropId());
    PropositionDefinition deletedProp4 =
        propositionBoService.getPropositionById(agendaWrapper.fourthItem.getRule().getPropId());

    assertEquals(agendaBoUpdated.getItems().size(), 0);
    assertEquals(agendaBoUpdated.getName(), "Updated Agenda Name!");

    assertNull("First item should be deleted", deletedItem1);
    assertNull("Second item should be deleted", deletedItem2);
    assertNull("Third item should be deleted", deletedItem3);
    assertNull("Fourth item should be deleted", deletedItem4);

    assertNull("First Item's rule should be deleted", deletedRule1);
    assertNull("Second Item's rule should be deleted", deletedRule2);
    assertNull("Third Item's rule should be deleted", deletedRule3);
    assertNull("Fourth Item's rule should be deleted", deletedRule4);

    assertNull("First Item's proposition should be deleted", deletedProp1);
    assertNull("Second Item's proposition should be deleted", deletedProp2);
    assertNull("Third Item's proposition should be deleted", deletedProp3);
    assertNull("Fourth Item's proposition should be deleted", deletedProp4);
  }