package com.intuit.tank.http.json;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import com.intuit.tank.test.TestGroups;
/*
* #%L
* Intuit Tank Agent (apiharness)
* %%
* Copyright (C) 2011 - 2015 Intuit Inc.
* %%
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
* #L%
*/
import org.junit.Assert;
public class JsonRequestTest {
/**
*
*/
@Test(groups = TestGroups.FUNCTIONAL)
public void testCreate() {
JsonRequest req = new JsonRequest(null, null);
req.setKey("/address/home", "123 street");
String body = req.getBody();
Assert.assertEquals("{\"address\":{\"home\":\"123 street\"}}", body);
req.setKey("/address/employeeId", "123");
body = req.getBody();
Assert.assertEquals("{\"address\":{\"employeeId\":123,\"home\":\"123 street\"}}", body);
}
@DataProvider(name = "jsonRaw")
private Object[][] jsonData() {
return new Object[][] { {
"{\"ProcessBeaconRequest\":[{\"TransactionID\":\"17599c19%2D7ec8%2D4219%2D81ce%2Df3b5e9357868\",\"BeaconRequestData\":{"
+
"\"Screen\":\"DialogWelcome\",\"CustomerType\":2,\"TaxSessionLocation\":\"pprftta11001:65533\",\"ClientProfileData\":{\"renderTime\":188,"
+
"\"uniqueDialogID\":\"DialogWelcome\",\"requestTime\":5703,\"customerUsageTime\":null},\"Tab\":\"Home\",\"FederalRefundAmount\":\"$0\","
+
"\"EventType\":\"PageEntry\",\"SubTab\":\"Program%20Options\",\"ProductId\":16,\"DialogTitle\":null}}]}", // expected
// result
new String[] { "/ProcessBeaconRequest/[0]/BeaconRequestData/ClientProfileData/customerUsageTime",
"/ProcessBeaconRequest/[0]/BeaconRequestData/ClientProfileData/renderTime",
"/ProcessBeaconRequest/[0]/BeaconRequestData/ClientProfileData/requestTime",
"/ProcessBeaconRequest/[0]/BeaconRequestData/ClientProfileData/uniqueDialogID",
"/ProcessBeaconRequest/[0]/BeaconRequestData/CustomerType",
"/ProcessBeaconRequest/[0]/BeaconRequestData/DialogTitle",
"/ProcessBeaconRequest/[0]/BeaconRequestData/EventType",
"/ProcessBeaconRequest/[0]/BeaconRequestData/FederalRefundAmount",
"/ProcessBeaconRequest/[0]/BeaconRequestData/ProductId",
"/ProcessBeaconRequest/[0]/BeaconRequestData/Screen",
"/ProcessBeaconRequest/[0]/BeaconRequestData/SubTab",
"/ProcessBeaconRequest/[0]/BeaconRequestData/Tab",
"/ProcessBeaconRequest/[0]/BeaconRequestData/TaxSessionLocation",
"/ProcessBeaconRequest/[0]/TransactionID" }, // validKeys
new String[] { "null",
"188",
"5703",
"DialogWelcome",
"2",
"",
"PageEntry",
"$0",
"16",
"DialogWelcome",
"Program%20Options",
"Home",
"pprftta11001:65533",
"17599c19%2D7ec8%2D4219%2D81ce%2Df3b5e9357868" } } // validValues
};
}
@DataProvider(name = "jsonRaw")
private Object[][] jsonNumbers() {
return new Object[][] { {
"{\"}", // expected
// result
new String[] { "/ProcessBeaconRequest/[0]/BeaconRequestData/ClientProfileData/customerUsageTime",
"/ProcessBeaconRequest/[0]/BeaconRequestData/ClientProfileData/renderTime",
"/ProcessBeaconRequest/[0]/BeaconRequestData/ClientProfileData/requestTime",
"/ProcessBeaconRequest/[0]/BeaconRequestData/ClientProfileData/uniqueDialogID",
"/ProcessBeaconRequest/[0]/BeaconRequestData/CustomerType",
"/ProcessBeaconRequest/[0]/BeaconRequestData/DialogTitle",
"/ProcessBeaconRequest/[0]/BeaconRequestData/EventType",
"/ProcessBeaconRequest/[0]/BeaconRequestData/FederalRefundAmount",
"/ProcessBeaconRequest/[0]/BeaconRequestData/ProductId",
"/ProcessBeaconRequest/[0]/BeaconRequestData/Screen",
"/ProcessBeaconRequest/[0]/BeaconRequestData/SubTab",
"/ProcessBeaconRequest/[0]/BeaconRequestData/Tab",
"/ProcessBeaconRequest/[0]/BeaconRequestData/TaxSessionLocation",
"/ProcessBeaconRequest/[0]/TransactionID" }, // validKeys
new String[] { "null",
"188",
"5703",
"DialogWelcome",
"2",
"",
"PageEntry",
"$0",
"16",
"DialogWelcome",
"Program%20Options",
"Home",
"pprftta11001:65533",
"17599c19%2D7ec8%2D4219%2D81ce%2Df3b5e9357868" } } // validValues
};
}
@Test(groups = TestGroups.FUNCTIONAL, dataProvider = "jsonRaw")
public void testJSONParse(String result, String[] keys, String[] values) throws Exception {
JsonRequest req = new JsonRequest(null, null);
for (int i = 0; i < keys.length; i++) {
req.setKey(keys[i], values[i]);
}
String body = req.getBody();
// System.out.println(body);
Assert.assertNotNull(body);
Assert.assertEquals(result, body);
}
@Test(groups = TestGroups.FUNCTIONAL)
public void testNumbers() throws Exception {
JsonRequest req = new JsonRequest(null, null);
req.setKey("number", "123232323232323232323");
String body = req.getBody();
System.out.println(body);
Assert.assertNotNull(body);
// Assert.assertEquals(", body);
}
}