/**
* This software is licensed to you under the Apache License, Version 2.0 (the
* "Apache License").
*
* LinkedIn's contributions are made under the Apache License. If you contribute
* to the Software, the contributions will be deemed to have been made under the
* Apache License, unless you expressly indicate otherwise. Please do not make any
* contributions that would be inconsistent with the Apache License.
*
* You may obtain a copy of the Apache License at http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, this software
* distributed under the Apache License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the Apache
* License for the specific language governing permissions and limitations for the
* software governed under the Apache License.
*
* © 2012 LinkedIn Corp. All Rights Reserved.
*/
package com.senseidb.test.client;
import org.json.JSONObject;
import org.junit.Assert;
import org.junit.Test;
import com.senseidb.search.client.json.JsonDeserializer;
import com.senseidb.search.client.json.JsonSerializer;
import com.senseidb.search.client.req.FacetInit;
import com.senseidb.search.client.req.FacetType;
import com.senseidb.search.client.req.SenseiClientRequest;
import com.senseidb.search.client.res.SenseiResult;
public class JsonSerializationTest extends Assert {
@Test
public void test1Deserialization() throws Exception {
String response = new String(IOUtils.getBytes(getClass().getClassLoader().getResourceAsStream("json/senseiresult.json")), "UTF-8");
System.out.println(new JSONObject(response).toString(2));
SenseiResult senseiResult = JsonDeserializer.deserialize(SenseiResult.class, new JSONObject(response));
assertEquals(senseiResult.getFacets().size(), 2);
System.out.println(senseiResult);
}
@Test
public void test2Serialization() throws Exception {
System.out.println("Running test2Serialization...");
SenseiClientRequest senseiRequest = Examples.basicWithSelections(SenseiClientRequest.builder()).build();
String strRepresentation = JsonSerializer.serialize(senseiRequest).toString();
System.out.println("strRepresentation: " + strRepresentation);
SenseiClientRequest senseiRequest2 = JsonDeserializer.deserialize(SenseiClientRequest.class, new JSONObject(strRepresentation));
assertEquals(senseiRequest2.getFacets().size(), 1);
System.out.println("senseiRequest2: " + senseiRequest2.toString());
String strRepresentation2 = JsonSerializer.serialize(senseiRequest2).toString();
System.out.println("strRepresentation2: " + strRepresentation2);
assertEquals(strRepresentation2, strRepresentation);
}
//@Test
public void test3DeserializeFacetInit() throws Exception {
SenseiClientRequest senseiRequest = SenseiClientRequest.builder()
.addFacetInit("name", "parameter", FacetInit.build(FacetType.type_float, "val1", "val2")).build();
String strRepresentation = JsonSerializer.serialize(senseiRequest).toString();
SenseiClientRequest senseiRequest2 = JsonDeserializer.deserialize(SenseiClientRequest.class, new JSONObject(strRepresentation));
String strRepresentation2 = JsonSerializer.serialize(senseiRequest2).toString();
System.out.println(strRepresentation2);
assertEquals(strRepresentation2, strRepresentation);
}
//@Test
public void test4FiltersSerialization() throws Exception {
SenseiClientRequest senseiRequest = Examples.filters(SenseiClientRequest.builder()).build();
JSONObject json = (JSONObject) JsonSerializer.serialize(senseiRequest);
System.out.println(json.toString(3));
}
//@Test
public void test5QueriesSerialization() throws Exception {
SenseiClientRequest senseiRequest = Examples.queries(SenseiClientRequest.builder()).build();
JSONObject json = (JSONObject) JsonSerializer.serialize(senseiRequest);
System.out.println(json.toString(3));
}
}