Search in sources :

Example 1 with Tlv

use of org.eclipse.leshan.tlv.Tlv in project leshan by eclipse.

the class CoapRequestBuilderTest method build_create_request__with_instance_id.

@Test
public void build_create_request__with_instance_id() throws Exception {
    Registration reg = newRegistration();
    // test
    CoapRequestBuilder builder = new CoapRequestBuilder(reg.getIdentity(), reg.getRootPath(), reg.getId(), reg.getEndpoint(), model, encoder);
    CreateRequest request = new CreateRequest(12, new LwM2mObjectInstance(26, LwM2mSingleResource.newStringResource(0, "value")));
    builder.visit(request);
    // verify
    Request coapRequest = builder.getRequest();
    assertEquals(CoAP.Code.POST, coapRequest.getCode());
    assertEquals("127.0.0.1", coapRequest.getDestinationContext().getPeerAddress().getAddress().getHostAddress());
    assertEquals(12354, coapRequest.getDestinationContext().getPeerAddress().getPort());
    assertEquals("coap://127.0.0.1:12354/12", coapRequest.getURI());
    assertEquals(ContentFormat.TLV.getCode(), coapRequest.getOptions().getContentFormat());
    assertNotNull(coapRequest.getPayload());
    // assert it is encoded as array of instance TLV
    Tlv[] tlvs = TlvDecoder.decode(ByteBuffer.wrap(coapRequest.getPayload()));
    assertEquals(TlvType.OBJECT_INSTANCE, tlvs[0].getType());
    assertEquals(26, tlvs[0].getIdentifier());
}
Also used : LwM2mObjectInstance(org.eclipse.leshan.core.node.LwM2mObjectInstance) Registration(org.eclipse.leshan.server.registration.Registration) CreateRequest(org.eclipse.leshan.core.request.CreateRequest) ReadRequest(org.eclipse.leshan.core.request.ReadRequest) DeleteRequest(org.eclipse.leshan.core.request.DeleteRequest) CreateRequest(org.eclipse.leshan.core.request.CreateRequest) ExecuteRequest(org.eclipse.leshan.core.request.ExecuteRequest) WriteRequest(org.eclipse.leshan.core.request.WriteRequest) ObserveRequest(org.eclipse.leshan.core.request.ObserveRequest) WriteAttributesRequest(org.eclipse.leshan.core.request.WriteAttributesRequest) Request(org.eclipse.californium.core.coap.Request) DiscoverRequest(org.eclipse.leshan.core.request.DiscoverRequest) Tlv(org.eclipse.leshan.tlv.Tlv) Test(org.junit.Test)

Example 2 with Tlv

use of org.eclipse.leshan.tlv.Tlv in project leshan by eclipse.

the class CoapRequestBuilderTest method build_create_request__without_instance_id.

@Test
public void build_create_request__without_instance_id() throws Exception {
    Registration reg = newRegistration();
    // test
    CoapRequestBuilder builder = new CoapRequestBuilder(reg.getIdentity(), reg.getRootPath(), reg.getId(), reg.getEndpoint(), model, encoder);
    CreateRequest request = new CreateRequest(12, LwM2mSingleResource.newStringResource(0, "value"));
    builder.visit(request);
    // verify
    Request coapRequest = builder.getRequest();
    assertEquals(CoAP.Code.POST, coapRequest.getCode());
    assertEquals("127.0.0.1", coapRequest.getDestinationContext().getPeerAddress().getAddress().getHostAddress());
    assertEquals(12354, coapRequest.getDestinationContext().getPeerAddress().getPort());
    assertEquals("coap://127.0.0.1:12354/12", coapRequest.getURI());
    assertEquals(ContentFormat.TLV.getCode(), coapRequest.getOptions().getContentFormat());
    assertNotNull(coapRequest.getPayload());
    // assert it is encoded as array of resources TLV
    Tlv[] tlvs = TlvDecoder.decode(ByteBuffer.wrap(coapRequest.getPayload()));
    assertEquals(TlvType.RESOURCE_VALUE, tlvs[0].getType());
}
Also used : Registration(org.eclipse.leshan.server.registration.Registration) CreateRequest(org.eclipse.leshan.core.request.CreateRequest) ReadRequest(org.eclipse.leshan.core.request.ReadRequest) DeleteRequest(org.eclipse.leshan.core.request.DeleteRequest) CreateRequest(org.eclipse.leshan.core.request.CreateRequest) ExecuteRequest(org.eclipse.leshan.core.request.ExecuteRequest) WriteRequest(org.eclipse.leshan.core.request.WriteRequest) ObserveRequest(org.eclipse.leshan.core.request.ObserveRequest) WriteAttributesRequest(org.eclipse.leshan.core.request.WriteAttributesRequest) Request(org.eclipse.californium.core.coap.Request) DiscoverRequest(org.eclipse.leshan.core.request.DiscoverRequest) Tlv(org.eclipse.leshan.tlv.Tlv) Test(org.junit.Test)

