package com.aventstack.extentreports.api;
import java.lang.reflect.Method;
import org.testng.Assert;
import org.testng.annotations.Test;
import com.aventstack.extentreports.Base;
import com.aventstack.extentreports.ExtentTest;
import com.aventstack.extentreports.Status;
public class NodesStatusHierarchyTests extends Base {
@Test
public void verifyPassHasHigherPriorityThanInfoLevelsShallow(Method method) {
ExtentTest parent = extent.createTest(method.getName());
ExtentTest child = parent.createNode("Child");
child.info("info");
child.pass("pass");
Assert.assertEquals(child.getModel().getLevel(), 1);
Assert.assertEquals(parent.getStatus(), Status.PASS);
Assert.assertEquals(child.getStatus(), Status.PASS);
}
@Test
public void verifyPassHasHigherPriorityThanInfoLevelsDeep(Method method) {
ExtentTest parent = extent.createTest(method.getName());
ExtentTest child = parent.createNode("Child");
ExtentTest grandchild = child.createNode("GrandChild");
grandchild.info("info");
grandchild.pass("pass");
Assert.assertEquals(child.getModel().getLevel(), 1);
Assert.assertEquals(grandchild.getModel().getLevel(), 2);
Assert.assertEquals(parent.getStatus(), Status.PASS);
Assert.assertEquals(child.getStatus(), Status.PASS);
Assert.assertEquals(grandchild.getStatus(), Status.PASS);
}
@Test
public void verifySkipHasHigherPriorityThanPassLevelsShallow(Method method) {
ExtentTest parent = extent.createTest(method.getName());
ExtentTest child = parent.createNode("Child");
child.pass("pass");
child.skip("skip");
Assert.assertEquals(child.getModel().getLevel(), 1);
Assert.assertEquals(parent.getStatus(), Status.SKIP);
Assert.assertEquals(child.getStatus(), Status.SKIP);
}
@Test
public void verifySkipHasHigherPriorityThanPassLevelsDeep(Method method) {
ExtentTest parent = extent.createTest(method.getName());
ExtentTest child = parent.createNode("Child");
ExtentTest grandchild = child.createNode("GrandChild");
grandchild.pass("pass");
grandchild.skip("skip");
Assert.assertEquals(child.getModel().getLevel(), 1);
Assert.assertEquals(grandchild.getModel().getLevel(), 2);
Assert.assertEquals(parent.getStatus(), Status.SKIP);
Assert.assertEquals(child.getStatus(), Status.SKIP);
Assert.assertEquals(grandchild.getStatus(), Status.SKIP);
}
@Test
public void verifyWarningHasHigherPriorityThanSkipLevelsShallow(Method method) {
ExtentTest parent = extent.createTest(method.getName());
ExtentTest child = parent.createNode("Child");
child.skip("skip");
child.warning("warning");
Assert.assertEquals(child.getModel().getLevel(), 1);
Assert.assertEquals(parent.getStatus(), Status.WARNING);
Assert.assertEquals(child.getStatus(), Status.WARNING);
}
@Test
public void verifyWarningHasHigherPriorityThanSkipLevelsDeep(Method method) {
ExtentTest parent = extent.createTest(method.getName());
ExtentTest child = parent.createNode("Child");
ExtentTest grandchild = child.createNode("GrandChild");
grandchild.skip("skip");
grandchild.warning("warning");
Assert.assertEquals(child.getModel().getLevel(), 1);
Assert.assertEquals(grandchild.getModel().getLevel(), 2);
Assert.assertEquals(parent.getStatus(), Status.WARNING);
Assert.assertEquals(child.getStatus(), Status.WARNING);
Assert.assertEquals(grandchild.getStatus(), Status.WARNING);
}
@Test
public void verifyErrorHasHigherPriorityThanWarningLevelsShallow(Method method) {
ExtentTest parent = extent.createTest(method.getName());
ExtentTest child = parent.createNode("Child");
child.warning("warning");
child.error("error");
Assert.assertEquals(child.getModel().getLevel(), 1);
Assert.assertEquals(parent.getStatus(), Status.ERROR);
Assert.assertEquals(child.getStatus(), Status.ERROR);
}
@Test
public void verifyErrorHasHigherPriorityThanWarningLevelsDeep(Method method) {
ExtentTest parent = extent.createTest(method.getName());
ExtentTest child = parent.createNode("Child");
ExtentTest grandchild = child.createNode("GrandChild");
grandchild.warning("warning");
grandchild.error("error");
Assert.assertEquals(child.getModel().getLevel(), 1);
Assert.assertEquals(grandchild.getModel().getLevel(), 2);
Assert.assertEquals(parent.getStatus(), Status.ERROR);
Assert.assertEquals(child.getStatus(), Status.ERROR);
Assert.assertEquals(grandchild.getStatus(), Status.ERROR);
}
@Test
public void verifFailHasHigherPriorityThanErrorLevelsShallow(Method method) {
ExtentTest parent = extent.createTest(method.getName());
ExtentTest child = parent.createNode("Child");
child.error("error");
child.fail("fail");
Assert.assertEquals(child.getModel().getLevel(), 1);
Assert.assertEquals(parent.getStatus(), Status.FAIL);
Assert.assertEquals(child.getStatus(), Status.FAIL);
}
@Test
public void verifFailHasHigherPriorityThanErrorLevelsDeep(Method method) {
ExtentTest parent = extent.createTest(method.getName());
ExtentTest child = parent.createNode("Child");
ExtentTest grandchild = child.createNode("GrandChild");
grandchild.error("error");
grandchild.fail("fail");
Assert.assertEquals(child.getModel().getLevel(), 1);
Assert.assertEquals(grandchild.getModel().getLevel(), 2);
Assert.assertEquals(parent.getStatus(), Status.FAIL);
Assert.assertEquals(child.getStatus(), Status.FAIL);
Assert.assertEquals(grandchild.getStatus(), Status.FAIL);
}
@Test
public void verifFatalHasHigherPriorityThanFailLevelsShallow(Method method) {
ExtentTest parent = extent.createTest(method.getName());
ExtentTest child = parent.createNode("Child");
child.fail("fail");
child.fatal("fatal");
Assert.assertEquals(child.getModel().getLevel(), 1);
Assert.assertEquals(parent.getStatus(), Status.FATAL);
Assert.assertEquals(child.getStatus(), Status.FATAL);
}
@Test
public void verifFatalHasHigherPriorityThanFailLevelsDeep(Method method) {
ExtentTest parent = extent.createTest(method.getName());
ExtentTest child = parent.createNode("Child");
ExtentTest grandchild = child.createNode("GrandChild");
grandchild.fail("fail");
grandchild.fatal("fatal");
Assert.assertEquals(child.getModel().getLevel(), 1);
Assert.assertEquals(grandchild.getModel().getLevel(), 2);
Assert.assertEquals(parent.getStatus(), Status.FATAL);
Assert.assertEquals(child.getStatus(), Status.FATAL);
Assert.assertEquals(grandchild.getStatus(), Status.FATAL);
}
}