This is an automated email from the ASF dual-hosted git repository.

jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git


The following commit(s) were added to refs/heads/master by this push:
     new 3d4acdf  REST refactoring.
3d4acdf is described below

commit 3d4acdf7b0498b4a0b369029cfbb90ae33764513
Author: JamesBognar <[email protected]>
AuthorDate: Thu Feb 18 09:34:39 2021 -0500

    REST refactoring.
---
 .../org/apache/juneau/assertions/Assertion.java    | 22 ++++++++++++++++++++++
 .../assertion/FluentResponseBodyAssertion.java     |  2 ++
 .../assertion/FluentResponseHeaderAssertion.java   |  2 ++
 .../FluentResponseStatusLineAssertion.java         |  2 ++
 .../assertions/FluentRequestHeaderAssertion.java   |  2 ++
 .../FluentRequestQueryParamAssertion.java          |  2 ++
 6 files changed, 32 insertions(+)

diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/Assertion.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/Assertion.java
index 46171f0..4488a18 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/Assertion.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/Assertion.java
@@ -15,6 +15,7 @@ package org.apache.juneau.assertions;
 import static org.apache.juneau.internal.StringUtils.*;
 
 import org.apache.juneau.*;
+import org.apache.juneau.cp.*;
 import org.apache.juneau.internal.*;
 
 /**
@@ -25,6 +26,7 @@ public class Assertion {
        String msg;
        Object[] msgArgs;
        boolean stdout, stderr;
+       Class<? extends RuntimeException> throwable;
 
        /**
         * Constructor used when this assertion is being created from within 
another assertion.
@@ -36,6 +38,7 @@ public class Assertion {
                        this.msgArgs = creator.msgArgs;
                        this.stdout = creator.stdout;
                        this.stderr = creator.stderr;
+                       this.throwable = creator.throwable;
                }
        }
 
@@ -79,6 +82,18 @@ public class Assertion {
        }
 
        /**
+        * If an error occurs, throw this exception when {@link #error(String, 
Object...)} is called.
+        *
+        * @param value The new value for this setting.
+        * @return This object (for method chaining).
+        */
+       @FluentSetter
+       public Assertion throwable(Class<? extends RuntimeException> value) {
+               this.throwable = value;
+               return this;
+       }
+
+       /**
         * Creates a new {@link BasicAssertionError}.
         *
         * @param msg The message.
@@ -105,6 +120,13 @@ public class Assertion {
                        System.out.println(msg);  // NOT DEBUG
                if (stderr)
                        System.err.println(msg);  // NOT DEBUG
+               if (throwable != null) {
+                       try {
+                               throw 
BeanFactory.create().build().addBean(Throwable.class, 
cause).addBean(String.class, msg).addBean(Object[].class, new 
Object[0]).createBean(throwable);
+                       } catch (ExecutableException e) {
+                               throw new RuntimeException(e);
+                       }
+               }
                return new BasicAssertionError(cause, msg);
        }
 
diff --git 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/assertion/FluentResponseBodyAssertion.java
 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/assertion/FluentResponseBodyAssertion.java
index e1f798d..b8b1937 100644
--- 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/assertion/FluentResponseBodyAssertion.java
+++ 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/assertion/FluentResponseBodyAssertion.java
@@ -15,6 +15,7 @@ package org.apache.juneau.rest.client.assertion;
 import java.util.function.*;
 
 import org.apache.juneau.assertions.*;
+import org.apache.juneau.http.exception.*;
 import org.apache.juneau.internal.*;
 import org.apache.juneau.rest.client.*;
 
@@ -37,6 +38,7 @@ public class FluentResponseBodyAssertion<R> extends 
FluentAssertion<R> {
        public FluentResponseBodyAssertion(ResponseBody value, R returns) {
                super(null, returns);
                this.value = value;
+               throwable(BadRequest.class);
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/assertion/FluentResponseHeaderAssertion.java
 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/assertion/FluentResponseHeaderAssertion.java
index 558d942..a5bb230 100644
--- 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/assertion/FluentResponseHeaderAssertion.java
+++ 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/assertion/FluentResponseHeaderAssertion.java
@@ -13,6 +13,7 @@
 package org.apache.juneau.rest.client.assertion;
 
 import org.apache.juneau.assertions.*;
+import org.apache.juneau.http.exception.*;
 import org.apache.juneau.internal.*;
 import org.apache.juneau.rest.client.*;
 
@@ -35,6 +36,7 @@ public class FluentResponseHeaderAssertion<R> extends 
FluentBaseAssertion<String
        public FluentResponseHeaderAssertion(ResponseHeader value, R returns) {
                super(null, value.getValue(), returns);
                this.value = value;
+               throwable(BadRequest.class);
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/assertion/FluentResponseStatusLineAssertion.java
 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/assertion/FluentResponseStatusLineAssertion.java
index a622f5a..1c1752e 100644
--- 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/assertion/FluentResponseStatusLineAssertion.java
+++ 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/assertion/FluentResponseStatusLineAssertion.java
@@ -14,6 +14,7 @@ package org.apache.juneau.rest.client.assertion;
 
 import org.apache.http.*;
 import org.apache.juneau.assertions.*;
+import org.apache.juneau.http.exception.*;
 
 /**
  * Used for fluent assertion calls against a response {@link StatusLine} 
object.
@@ -42,6 +43,7 @@ public class FluentResponseStatusLineAssertion<R> extends 
FluentAssertion<R> {
        public FluentResponseStatusLineAssertion(StatusLine statusLine, R 
returns) {
                super(null, returns);
                this.statusLine = statusLine;
+               throwable(BadRequest.class);
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentRequestHeaderAssertion.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentRequestHeaderAssertion.java
index 30087ce..f993e56 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentRequestHeaderAssertion.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentRequestHeaderAssertion.java
@@ -13,6 +13,7 @@
 package org.apache.juneau.rest.assertions;
 
 import org.apache.juneau.assertions.*;
+import org.apache.juneau.http.exception.*;
 import org.apache.juneau.internal.*;
 import org.apache.juneau.rest.*;
 
@@ -46,6 +47,7 @@ public class FluentRequestHeaderAssertion<R> extends 
FluentBaseAssertion<String,
        public FluentRequestHeaderAssertion(Assertion creator, RequestHeader 
value, R returns) {
                super(creator, value.getValue(), returns);
                this.value = value;
+               throwable(BadRequest.class);
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentRequestQueryParamAssertion.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentRequestQueryParamAssertion.java
index f5ee03a..57c1c17 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentRequestQueryParamAssertion.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentRequestQueryParamAssertion.java
@@ -13,6 +13,7 @@
 package org.apache.juneau.rest.assertions;
 
 import org.apache.juneau.assertions.*;
+import org.apache.juneau.http.exception.*;
 import org.apache.juneau.internal.*;
 import org.apache.juneau.rest.*;
 
@@ -34,6 +35,7 @@ public class FluentRequestQueryParamAssertion<R> extends 
FluentBaseAssertion<Str
         */
        public FluentRequestQueryParamAssertion(RequestQueryParam value, R 
returns) {
                this(null, value, returns);
+               throwable(BadRequest.class);
        }
 
        /**

Reply via email to