@Override
    public String buildContext() {
        final RoleDO after = (RoleDO) getAfter();
        if (Objects.isNull(getBefore())) {
            return String.format("the role [%s] is %s", after.getRoleName(), StringUtils.lowerCase(getType().getType().toString()));
        }
        return String.format("the role [%s] is %s : %s", after.getRoleName(), StringUtils.lowerCase(getType().getType().toString()), contrast());
        
    }
@Test
    public void testBuildContext() {
        String roleUpdateStr = StringUtils.lowerCase(EventTypeEnum.ROLE_UPDATE.getType().toString());

        String roleNameChangeStr =
                String.format("name[%s => %s] ", roleDO.getRoleName(), roleDORoleNameChange.getRoleName());
        String roleNameChangeExpectedStr = String.format("the role [%s] is %s : %s",
                roleDORoleNameChange.getRoleName(), roleUpdateStr, roleNameChangeStr);
        assertEquals(roleNameChangeExpectedStr, roleChangedEventRoleNameChangeTest.buildContext());

        String descriptionChangeStr =
                String.format("disc[%s => %s] ", roleDO.getDescription(), roleDODescriptionChange.getDescription());
        String descriptionChangeExpectedStr = String.format("the role [%s] is %s : %s",
                roleDODescriptionChange.getRoleName(), roleUpdateStr, descriptionChangeStr);
        assertEquals(descriptionChangeExpectedStr, roleChangedEventDescriptionChangeTest.buildContext());

        String changeStr = String.format("name[%s => %s] disc[%s => %s] ",
                roleDO.getRoleName(), roleDOChange.getRoleName(),
                roleDO.getDescription(), roleDOChange.getDescription());
        String changeExpectedStr = String.format("the role [%s] is %s : %s",
                roleDOChange.getRoleName(), roleUpdateStr, changeStr);
        assertEquals(changeExpectedStr, roleChangedEventTest.buildContext());

        String beforeNullExpectedStr = String.format("the role [%s] is %s", roleDO.getRoleName(), roleUpdateStr);
        assertEquals(beforeNullExpectedStr, roleChangedEventBeforeNullTest.buildContext());

        String withoutChangeExpectedStr = String.format("the role [%s] is %s : it no change",
                roleDO.getRoleName(), roleUpdateStr);
        assertEquals(withoutChangeExpectedStr, roleChangedEventWithoutChangeTest.buildContext());
    }