package com.intuit.tank.harness.functions;
/*
* #%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.testng.annotations.Test;
import com.intuit.tank.harness.functions.FunctionHandler;
import com.intuit.tank.harness.test.data.Variables;
import com.intuit.tank.test.TestGroups;
import junit.framework.TestCase;
public class NumericFunctionsNGTest {
Variables variables = new Variables();
@Test(groups = TestGroups.FUNCTIONAL)
public void testIsValid() {
// Generic Tests
TestCase.assertFalse(FunctionHandler.validFunction("#function.numeric"));
TestCase.assertFalse(FunctionHandler.validFunction("#function.numeric.bogusFunction"));
// Random Positive Whole Number
TestCase.assertFalse(FunctionHandler.validFunction("#function.numeric.randomPositiveWhole"));
TestCase.assertTrue(FunctionHandler.validFunction("#function.numeric.randomPositiveWhole.5"));
// Random Negative Whole Number
TestCase.assertFalse(FunctionHandler.validFunction("#function.numeric.randomNegativeWhole"));
TestCase.assertTrue(FunctionHandler.validFunction("#function.numeric.randomNegativeWhole.5"));
// Random Positive Float Number
TestCase.assertFalse(FunctionHandler.validFunction("#function.numeric.randomPositiveFloat"));
TestCase.assertTrue(FunctionHandler.validFunction("#function.numeric.randomPositiveFloat.5.3"));
// Random Negative Float Number
TestCase.assertFalse(FunctionHandler.validFunction("#function.numeric.randomNegativeFloat"));
TestCase.assertTrue(FunctionHandler.validFunction("#function.numeric.randomNegativeFloat.5.4"));
}
@Test(groups = TestGroups.FUNCTIONAL)
public void testRandomPositiveWhole() {
String command = "#function.numeric.randomPositiveWhole.4";
String random = FunctionHandler.executeFunction(command, variables);
TestCase.assertNotNull(random);
TestCase.assertTrue(random.length() == 4);
}
@Test(groups = TestGroups.FUNCTIONAL)
public void testRandomNegativeWhole() {
String command = "#function.numeric.randomNegativeWhole.5";
String random = FunctionHandler.executeFunction(command, variables);
TestCase.assertNotNull(random);
TestCase.assertTrue(random.length() == 6);
}
@Test(groups = TestGroups.FUNCTIONAL)
public void testRandomPositiveFloat() {
String command = "#function.numeric.randomPositiveFloat.5.3";
String random = FunctionHandler.executeFunction(command, variables);
TestCase.assertNotNull(random);
TestCase.assertTrue(random.length() == 9);
}
@Test(groups = TestGroups.FUNCTIONAL)
public void testRandomNegativeFloat() {
String command = "#function.numeric.randomNegativeFloat.6.4";
String random = FunctionHandler.executeFunction(command, variables);
TestCase.assertNotNull(random);
TestCase.assertTrue(random.length() == 12);
}
@Test(groups = TestGroups.FUNCTIONAL)
public void testAdd() {
String command = "#function.numeric.add.4.8";
String sum = FunctionHandler.executeFunction(command, variables);
TestCase.assertNotNull(sum);
TestCase.assertEquals("12.0", sum);
}
@Test(groups = TestGroups.FUNCTIONAL)
public void testAdd3Params() {
String command = "#function.numeric.add.4.8.13";
String sum = FunctionHandler.executeFunction(command, variables);
TestCase.assertNotNull(sum);
TestCase.assertEquals("25.0", sum);
}
@Test(groups = TestGroups.FUNCTIONAL)
public void testSubtract() {
String command = "#function.numeric.subtract.9.3";
String result = FunctionHandler.executeFunction(command, variables);
TestCase.assertNotNull(result);
TestCase.assertEquals("6.0", result);
}
@Test(groups = TestGroups.FUNCTIONAL)
public void testSubtract3Params() {
String command = "#function.numeric.subtract.9.3.2";
String result = FunctionHandler.executeFunction(command, variables);
TestCase.assertNotNull(result);
TestCase.assertEquals("4.0", result);
}
}