File: FailureEvent.java

package info (click to toggle)
carrotsearch-randomizedtesting 2.7.9-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 2,932 kB
  • sloc: java: 24,344; xml: 3,218; javascript: 1,107; sh: 12; ansic: 7; makefile: 2
file content (77 lines) | stat: -rw-r--r-- 2,623 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package com.carrotsearch.ant.tasks.junit4.events;

import java.io.IOException;

import org.junit.runner.Description;
import org.junit.runner.notification.Failure;

import com.carrotsearch.ant.tasks.junit4.events.mirrors.FailureMirror;
import com.carrotsearch.ant.tasks.junit4.gson.stream.JsonReader;
import com.carrotsearch.ant.tasks.junit4.gson.stream.JsonWriter;

/**
 * Generic serialized failure event.
 */
public abstract class FailureEvent extends AbstractEvent implements IDescribable {
  private FailureMirror failure;

  public FailureEvent(EventType type) {
    super(type);
  }

  protected void setFailure(Failure failure) {
    if (this.failure != null) {
      throw new IllegalStateException("Set only once.");
    }

    this.failure = new FailureMirror(failure);
  }

  public FailureMirror getFailure() {
    return failure;
  }
  
  public Description getDescription() {
    return failure.getDescription();
  }
  
  @Override
  public void serialize(JsonWriter writer) throws IOException {
    writer.beginObject();

    writer.name("description");
    writeDescription(writer, failure.getDescription());

    writer.name("message").value(failure.getMessage());
    writer.name("trace").value(failure.getTrace());
    writer.name("throwableString").value(failure.getThrowableString());
    writer.name("throwableClass").value(failure.getThrowableClass());
    writer.name("assertionViolation").value(failure.isAssertionViolation());
    writer.name("assumptionViolation").value(failure.isAssumptionViolation());

    writer.endObject();
  }

  @Override
  public void deserialize(JsonReader reader) throws IOException {
    reader.beginObject();

    expectProperty(reader, "description");
    Description description = JsonHelpers.readDescription(reader);
    String message = readStringOrNullProperty(reader, "message");
    String trace = readStringOrNullProperty(reader, "trace");
    String throwableString = readStringOrNullProperty(reader, "throwableString");
    String throwableClass = readStringOrNullProperty(reader, "throwableClass");
    boolean assertionViolation = readBoolean(reader, "assertionViolation");
    boolean assumptionViolation = readBoolean(reader, "assumptionViolation");

    this.failure = new FailureMirror(description, 
                                     message, 
                                     trace, 
                                     throwableString, 
                                     throwableClass, 
                                     assertionViolation, 
                                     assumptionViolation);
    reader.endObject();
  }  
}