use of nl.teslanet.mule.connectors.coap.api.error.InvalidETagException in project mule-coap-connector by teslanet-nl.
the class Listener method onSuccess.
@OnSuccess
@MediaType(value = "*/*", strict = false)
public void onSuccess(@Optional @NullSafe @Alias("response") @Placement(tab = "Response", order = 1) ResponseParams response, @Optional @NullSafe @Alias("response-options") @Expression(ExpressionSupport.SUPPORTED) @Summary("The CoAP options to send with the response.") @Placement(tab = "Response", order = 2) ResponseOptions responseOptions, SourceCallbackContext callbackContext) throws InternalInvalidByteArrayValueException, InternalInvalidResponseCodeException, IOException, InvalidETagException, InternalInvalidOptionValueException {
CoAPResponseCode defaultCoapResponseCode = (CoAPResponseCode) callbackContext.getVariable("defaultCoAPResponseCode").get();
Response coapResponse = new Response(AttributeUtils.toResponseCode(response.getResponseCode(), defaultCoapResponseCode));
// TODO give user control
TypedValue<Object> responsePayload = response.getResponsePayload();
coapResponse.getOptions().setContentFormat(MediaTypeMediator.toContentFormat(responsePayload.getDataType().getMediaType()));
if (responseOptions != null) {
MessageUtils.copyOptions(responseOptions, coapResponse.getOptions(), transformationService);
}
// TODO add streaming & blockwise cooperation
try {
coapResponse.setPayload(MessageUtils.toBytes(responsePayload, transformationService));
} catch (Exception e) {
throw new InternalInvalidByteArrayValueException("Cannot convert payload to byte[]", e);
}
((CoapExchange) callbackContext.getVariable("CoapExchange").get()).respond(coapResponse);
}
use of nl.teslanet.mule.connectors.coap.api.error.InvalidETagException in project mule-coap-connector by teslanet-nl.
the class ETagTest method testConstructorETagLargeString.
@Test
public void testConstructorETagLargeString() throws InvalidETagException {
String etagValue1 = "112233445566778899";
InvalidETagException e = assertThrows(InvalidETagException.class, () -> {
@SuppressWarnings("unused") ETag etag1 = new ETag(etagValue1, 16);
});
assertTrue("exception has wrong message", e.getMessage().contains("Cannot construct etag value"));
assertTrue("exception has wrong message", e.getMessage().contains(etagValue1));
}
use of nl.teslanet.mule.connectors.coap.api.error.InvalidETagException in project mule-coap-connector by teslanet-nl.
the class ETagTest method testConstructorETagLargeString2.
@Test
public void testConstructorETagLargeString2() throws InvalidETagException {
String etagValue1 = "this is too large to fit into an etag";
InvalidETagException e = assertThrows(InvalidETagException.class, () -> {
@SuppressWarnings("unused") ETag etag1 = new ETag(etagValue1);
});
assertTrue("exception has wrong message", e.getMessage().contains("Cannot construct etag value"));
assertTrue("exception has wrong message", e.getMessage().contains(etagValue1));
}
use of nl.teslanet.mule.connectors.coap.api.error.InvalidETagException in project mule-coap-connector by teslanet-nl.
the class ETagTest method testConstructorETagLargeByteArray.
@Test
public void testConstructorETagLargeByteArray() throws InvalidETagException {
byte[] etagValue1 = new byte[9];
for (int i = 0; i < 9; i++) {
etagValue1[i] = (byte) i;
}
InvalidETagException e = assertThrows(InvalidETagException.class, () -> {
@SuppressWarnings("unused") ETag etag1 = new ETag(etagValue1);
});
assertTrue("exception has wrong message", e.getMessage().contains("Given length is: 9"));
}
use of nl.teslanet.mule.connectors.coap.api.error.InvalidETagException in project mule-coap-connector by teslanet-nl.
the class ETagTest method testConstructorInvalidString.
@Test
public void testConstructorInvalidString() throws InvalidETagException {
String etagValue1 = "10aaZZ";
InvalidETagException e = assertThrows(InvalidETagException.class, () -> {
@SuppressWarnings("unused") ETag etag1 = new ETag(etagValue1, 16);
});
assertTrue("exception has wrong message", e.getMessage().contains("Cannot construct etag value"));
assertTrue("exception has wrong message", e.getMessage().contains(etagValue1));
}
Aggregations