package com.canoo.cog.sonar;
/*
* #%L
* code-of-gotham
* %%
* Copyright (C) 2015 Canoo Engineering AG
* %%
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* #L%
*/
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertTrue;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.junit.Test;
import com.google.gson.JsonObject;
public class JsonObjectWrapperTest {
@Test
public void testCompareToSmaller() throws Exception {
JsonObject upperObject = new JsonObject();
upperObject.addProperty("lname", "com/canoo/volta");
JsonObject lowerObject = new JsonObject();
lowerObject.addProperty("lname", "com/canoo/volta/resources");
JsonObjectWrapper upperWrapper = new JsonObjectWrapper(upperObject);
JsonObjectWrapper lowerWrapper = new JsonObjectWrapper(lowerObject);
int result = upperWrapper.compareTo(lowerWrapper);
assertTrue(result < 0);
}
@Test
public void testCompareToEqual() throws Exception {
JsonObject upperObject = new JsonObject();
upperObject.addProperty("lname", "com/canoo/volta/resources");
JsonObject lowerObject = new JsonObject();
lowerObject.addProperty("lname", "com/canoo/volta/resources");
JsonObjectWrapper upperWrapper = new JsonObjectWrapper(upperObject);
JsonObjectWrapper lowerWrapper = new JsonObjectWrapper(lowerObject);
int result = upperWrapper.compareTo(lowerWrapper);
assertTrue(result == 0);
}
@Test
public void testCompareToBigger() throws Exception {
JsonObject upperObject = new JsonObject();
upperObject.addProperty("lname", "com/canoo/volta/resources");
JsonObject lowerObject = new JsonObject();
lowerObject.addProperty("lname", "com/canoo/volta");
JsonObjectWrapper upperWrapper = new JsonObjectWrapper(upperObject);
JsonObjectWrapper lowerWrapper = new JsonObjectWrapper(lowerObject);
int result = upperWrapper.compareTo(lowerWrapper);
assertTrue(result > 0);
}
@Test
public void testCompareToNull() throws Exception {
JsonObject lowerObject = new JsonObject();
lowerObject.addProperty("name", "com/canoo/volta");
JsonObjectWrapper upperWrapper = new JsonObjectWrapper(null);
JsonObjectWrapper lowerWrapper = new JsonObjectWrapper(lowerObject);
int result = upperWrapper.compareTo(lowerWrapper);
assertTrue(result < 0);
result = lowerWrapper.compareTo(upperWrapper);
assertTrue(result < 0);
}
@Test
public void testCompareToSort() throws Exception {
List<JsonObjectWrapper> elements = new ArrayList<>();
String four = "com/canoo/volta/services";
addElementToList(elements, four);
String two = "com/canoo/volta/resources";
addElementToList(elements, two);
String one = "com/canoo/volta";
addElementToList(elements, one);
String three = "com/canoo/volta/resources/util";
addElementToList(elements, three);
String five = "com/canoo/volta/services/dao";
addElementToList(elements, five);
Collections.sort(elements);
assertEquals(one, elements.get(0).object.get("lname").getAsString());
assertEquals(two, elements.get(1).object.get("lname").getAsString());
assertEquals(three, elements.get(2).object.get("lname").getAsString());
assertEquals(four, elements.get(3).object.get("lname").getAsString());
assertEquals(five, elements.get(4).object.get("lname").getAsString());
}
private void addElementToList(List<JsonObjectWrapper> elements, String name) {
JsonObject object = new JsonObject();
object.addProperty("lname", name);
elements.add(new JsonObjectWrapper(object));
}
}