/*******************************************************************************
* Copyright (c) 2016 Sierra Wireless and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* and Eclipse Distribution License v1.0 which accompany this distribution.
*
* The Eclipse Public License is available at
* http://www.eclipse.org/legal/epl-v10.html
* and the Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.html.
*
* Contributors:
* Sierra Wireless - initial API and implementation
*******************************************************************************/
package org.eclipse.leshan.server.cluster.serialization;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import org.eclipse.leshan.ObserveSpec;
import org.eclipse.leshan.core.node.LwM2mResource;
import org.eclipse.leshan.core.node.LwM2mSingleResource;
import org.eclipse.leshan.core.request.ContentFormat;
import org.eclipse.leshan.core.request.CreateRequest;
import org.eclipse.leshan.core.request.DeleteRequest;
import org.eclipse.leshan.core.request.DiscoverRequest;
import org.eclipse.leshan.core.request.DownlinkRequest;
import org.eclipse.leshan.core.request.ExecuteRequest;
import org.eclipse.leshan.core.request.ObserveRequest;
import org.eclipse.leshan.core.request.ReadRequest;
import org.eclipse.leshan.core.request.WriteAttributesRequest;
import org.eclipse.leshan.core.request.WriteRequest;
import org.eclipse.leshan.core.request.WriteRequest.Mode;
import org.junit.Test;
import com.eclipsesource.json.JsonObject;
public class DownlinkRequestSerDesTest {
@Test
public void ser_and_des_read_request() throws Exception {
ser_and_des_are_equals(new ReadRequest(ContentFormat.TLV, 3, 0, 1));
}
@Test
public void ser_and_des_execute_request() throws Exception {
ser_and_des_are_equals(new ExecuteRequest(3, 0, 1, "params"));
}
@Test
public void ser_and_des_delete_request() throws Exception {
ser_and_des_are_equals(new DeleteRequest(3, 0));
}
@Test
public void ser_and_des_discover_request() throws Exception {
ser_and_des_are_equals(new DiscoverRequest(3, 0, 1));
}
@Test
public void ser_and_des_observe_request() throws Exception {
ser_and_des_are_equals(new ObserveRequest(ContentFormat.TLV, 3, 0, 1));
}
@Test
public void ser_and_des_write_request() throws Exception {
ser_and_des_are_equals(new WriteRequest(Mode.REPLACE, ContentFormat.TLV, 3, 0,
new LwM2mResource[] { LwM2mSingleResource.newStringResource(1, "value") }));
}
@Test
public void ser_and_des_create_request() throws Exception {
ser_and_des_are_equals(new CreateRequest(ContentFormat.TLV, 3,
new LwM2mResource[] { LwM2mSingleResource.newStringResource(1, "value") }));
}
@Test
public void ser_and_des_write_attributes_request() throws Exception {
ObserveSpec os = new ObserveSpec.Builder().minPeriod(10).maxPeriod(60).build();
ser_and_des_are_equals(new WriteAttributesRequest(3, 0, 1, os));
}
public void ser_and_des_are_equals(DownlinkRequest<?> request) throws Exception {
JsonObject ser = DownlinkRequestSerDes.jSerialize(request);
DownlinkRequest<?> r2 = DownlinkRequestSerDes.deserialize(ser);
assertEquals(request, r2);
}
@Test
public void ser_and_des_read_request_then_compare_to_observe_request() throws Exception {
ReadRequest readRequest = new ReadRequest(ContentFormat.TLV, 3, 0, 1);
JsonObject ser = DownlinkRequestSerDes.jSerialize(readRequest);
DownlinkRequest<?> r2 = DownlinkRequestSerDes.deserialize(ser);
assertNotEquals(r2, new ObserveRequest(ContentFormat.TLV, 3, 0, 1));
}
}