1 package org.djunits.value;
2
3 import static org.junit.jupiter.api.Assertions.assertEquals;
4 import static org.junit.jupiter.api.Assertions.assertTrue;
5
6 import org.junit.jupiter.api.Test;
7
8
9
10
11
12
13
14
15
16
17
18
19 public class ValueExceptionTest
20 {
21
22
23
24 @Test
25 public final void valueExceptionTest()
26 {
27 String message = "MessageString";
28 Exception e = new ValueRuntimeException(message);
29 assertTrue(null != e, "Exception should not be null");
30 assertEquals(message, e.getMessage(), "message should be our message");
31 assertEquals(null, e.getCause(), "cause should be null");
32 e = new ValueRuntimeException();
33 assertTrue(null != e, "Exception should not be null");
34 assertEquals(null, e.getCause(), "cause should be null");
35 String causeString = "CauseString";
36 Throwable cause = new Throwable(causeString);
37 e = new ValueRuntimeException(cause);
38 assertTrue(null != e, "Exception should not be null");
39 assertEquals(cause, e.getCause(), "cause should not be our cause");
40 assertEquals(causeString, e.getCause().getMessage(), "cause description should be our cause string");
41 e = new ValueRuntimeException(message, cause);
42 assertTrue(null != e, "Exception should not be null");
43 assertEquals(message, e.getMessage(), "message should be our message");
44 assertEquals(cause, e.getCause(), "cause should not be our cause");
45 assertEquals(causeString, e.getCause().getMessage(), "cause description should be our cause string");
46 for (boolean enableSuppression : new boolean[] {true, false})
47 {
48 for (boolean writableStackTrace : new boolean[] {true, false})
49 {
50 e = new ValueRuntimeException(message, cause, enableSuppression, writableStackTrace);
51 assertTrue(null != e, "Exception should not be null");
52 assertEquals(message, e.getMessage(), "message should be our message");
53 assertEquals(cause, e.getCause(), "cause should not be our cause");
54 assertEquals(causeString, e.getCause().getMessage(), "cause description should be our cause string");
55
56 StackTraceElement[] stackTrace = new StackTraceElement[1];
57 stackTrace[0] = new StackTraceElement("a", "b", "c", 1234);
58 try
59 {
60 e.setStackTrace(stackTrace);
61 }
62 catch (Exception e1)
63 {
64 assertTrue(writableStackTrace, "Stack trace should be writable");
65 continue;
66 }
67
68 StackTraceElement[] retrievedStackTrace = e.getStackTrace();
69 if (retrievedStackTrace.length > 0)
70 {
71 assertTrue(writableStackTrace, "stack trace should be writable");
72 }
73 }
74 }
75 }
76 }