View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.juneau;
18  
19  import static org.junit.jupiter.api.Assertions.*;
20  
21  import org.apache.juneau.annotation.*;
22  import org.apache.juneau.objecttools.*;
23  import org.apache.juneau.parser.*;
24  import org.apache.juneau.rest.client.remote.*;
25  import org.apache.juneau.serializer.*;
26  import org.apache.juneau.svl.*;
27  import org.junit.jupiter.api.*;
28  
29  /**
30   * Tests for fluent setters on BasicRuntimeException subclasses.
31   */
32  class BasicRuntimeException_Test extends TestBase {
33  
34  	@Test void a02_ClassMetaRuntimeException_fluentSetters() {
35  		var x = new ClassMetaRuntimeException("Original message");
36  
37  		// Test setMessage returns same instance for fluent chaining
38  		assertSame(x, x.setMessage("New message"));
39  		assertEquals("New message", x.getMessage());
40  
41  		// Test setMessage with args
42  		assertSame(x, x.setMessage("Message {0}", "arg1"));
43  		assertEquals("Message arg1", x.getMessage());
44  	}
45  
46  	@Test void a03_ConfigException_fluentSetters() {
47  		var x = new ConfigException("Original message");
48  
49  		// Test setMessage returns same instance for fluent chaining
50  		assertSame(x, x.setMessage("New message"));
51  		assertEquals("New message", x.getMessage());
52  
53  		// Test setMessage with args
54  		assertSame(x, x.setMessage("Message {0}", "arg1"));
55  		assertEquals("Message arg1", x.getMessage());
56  	}
57  
58  	@Test void a04_ContextRuntimeException_fluentSetters() {
59  		var x = new ContextRuntimeException("Original message");
60  
61  		// Test setMessage returns same instance for fluent chaining
62  		assertSame(x, x.setMessage("New message"));
63  		assertEquals("New message", x.getMessage());
64  
65  		// Test setMessage with args
66  		assertSame(x, x.setMessage("Message {0}", "arg1"));
67  		assertEquals("Message arg1", x.getMessage());
68  	}
69  
70  //	@Test void a05_ExecutableException_fluentSetters() {
71  //		ExecutableException x = new ExecutableException("Original message");
72  //
73  //		// Test setMessage returns same instance for fluent chaining
74  //		assertSame(x, x.setMessage("New message"));
75  //		assertEquals("New message", x.getMessage());
76  //
77  //		// Test setMessage with args
78  //		assertSame(x, x.setMessage("Message {0}", "arg1"));
79  //		assertEquals("Message arg1", x.getMessage());
80  //	}
81  
82  	@Test void a06_InvalidAnnotationException_fluentSetters() {
83  		var x = new InvalidAnnotationException("Original message");
84  
85  		// Test setMessage returns same instance for fluent chaining
86  		assertSame(x, x.setMessage("New message"));
87  		assertEquals("New message", x.getMessage());
88  
89  		// Test setMessage with args
90  		assertSame(x, x.setMessage("Message {0}", "arg1"));
91  		assertEquals("Message arg1", x.getMessage());
92  	}
93  
94  	@Test void a07_InvalidDataConversionException_fluentSetters() {
95  		var x = new InvalidDataConversionException(null, "Original message");
96  
97  		// Test setMessage returns same instance for fluent chaining
98  		assertSame(x, x.setMessage("New message"));
99  		assertEquals("New message", x.getMessage());
100 
101 		// Test setMessage with args
102 		assertSame(x, x.setMessage("Message {0}", "arg1"));
103 		assertEquals("Message arg1", x.getMessage());
104 	}
105 
106 	@Test void a08_ObjectRestException_fluentSetters() {
107 		var x = new ObjectRestException(404, "Original message");
108 
109 		// Test setMessage returns same instance for fluent chaining
110 		assertSame(x, x.setMessage("New message"));
111 		assertEquals("New message", x.getMessage());
112 
113 		// Test setMessage with args
114 		assertSame(x, x.setMessage("Message {0}", "arg1"));
115 		assertEquals("Message arg1", x.getMessage());
116 	}
117 
118 	@Test void a09_ParseException_fluentSetters() {
119 		var x = new ParseException("Original message");
120 
121 		// Test setMessage returns same instance for fluent chaining
122 		assertSame(x, x.setMessage("New message"));
123 		assertEquals("New message", x.getMessage());
124 
125 		// Test setMessage with args
126 		assertSame(x, x.setMessage("Message {0}", "arg1"));
127 		assertEquals("Message arg1", x.getMessage());
128 	}
129 
130 	@Test void a10_PatternException_fluentSetters() {
131 		var x = new PatternException("Original message");
132 
133 		// Test setMessage returns same instance for fluent chaining
134 		assertSame(x, x.setMessage("New message"));
135 		assertEquals("New message", x.getMessage());
136 
137 		// Test setMessage with args
138 		assertSame(x, x.setMessage("Message {0}", "arg1"));
139 		assertEquals("Message arg1", x.getMessage());
140 	}
141 
142 	@Test void a11_RemoteMetadataException_fluentSetters() {
143 		var x = new RemoteMetadataException((Throwable)null, "Original message");
144 
145 		// Test setMessage returns same instance for fluent chaining
146 		assertSame(x, x.setMessage("New message"));
147 		assertTrue(x.getMessage().contains("New message"));
148 
149 		// Test setMessage with args
150 		assertSame(x, x.setMessage("Message {0}", "arg1"));
151 		assertTrue(x.getMessage().contains("Message arg1"));
152 	}
153 
154 	@Test void a12_SerializeException_fluentSetters() {
155 		var x = new SerializeException("Original message");
156 
157 		// Test setMessage returns same instance for fluent chaining
158 		assertSame(x, x.setMessage("New message"));
159 		assertEquals("New message", x.getMessage());
160 
161 		// Test setMessage with args
162 		assertSame(x, x.setMessage("Message {0}", "arg1"));
163 		assertEquals("Message arg1", x.getMessage());
164 	}
165 
166 	@Test void a13_VarResolverException_fluentSetters() {
167 		var x = new VarResolverException("Original message");
168 
169 		// Test setMessage returns same instance for fluent chaining
170 		assertSame(x, x.setMessage("New message"));
171 		assertEquals("New message", x.getMessage());
172 
173 		// Test setMessage with args
174 		assertSame(x, x.setMessage("Message {0}", "arg1"));
175 		assertEquals("Message arg1", x.getMessage());
176 	}
177 }