public static String getDescription(String descriptionTemplate, Map<String, String> params) {
        assertParamsMatchWithDescription(descriptionTemplate, params);
        String description = descriptionTemplate;
        for (String param : getParams(descriptionTemplate)) {
            String value = params.get(param);
            description = description.replace(String.format("<%s>", param), value);
        }
        return description;
    }
@Test
    void testGetDescriptionForTemplate() {
        String description = "test description with param <key1>, <key2> and <key3>.";
        Map<String, String> params = new HashMap<>();
        params.put("key1", "value1");
        params.put("key2", "value2");
        params.put("key3", "value3");
        Assertions.assertEquals(
                "test description with param value1, value2 and value3.",
                ExceptionParamsUtil.getDescription(description, params));

        params.remove("key2");
        Assertions.assertThrows(
                IllegalArgumentException.class,
                () -> ExceptionParamsUtil.getDescription(description, params));
    }