Open topic with navigation

# Verification code samples (Java SDK)

In this topic:

## Basic verification example

The following example uses the Verify class to verify navigation to a page on a website.

     @Test
    public void verify_linkNavigatesToLaptopsPage() throws Exception {
    	//Launch the Chrome browser.
    	Browser browser = BrowserFactory.launch(BrowserType.CHROME);

    	try{
    		//Navigate to the New Tours website.
    		browser.navigate("http://www.advantageonlineshopping.com/#/");

    		//Click the "LAPTOPS" link
    		browser.describe(Link.class, new LinkDescription.Builder()
    			.tagName("SPAN").innerText("LAPTOPS").build()).click();

    		//Wait for the browser to complete the navigation.
    		browser.sync();

    		//Verify that the correct Web page opens.
    		Verify.areEqual("http://www.advantageonlineshopping.com/#/category/Laptops/1", browser.getURL(), "verify_linkNavigatesToLaptopsPage", "Verify that the browser's URL is as expected.");
    	}
    	catch(Error e){
    		Reporter.reportEvent("verify_linkNavigatesToLaptopsPage","Failed during test",Status.Failed, e);
    		throw e;
    	}
    	finally{
    		browser.close();
    	}
    }

Back to top

## Custom verification example

The following example shows how to use a custom verification method that verifies a sum of numbers. In this case, it is used to sum the price of two items in a shopping cart in a retail application.

The method receives three parameters: the two numbers to sum and the total.

The method is called in the test script, and the arguments passed are fetched from the application using LeanFT API.

    	// The example below shows usage of verification extensibility - implementing custom verifications
    	@Test
    	public void testTotalPrice() throws ReportException {
    		long price1;
    		long price2;
    		long totalPrice;
    		// .
    		// .
    		// This is where you add code to: add two items to the shopping cart, find their price,
    		// and update each item's price in the price1 and price2 variables.
    		price1 = 100;
    		price2 = 200;
    		totalPrice = 300;

    		// Then go to the check-out page, find the total price, add update the totalPrice variable with this value.
    		// .
    		// .
    		// The following code calls the custom verification method verifyTotalSumOfNumbers.
    		// The verification name and description are set and then passed as arguments along with the price arguments.
    		String name = "Verify Total Price";
    		String verificationDescription = "Verify that the total purchase price is indeed a sum of the items in the cart";
    		verifyTotalSumOfNumbers(price1, price2, totalPrice, name, verificationDescription);

    		// .
    		// .
    		// Continue test logic
    		// .
    		// .

    	}

    	// This is the implementation of the custom verification method
    	protected void verifyTotalSumOfNumbers(long num1, long num2,
    						long total, String name,
    						String verificationDescription) throws ReportException{

    		// Create a VerificationData object and set its name, description and operation.
    		VerificationData verificationData = new VerificationData();
    		verificationData.name = name;
    		verificationData.description = verificationDescription;
    		verificationData.operationName = "totalSumOfNumbers";
    		// Operation name helps better categorize the check made.
    		// For example, for the same verification name ("Verify Total Price") you could also have
    		// the “checkCurrency” operation (in another VerificationData object).

    		// Create the verification parameters, set their label and values.
    		VerificationParameter verificationParameter1 = new VerificationParameter("First Number", num1);
    		VerificationParameter verificationParameter2 = new VerificationParameter("Second Number", num2);
    		VerificationParameter verificationParameter3 = new VerificationParameter("Actual Sum", total);

    		// Add the verification parameters to the parameters list of the verificationData object.
    		verificationData.verificationParameters.add(verificationParameter1);
    		verificationData.verificationParameters.add(verificationParameter2);
    		verificationData.verificationParameters.add(verificationParameter3);

    		// Call a custom comparison method
    		boolean sumMatches = (num1+num2 == total);

    		// Check whether the sums match. If they do, return reportVerification with a passes status.
    		// If not, return it with a failed status. The status is displayed in the test report.
    		if (sumMatches){
    			Reporter.reportVerification(Status.Passed, verificationData);
    		}
    		else{
    			Reporter.reportVerification(Status.Failed, verificationData);
    		}
    	}

    }

Back to top

See also:

- Lean Functional Testing (LeanFT) Java SDK Reference
- Verifications