Search in sources :

Example 26 with ReadResponse

use of org.eclipse.leshan.core.response.ReadResponse in project leshan by eclipse.

the class FailingTest method sync_send_without_acknowleged.

@Test
public void sync_send_without_acknowleged() throws Exception {
    // Register client
    LockStepLwM2mClient client = new LockStepLwM2mClient(helper.server.getUnsecuredAddress());
    client.sendLwM2mRequest(new RegisterRequest(helper.getCurrentEndpoint(), 60l, null, BindingMode.U, null, Link.parse("</1>,</2>,</3>".getBytes()), null));
    client.expectResponse().go();
    helper.waitForRegistration(1);
    // Send read
    Future<ReadResponse> future = Executors.newSingleThreadExecutor().submit(new Callable<ReadResponse>() {

        @Override
        public ReadResponse call() throws Exception {
            // send a request with 3 seconds timeout
            return helper.server.send(helper.getCurrentRegistration(), new ReadRequest(3), 3000);
        }
    });
    // Request should timedout in ~1s we don't send ACK
    ReadResponse response = future.get(1500, TimeUnit.MILLISECONDS);
    Assert.assertNull("we should timeout", response);
}
Also used : RegisterRequest(org.eclipse.leshan.core.request.RegisterRequest) ReadResponse(org.eclipse.leshan.core.response.ReadResponse) TimeoutException(org.eclipse.leshan.core.request.exception.TimeoutException) ReadRequest(org.eclipse.leshan.core.request.ReadRequest) Test(org.junit.Test)

Example 27 with ReadResponse

use of org.eclipse.leshan.core.response.ReadResponse in project leshan by eclipse.

the class ObserveTest method can_observe_instance.

@Test
public void can_observe_instance() throws InterruptedException {
    TestObservationListener listener = new TestObservationListener();
    helper.server.getObservationService().addListener(listener);
    // observe device timezone
    ObserveResponse observeResponse = helper.server.send(helper.getCurrentRegistration(), new ObserveRequest(3, 0));
    assertEquals(ResponseCode.CONTENT, observeResponse.getCode());
    assertNotNull(observeResponse.getCoapResponse());
    assertThat(observeResponse.getCoapResponse(), is(instanceOf(Response.class)));
    // an observation response should have been sent
    Observation observation = observeResponse.getObservation();
    assertEquals("/3/0", observation.getPath().toString());
    assertEquals(helper.getCurrentRegistration().getId(), observation.getRegistrationId());
    Set<Observation> observations = helper.server.getObservationService().getObservations(helper.getCurrentRegistration());
    assertTrue("We should have only on observation", observations.size() == 1);
    assertTrue("New observation is not there", observations.contains(observation));
    // write device timezone
    LwM2mResponse writeResponse = helper.server.send(helper.getCurrentRegistration(), new WriteRequest(3, 0, 15, "Europe/Paris"));
    // verify result
    listener.waitForNotification(2000);
    assertEquals(ResponseCode.CHANGED, writeResponse.getCode());
    assertTrue(listener.receivedNotify().get());
    assertTrue(listener.getResponse().getContent() instanceof LwM2mObjectInstance);
    assertNotNull(listener.getResponse().getCoapResponse());
    assertThat(listener.getResponse().getCoapResponse(), is(instanceOf(Response.class)));
    // try to read the object instance for comparing
    ReadResponse readResp = helper.server.send(helper.getCurrentRegistration(), new ReadRequest(3, 0));
    assertEquals(readResp.getContent(), listener.getResponse().getContent());
}
Also used : LwM2mObjectInstance(org.eclipse.leshan.core.node.LwM2mObjectInstance) ReadResponse(org.eclipse.leshan.core.response.ReadResponse) WriteRequest(org.eclipse.leshan.core.request.WriteRequest) Observation(org.eclipse.leshan.core.observation.Observation) ObserveRequest(org.eclipse.leshan.core.request.ObserveRequest) LwM2mResponse(org.eclipse.leshan.core.response.LwM2mResponse) ObserveResponse(org.eclipse.leshan.core.response.ObserveResponse) ReadRequest(org.eclipse.leshan.core.request.ReadRequest) Test(org.junit.Test)

Example 28 with ReadResponse

use of org.eclipse.leshan.core.response.ReadResponse in project leshan by eclipse.

the class QueueModeTest method correct_sending_when_awake.

