+ enterAssuranceDeleted(agentID, applicantNameID, yesterday);
+ assertFalse(applicant.isInVerificationLimit());
+ }
+
+ @Test
+ public void testMultipleAssurancePossible() throws IOException {
+ User agent = User.getById(agentID);
+ User applicantMult = User.getById(applicantMultID);
+
+ enterAssuranceWhen(agentID, applicantMult.getPreferredName().getId(), min39month);
+
+ // test that new entry would be possible
+ assertTrue(Notary.checkAssuranceIsPossible(agent, applicantMult.getPreferredName()));
+
+ // enter new entry
+ enterAssuranceWhen(agentID, applicantMult.getPreferredName().getId(), yesterday);
+
+ // test that new entry is not possible
+ assertFalse(Notary.checkAssuranceIsPossible(agent, applicantMult.getPreferredName()));
+
+ }
+
+ @Test
+ public void testMultipleAssurancePointsCalculation() throws IOException {
+
+ User agent = User.getById(agentID);
+ User applicantMult = User.getById(applicantMultID);
+
+ enterAssuranceWhen(agentID, applicantMult.getPreferredName().getId(), min39month);
+ int xPoints = agent.getExperiencePoints();
+
+ // test that VP after first entry
+
+ assertEquals(applicantMult.getAssurancePoints(), 10);
+
+ // enter second entry to check correct calculation with larger points
+ enterAssuranceWhen(agentID, applicantMult.getPreferredName().getId(), min24month, 20);
+ assertEquals(applicantMult.getAssurancePoints(), 20);
+
+ // test correct XP calculation
+ assertEquals(agent.getExperiencePoints(), xPoints);
+
+ // enter third entry to check correct calculation with less points
+ enterAssuranceWhen(agentID, applicantMult.getPreferredName().getId(), yesterday, 15);
+ assertEquals(applicantMult.getAssurancePoints(), 15);
+
+ // test correct XP calculation
+ assertEquals(agent.getExperiencePoints(), xPoints);
+
+ // enter expired entry
+ enterAssuranceExpired(agentID, applicantMult.getPreferredName().getId(), yesterday);
+ assertEquals(applicantMult.getAssurancePoints(), 15);
+
+ // enter deleted entry same agent
+ enterAssuranceDeleted(agentID, applicantMult.getPreferredName().getId(), yesterday);
+ assertEquals(applicantMult.getAssurancePoints(), 15);
+
+ // enter expired entry future
+ enterAssuranceExpired(agentID, applicantMult.getPreferredName().getId(), tomorrow);
+ assertEquals(applicantMult.getAssurancePoints(), 10);
+
+ // test correct XP calculation
+ assertEquals(agent.getExperiencePoints(), xPoints);
+
+ // enter entry from different agent
+ enterAssuranceWhen(agent2ID, applicantMult.getPreferredName().getId(), yesterday);
+ assertEquals(applicantMult.getAssurancePoints(), 20);
+
+ // enter entry for second applicant
+ enterAssuranceWhen(agentID, applicant.getPreferredName().getId(), yesterday);
+
+ assertEquals(agent.getExperiencePoints(), xPoints + User.EXPERIENCE_POINTS);