Example 3 with Tlv

use of org.eclipse.leshan.tlv.Tlv in project leshan by eclipse.

the class LwM2mNodeDecoderTest method tlv_unknown_object__missing_instance_tlv.

@Test
public void tlv_unknown_object__missing_instance_tlv() throws CodecException {
    byte[] content = TlvEncoder.encode(new Tlv[] { new Tlv(TlvType.RESOURCE_VALUE, null, "value1".getBytes(), 1), new Tlv(TlvType.RESOURCE_VALUE, null, "value1".getBytes(), 2) }).array();
    LwM2mObject obj = (LwM2mObject) decoder.decode(content, ContentFormat.TLV, new LwM2mPath(10234), model);
    assertEquals(1, obj.getInstances().size());
    assertEquals(2, obj.getInstance(0).getResources().size());
}
Also used : LwM2mPath(org.eclipse.leshan.core.node.LwM2mPath) LwM2mObject(org.eclipse.leshan.core.node.LwM2mObject) Tlv(org.eclipse.leshan.tlv.Tlv) Test(org.junit.Test)

Example 4 with Tlv

use of org.eclipse.leshan.tlv.Tlv in project leshan by eclipse.

the class LwM2mNodeDecoderTest method tlv_empty_object.

@Test
public void tlv_empty_object() {
    byte[] content = TlvEncoder.encode(new Tlv[] {}).array();
    LwM2mObject obj = (LwM2mObject) decoder.decode(content, ContentFormat.TLV, new LwM2mPath(2), model);
    assertNotNull(obj);
    assertEquals(2, obj.getId());
    assertTrue(obj.getInstances().isEmpty());
}
Also used : LwM2mPath(org.eclipse.leshan.core.node.LwM2mPath) LwM2mObject(org.eclipse.leshan.core.node.LwM2mObject) Tlv(org.eclipse.leshan.tlv.Tlv) Test(org.junit.Test)

Example 5 with Tlv

use of org.eclipse.leshan.tlv.Tlv in project leshan by eclipse.

the class LwM2mNodeDecoderTest method tlv_multi_instance_object__missing_instance_tlv.

@Test(expected = CodecException.class)
public void tlv_multi_instance_object__missing_instance_tlv() throws CodecException {
    byte[] content = TlvEncoder.encode(new Tlv[] { new Tlv(TlvType.RESOURCE_VALUE, null, TlvEncoder.encodeInteger(11), 1), new Tlv(TlvType.RESOURCE_VALUE, null, TlvEncoder.encodeInteger(10), 2) }).array();
    decoder.decode(content, ContentFormat.TLV, new LwM2mPath(2), model);
}
Also used : LwM2mPath(org.eclipse.leshan.core.node.LwM2mPath) Tlv(org.eclipse.leshan.tlv.Tlv) Test(org.junit.Test)

Aggregations

Tlv (org.eclipse.leshan.tlv.Tlv)13 Test (org.junit.Test)11 LwM2mPath (org.eclipse.leshan.core.node.LwM2mPath)8 LwM2mObject (org.eclipse.leshan.core.node.LwM2mObject)4 Request (org.eclipse.californium.core.coap.Request)3 LwM2mObjectInstance (org.eclipse.leshan.core.node.LwM2mObjectInstance)3 CreateRequest (org.eclipse.leshan.core.request.CreateRequest)3 DeleteRequest (org.eclipse.leshan.core.request.DeleteRequest)3 DiscoverRequest (org.eclipse.leshan.core.request.DiscoverRequest)3 ExecuteRequest (org.eclipse.leshan.core.request.ExecuteRequest)3 ObserveRequest (org.eclipse.leshan.core.request.ObserveRequest)3 ReadRequest (org.eclipse.leshan.core.request.ReadRequest)3 WriteAttributesRequest (org.eclipse.leshan.core.request.WriteAttributesRequest)3 WriteRequest (org.eclipse.leshan.core.request.WriteRequest)3 Registration (org.eclipse.leshan.server.registration.Registration)3 CodecException (org.eclipse.leshan.core.node.codec.CodecException)2 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 ObjectModel (org.eclipse.leshan.core.model.ObjectModel)1 ResourceModel (org.eclipse.leshan.core.model.ResourceModel)1