/*
* Copyright 2015 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*
* 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.
*/
package org.dashbuilder.dataset.json;
import java.util.Date;
import org.dashbuilder.dataset.DataSetFactory;
import org.dashbuilder.dataset.DataSetLookup;
import org.dashbuilder.dataset.group.AggregateFunctionType;
import org.dashbuilder.dataset.group.DateIntervalType;
import org.dashbuilder.dataset.sort.SortOrder;
import org.dashbuilder.json.JsonBoolean;
import org.dashbuilder.json.JsonNull;
import org.dashbuilder.json.JsonNumber;
import org.dashbuilder.json.JsonObject;
import org.dashbuilder.json.JsonString;
import org.dashbuilder.json.JsonValue;
import org.junit.Test;
import static org.junit.Assert.*;
import static org.dashbuilder.dataset.filter.FilterFactory.*;
public class DataSetLookupJsonTest {
DataSetLookupJSONMarshaller jsonMarshaller = DataSetLookupJSONMarshaller.get();
@Test
public void testDataSetLookupMarshalling() {
DataSetLookup original = DataSetFactory.newDataSetLookupBuilder()
.dataset("mydataset")
.filter(OR(notEqualsTo("department", "IT"), greaterOrEqualsTo("amount", 100d)))
.filter("department", notEqualsTo("IT"))
.filter("amount", between(100d, 200d))
.filter("date", greaterThan(jsonMarshaller.parseDate("2018-01-01 00:00:00")))
.filter("country", isNull())
.group("department").select("Services")
.group("date", "year").dynamic(DateIntervalType.YEAR, true)
.column("date")
.column("amount", AggregateFunctionType.SUM, "total")
.sort("date", SortOrder.ASCENDING)
.buildLookup();
JsonObject _jsonObj = jsonMarshaller.toJson(original);
assertNotNull(_jsonObj.toString());
DataSetLookup unmarshalled = jsonMarshaller.fromJson(_jsonObj);
assertEquals(unmarshalled, original);
}
@Test
public void testDateFormat() {
String d1 = "2020-11-10 23:59:59";
Date d2 = jsonMarshaller.parseDate(d1);
String d3 = jsonMarshaller.formatDate(d2);
assertEquals(d1, d3);
d1 = "2020-01-01 00:00:00";
d2 = jsonMarshaller.parseDate(d1);
d3 = jsonMarshaller.formatDate(d2);
assertEquals(d1, d3);
}
@Test
public void test_DASHBUILDE_83() {
JsonValue jsonNull = jsonMarshaller.formatValue(null);
JsonValue jsonBoolean = jsonMarshaller.formatValue(true);
JsonValue jsonNumber = jsonMarshaller.formatValue(100d);
JsonValue jsonDate = jsonMarshaller.formatValue(new Date());
JsonValue jsonString = jsonMarshaller.formatValue("string");
assertTrue(jsonNull instanceof JsonNull);
assertTrue(jsonBoolean instanceof JsonBoolean);
assertTrue(jsonNumber instanceof JsonNumber);
assertTrue(jsonDate instanceof JsonString);
assertTrue(jsonString instanceof JsonString);
}
}