@Test
public void correct_sending_when_awake() throws InterruptedException {
    ReadResponse response;
    // Check client is not registered
    queueModeHelper.assertClientNotRegisterered();
    // Start it and wait for registration
    queueModeHelper.client.start();
    queueModeHelper.waitForRegistration(1);
    // Check client is well registered and awake
    queueModeHelper.assertClientRegisterered();
    queueModeHelper.ensureClientAwake();
    // Send a response a check that it is received correctly
    response = queueModeHelper.server.send(queueModeHelper.getCurrentRegistration(), new ReadRequest(3, 0, 1));
    queueModeHelper.ensureReceivedRequest(response);
    // Wait for client awake time expiration (1% margin)
    queueModeHelper.waitForAwakeTime(awaketime * 1010);
    // Check that client is sleeping
    queueModeHelper.ensureClientSleeping();
    // Trigger update manually for waking up
    queueModeHelper.client.triggerRegistrationUpdate();
    queueModeHelper.waitForUpdate(1);
    // Check that client is awake
    queueModeHelper.ensureClientAwake();
    // Send a response a check that it is received correctly
    response = queueModeHelper.server.send(queueModeHelper.getCurrentRegistration(), new ReadRequest(3, 0, 1));
    queueModeHelper.ensureReceivedRequest(response);
}
Also used : ReadResponse(org.eclipse.leshan.core.response.ReadResponse) ReadRequest(org.eclipse.leshan.core.request.ReadRequest) Test(org.junit.Test)

Example 29 with ReadResponse

use of org.eclipse.leshan.core.response.ReadResponse in project leshan by eclipse.

the class ReadTest method can_read_object_instance.

@Test
public void can_read_object_instance() throws InterruptedException {
    // read device single instance
    ReadResponse response = helper.server.send(helper.getCurrentRegistration(), new ReadRequest(3, 0));
    // verify result
    assertEquals(CONTENT, response.getCode());
    assertNotNull(response.getCoapResponse());
    assertThat(response.getCoapResponse(), is(instanceOf(Response.class)));
    LwM2mObjectInstance instance = (LwM2mObjectInstance) response.getContent();
    assertEquals(0, instance.getId());
}
Also used : LwM2mObjectInstance(org.eclipse.leshan.core.node.LwM2mObjectInstance) ReadResponse(org.eclipse.leshan.core.response.ReadResponse) ReadRequest(org.eclipse.leshan.core.request.ReadRequest) Test(org.junit.Test)

Example 30 with ReadResponse

use of org.eclipse.leshan.core.response.ReadResponse in project leshan by eclipse.

the class ReadTest method can_read_resource.

@Test
public void can_read_resource() throws InterruptedException {
    // read device model number
    ReadResponse response = helper.server.send(helper.getCurrentRegistration(), new ReadRequest(3, 0, 1));
    // verify result
    assertEquals(CONTENT, response.getCode());
    assertNotNull(response.getCoapResponse());
    assertThat(response.getCoapResponse(), is(instanceOf(Response.class)));
    LwM2mResource resource = (LwM2mResource) response.getContent();
    assertEquals(1, resource.getId());
    assertEquals(IntegrationTestHelper.MODEL_NUMBER, resource.getValue());
}
Also used : ReadResponse(org.eclipse.leshan.core.response.ReadResponse) LwM2mResource(org.eclipse.leshan.core.node.LwM2mResource) ReadRequest(org.eclipse.leshan.core.request.ReadRequest) Test(org.junit.Test)

Aggregations

ReadResponse (org.eclipse.leshan.core.response.ReadResponse)37 ReadRequest (org.eclipse.leshan.core.request.ReadRequest)34 Test (org.junit.Test)25 WriteRequest (org.eclipse.leshan.core.request.WriteRequest)14 WriteResponse (org.eclipse.leshan.core.response.WriteResponse)14 LwM2mResource (org.eclipse.leshan.core.node.LwM2mResource)11 LwM2mObjectInstance (org.eclipse.leshan.core.node.LwM2mObjectInstance)7 DiscoverResponse (org.eclipse.leshan.core.response.DiscoverResponse)5 ObserveResponse (org.eclipse.leshan.core.response.ObserveResponse)5 RegisterRequest (org.eclipse.leshan.core.request.RegisterRequest)4 TimeoutException (org.eclipse.leshan.core.request.exception.TimeoutException)4 CreateResponse (org.eclipse.leshan.core.response.CreateResponse)4 LwM2mObject (org.eclipse.leshan.core.node.LwM2mObject)3 ObjectLink (org.eclipse.leshan.core.node.ObjectLink)3 ObserveRequest (org.eclipse.leshan.core.request.ObserveRequest)3 JsonObject (com.eclipsesource.json.JsonObject)2 ArrayList (java.util.ArrayList)2 LwM2mNode (org.eclipse.leshan.core.node.LwM2mNode)2 LwM2mSingleResource (org.eclipse.leshan.core.node.LwM2mSingleResource)2 Observation (org.eclipse.leshan.core.observation.Observation)2