@Test
public void testUpdateRoleMemberReview() {

    long ext100Millis = TimeUnit.MILLISECONDS.convert(100, TimeUnit.DAYS);
    long ext125Millis = TimeUnit.MILLISECONDS.convert(125, TimeUnit.DAYS);
    long ext150Millis = TimeUnit.MILLISECONDS.convert(150, TimeUnit.DAYS);
    List<RoleMember> members = new ArrayList<>();
    members.add(new RoleMember().setMemberName("user.joe").setReviewReminder(null)
            .setPrincipalType(Principal.Type.USER.getValue()));
    members.add(new RoleMember().setMemberName("user.jane")
            .setReviewReminder(Timestamp.fromMillis(System.currentTimeMillis() + ext100Millis))
            .setPrincipalType(Principal.Type.USER.getValue()));
    members.add(new RoleMember().setMemberName("athenz.api").setReviewReminder(null)
            .setPrincipalType(Principal.Type.SERVICE.getValue()));
    members.add(new RoleMember().setMemberName("athenz.backend")
            .setReviewReminder(Timestamp.fromMillis(System.currentTimeMillis() + ext100Millis))
            .setPrincipalType(Principal.Type.SERVICE.getValue()));
    zms.updateRoleMemberReviewReminder(
            125,
            150, members);
    Timestamp stamp = members.get(0).getReviewReminder();
    assertTrue(validateDueDate(stamp.millis(), ext125Millis));
    stamp = members.get(1).getReviewReminder();
    assertTrue(validateDueDate(stamp.millis(), ext100Millis));
    stamp = members.get(2).getReviewReminder();
    assertTrue(validateDueDate(stamp.millis(), ext150Millis));
    stamp = members.get(3).getReviewReminder();
    assertTrue(validateDueDate(stamp.millis(), ext100Millis));
}