+ private static void assertInvalidParam(final Function<UriInfo, ?> paramsMethod, final RestconfQueryParam<?> param) {
+ final var params = new MultivaluedHashMap<String, String>();
+ params.putSingle(param.paramName(), "odl-test-value");
+ assertParamsThrows(ErrorTag.MALFORMED_MESSAGE, paramsMethod, params);
+ }
+
+ private static void assertUnknownParam(final Function<UriInfo, ?> paramsMethod) {
+ final var params = new MultivaluedHashMap<String, String>();
+ params.putSingle("odl-unknown-param", "odl-test-value");
+ assertParamsThrows(ErrorTag.UNKNOWN_ATTRIBUTE, paramsMethod, params);
+ }
+
+ private static void assertInvalidValue(final Function<UriInfo, ?> paramsMethod, final String name) {
+ assertInvalidValue(paramsMethod, name, "odl-invalid-value");
+ }
+
+ private static void assertInvalidValue(final Function<UriInfo, ?> paramsMethod, final String name,
+ final String value) {
+ final var params = new MultivaluedHashMap<String, String>();
+ params.putSingle(name, value);
+ assertParamsThrows(ErrorTag.INVALID_VALUE, paramsMethod, params);
+ }
+
+ private static void assertParamsThrows(final ErrorTag expectedTag, final Function<UriInfo, ?> paramsMethod,
+ final MultivaluedMap<String, String> params) {
+ final var uriInfo = mock(UriInfo.class);
+ doReturn(params).when(uriInfo).getQueryParameters();
+
+ final var ex = assertThrows(RestconfDocumentedException.class, () -> paramsMethod.apply(uriInfo));
+ final var errors = ex.getErrors();
+ assertEquals(1, errors.size());
+
+ final var error = errors.get(0);
+ assertEquals(ErrorType.PROTOCOL, error.getErrorType());
+ assertEquals(expectedTag, error.getErrorTag());
+ }
+
+ private static <T> T assertParams(final Function<UriInfo, T> paramsMethod, final String name,
+ final String value) {
+ final var params = new MultivaluedHashMap<String, String>();
+ params.putSingle(name, value);
+ return assertParams(paramsMethod, params);