### Question:
AppException extends RuntimeException { public AppError getError() { return this.error; } AppException(int status, String reason, String message);  AppException(int status, String reason, String message, String[] errors);  AppException(int status, String reason, String message, String debuggingInfo);  AppException(int status, String reason, String message, String[] errors, String debuggingInfo);  AppException(int status, String reason, String message, Exception originalException);  AppException(int status, String reason, String message, String[] errors, Exception originalException);  AppException(int status, String reason, String message, String debuggingInfo, Exception originalException);  AppException(int status, String reason, String message, String debuggingInfo, Exception originalException, String[] errors); AppError getError(); static AppException createForbidden(String debuggingInfo); static AppException createUnauthorized(String debuggingInfo); static AppException createForbidden(); static AppException legalTagAlreadyExistsError(String name); static AppException legalTagDoesNotExistError(String name); static AppException countryCodeLoadingError();  }### Answer:
@Test public void constructorTest() { AppException exception = new AppException(200, "unknown error", "this error occurred:"); assertNotNull(exception); AppError error = exception.getError(); assertNotNull(error); assertEquals(200, error.getCode()); assertEquals("unknown error", error.getReason()); assertEquals("this error occurred:", error.getMessage()); }