private void addApprovedEquipmentToAward(
     AwardApprovedEquipment equipmentItem1, AwardApprovedEquipment equipmentItem2) {
   equipmentItem1.setApprovedEquipmentId(1L);
   award.add(equipmentItem1);
   equipmentItem2.setApprovedEquipmentId(2L);
   award.add(equipmentItem2);
 }
  @Test
  public void testIsUnique() {
    AwardApprovedEquipment equipmentItem1 = createEquipmentItem(VENDOR, MODEL, WIDGET1, AMOUNT1);
    AwardApprovedEquipment equipmentItem2 = createEquipmentItem(VENDOR, MODEL, WIDGET2, AMOUNT2);

    checkAddingNewItemToEmptyList(equipmentItem1);
    award.add(equipmentItem1);
    checkExistingEntriesDoesntTriggerErrorOnSave();
    addApprovedEquipmentToAward(equipmentItem1, equipmentItem2);
    checkAddingDuplicateToCollection();
    checkEditingItemResultingInDuplicate(equipmentItem2);
  }
  @Test
  public void testCheckForMultiplePIs() {
    AwardPerson newPerson =
        new AwardPerson(
            KcPersonFixtureFactory.createKcPerson(KP_PERSON_ID), ContactRoleFixtureFactory.MOCK_PI);
    newPerson.setPropAwardPersonRoleService(roleService);
    award.add(newPerson);
    Assert.assertFalse(
        "Multiple PIs not detected",
        rule.checkForOnePrincipalInvestigator(award.getProjectPersons()));

    checkErrorState(
        AwardProjectPersonsSaveRule.AWARD_PROJECT_PERSON_LIST_ERROR_KEY,
        AwardProjectPersonsSaveRule.ERROR_AWARD_PROJECT_PERSON_MULTIPLE_PI_EXISTS);
  }
  @Before
  public void setUp() {
    context =
        new JUnit4Mockery() {
          {
            setThreadingPolicy(new Synchroniser());
          }
        };
    roleListBuilder = GenericQueryResults.Builder.create();
    roleListBuilder.setResults(
        new ArrayList<PropAwardPersonRole>() {
          {
            add(createTestRole(3L, "PI", PropAwardPersonRoleServiceImpl.NIH_MULTIPLE_PI_HIERARCHY));
            add(createTestRole(4L, "KP", PropAwardPersonRoleServiceImpl.NIH_MULTIPLE_PI_HIERARCHY));
            add(
                createTestRole(
                    5L, "MPI", PropAwardPersonRoleServiceImpl.NIH_MULTIPLE_PI_HIERARCHY));
            add(
                createTestRole(
                    6L, "COI", PropAwardPersonRoleServiceImpl.NIH_MULTIPLE_PI_HIERARCHY));
          }
        });

    rule = new AwardProjectPersonsSaveRuleImpl();
    award = new Award();
    award.setSponsorCode(SPONSOR_CODE);

    unitA = new Unit();
    unitA.setUnitName("a");
    unitA.setUnitNumber("1");

    unitB = new Unit();
    unitB.setUnitName("b");
    unitB.setUnitNumber("2");

    KcPerson employee = KcPersonFixtureFactory.createKcPerson(PERSON_ID);
    piPerson = new AwardPerson(employee, ContactRoleFixtureFactory.MOCK_PI);
    piPerson.add(new AwardPersonUnit(piPerson, unitA, true));

    NonOrganizationalRolodex nonEmployee;
    nonEmployee = new NonOrganizationalRolodex();
    nonEmployee.setRolodexId(ROLODEX_ID);
    coiPerson = new AwardPerson(nonEmployee, ContactRoleFixtureFactory.MOCK_COI);
    coiPerson.add(new AwardPersonUnit(coiPerson, unitA, false));

    KcPerson employee2 = KcPersonFixtureFactory.createKcPerson(KP_PERSON_ID);
    kpPerson = new AwardPerson(employee2, ContactRoleFixtureFactory.MOCK_KEY_PERSON);
    kpPerson.setKeyPersonRole("Tester");
    kpPerson.add(new AwardPersonUnit(kpPerson, unitA, false));

    piPerson.setAward(award);
    coiPerson.setAward(award);
    kpPerson.setAward(award);

    roleService = getPropAwardPersonRoleService();
    piPerson.setPropAwardPersonRoleService(roleService);
    coiPerson.setPropAwardPersonRoleService(roleService);
    kpPerson.setPropAwardPersonRoleService(roleService);

    award.add(piPerson);
    award.add(coiPerson);
    award.add(kpPerson);

    GlobalVariables.setMessageMap(new MessageMap());
  }