• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

box / box-java-sdk / #5076

07 Oct 2025 12:35PM UTC coverage: 37.132% (+0.007%) from 37.125%
#5076

push

github

web-flow
test: Change `Event.additionalDetails` field assertion in events test (box/box-codegen#858) (#1491)

18454 of 49699 relevant lines covered (37.13%)

0.37 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

23.08
/src/main/java/com/box/sdkgen/schemas/webhook/Webhook.java
1
package com.box.sdkgen.schemas.webhook;
2

3
import com.box.sdkgen.internal.utils.DateTimeUtils;
4
import com.box.sdkgen.schemas.usermini.UserMini;
5
import com.box.sdkgen.schemas.webhookmini.WebhookMini;
6
import com.box.sdkgen.schemas.webhookmini.WebhookMiniTargetField;
7
import com.box.sdkgen.schemas.webhookmini.WebhookMiniTypeField;
8
import com.box.sdkgen.serialization.json.EnumWrapper;
9
import com.box.sdkgen.serialization.json.Valuable;
10
import com.fasterxml.jackson.annotation.JsonFilter;
11
import com.fasterxml.jackson.annotation.JsonProperty;
12
import com.fasterxml.jackson.core.JsonGenerator;
13
import com.fasterxml.jackson.core.JsonParser;
14
import com.fasterxml.jackson.databind.DeserializationContext;
15
import com.fasterxml.jackson.databind.JsonDeserializer;
16
import com.fasterxml.jackson.databind.JsonNode;
17
import com.fasterxml.jackson.databind.JsonSerializer;
18
import com.fasterxml.jackson.databind.SerializerProvider;
19
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
20
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
21
import java.io.IOException;
22
import java.time.OffsetDateTime;
23
import java.util.ArrayList;
24
import java.util.List;
25
import java.util.Objects;
26

27
/** Represents a configured webhook. */
28
@JsonFilter("nullablePropertyFilter")
29
public class Webhook extends WebhookMini {
30

31
  @JsonProperty("created_by")
32
  protected UserMini createdBy;
33

34
  /** A timestamp identifying the time that the webhook was created. */
35
  @JsonProperty("created_at")
36
  @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class)
37
  @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class)
38
  protected OffsetDateTime createdAt;
39

40
  /** The URL that is notified by this webhook. */
41
  protected String address;
42

43
  /** An array of event names that this webhook is to be triggered for. */
44
  @JsonDeserialize(using = TriggersDeserializer.class)
45
  @JsonSerialize(using = TriggersSerializer.class)
46
  protected List<EnumWrapper<WebhookTriggersField>> triggers;
47

48
  public Webhook() {
49
    super();
1✔
50
  }
1✔
51

52
  protected Webhook(Builder builder) {
53
    super(builder);
×
54
    this.createdBy = builder.createdBy;
×
55
    this.createdAt = builder.createdAt;
×
56
    this.address = builder.address;
×
57
    this.triggers = builder.triggers;
×
58
    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
×
59
  }
×
60

61
  public UserMini getCreatedBy() {
62
    return createdBy;
×
63
  }
64

65
  public OffsetDateTime getCreatedAt() {
66
    return createdAt;
×
67
  }
68

69
  public String getAddress() {
70
    return address;
1✔
71
  }
72

73
  public List<EnumWrapper<WebhookTriggersField>> getTriggers() {
74
    return triggers;
1✔
75
  }
76

77
  @Override
78
  public boolean equals(Object o) {
79
    if (this == o) {
×
80
      return true;
×
81
    }
82
    if (o == null || getClass() != o.getClass()) {
×
83
      return false;
×
84
    }
85
    Webhook casted = (Webhook) o;
×
86
    return Objects.equals(id, casted.id)
×
87
        && Objects.equals(type, casted.type)
×
88
        && Objects.equals(target, casted.target)
×
89
        && Objects.equals(createdBy, casted.createdBy)
×
90
        && Objects.equals(createdAt, casted.createdAt)
×
91
        && Objects.equals(address, casted.address)
×
92
        && Objects.equals(triggers, casted.triggers);
×
93
  }
94

95
  @Override
96
  public int hashCode() {
97
    return Objects.hash(id, type, target, createdBy, createdAt, address, triggers);
×
98
  }
99

100
  @Override
101
  public String toString() {
102
    return "Webhook{"
×
103
        + "id='"
104
        + id
105
        + '\''
106
        + ", "
107
        + "type='"
108
        + type
109
        + '\''
110
        + ", "
111
        + "target='"
112
        + target
113
        + '\''
114
        + ", "
115
        + "createdBy='"
116
        + createdBy
117
        + '\''
118
        + ", "
119
        + "createdAt='"
120
        + createdAt
121
        + '\''
122
        + ", "
123
        + "address='"
124
        + address
125
        + '\''
126
        + ", "
127
        + "triggers='"
128
        + triggers
129
        + '\''
130
        + "}";
131
  }
132

133
  public static class Builder extends WebhookMini.Builder {
×
134

135
    protected UserMini createdBy;
136

137
    protected OffsetDateTime createdAt;
138

139
    protected String address;
140

141
    protected List<EnumWrapper<WebhookTriggersField>> triggers;
142

143
    public Builder createdBy(UserMini createdBy) {
144
      this.createdBy = createdBy;
×
145
      return this;
×
146
    }
147

148
    public Builder createdAt(OffsetDateTime createdAt) {
149
      this.createdAt = createdAt;
×
150
      return this;
×
151
    }
152

153
    public Builder address(String address) {
154
      this.address = address;
×
155
      return this;
×
156
    }
157

158
    public Builder triggers(List<? extends Valuable> triggers) {
159
      this.triggers = EnumWrapper.wrapValuableEnumList(triggers, WebhookTriggersField.class);
×
160
      return this;
×
161
    }
162

163
    @Override
164
    public Builder id(String id) {
165
      this.id = id;
×
166
      return this;
×
167
    }
168

169
    @Override
170
    public Builder type(WebhookMiniTypeField type) {
171
      this.type = new EnumWrapper<WebhookMiniTypeField>(type);
×
172
      return this;
×
173
    }
174

175
    @Override
176
    public Builder type(EnumWrapper<WebhookMiniTypeField> type) {
177
      this.type = type;
×
178
      return this;
×
179
    }
180

181
    @Override
182
    public Builder target(WebhookMiniTargetField target) {
183
      this.target = target;
×
184
      return this;
×
185
    }
186

187
    public Webhook build() {
188
      return new Webhook(this);
×
189
    }
190
  }
191

192
  public static class TriggersDeserializer
193
      extends JsonDeserializer<List<EnumWrapper<WebhookTriggersField>>> {
194

195
    public final JsonDeserializer<EnumWrapper<WebhookTriggersField>> elementDeserializer;
196

197
    public TriggersDeserializer() {
198
      super();
1✔
199
      this.elementDeserializer = new WebhookTriggersField.WebhookTriggersFieldDeserializer();
1✔
200
    }
1✔
201

202
    @Override
203
    public List<EnumWrapper<WebhookTriggersField>> deserialize(
204
        JsonParser p, DeserializationContext ctxt) throws IOException {
205
      JsonNode node = p.getCodec().readTree(p);
1✔
206
      List<EnumWrapper<WebhookTriggersField>> elements = new ArrayList<>();
1✔
207
      for (JsonNode item : node) {
1✔
208
        JsonParser pa = item.traverse(p.getCodec());
1✔
209
        pa.nextToken();
1✔
210
        elements.add(elementDeserializer.deserialize(pa, ctxt));
1✔
211
      }
1✔
212
      return elements;
1✔
213
    }
214
  }
215

216
  public static class TriggersSerializer
217
      extends JsonSerializer<List<EnumWrapper<WebhookTriggersField>>> {
218

219
    public final JsonSerializer<EnumWrapper<WebhookTriggersField>> elementSerializer;
220

221
    public TriggersSerializer() {
222
      super();
×
223
      this.elementSerializer = new WebhookTriggersField.WebhookTriggersFieldSerializer();
×
224
    }
×
225

226
    @Override
227
    public void serialize(
228
        List<EnumWrapper<WebhookTriggersField>> value,
229
        JsonGenerator gen,
230
        SerializerProvider serializers)
231
        throws IOException {
232
      gen.writeStartArray();
×
233
      for (EnumWrapper<WebhookTriggersField> item : value) {
×
234
        elementSerializer.serialize(item, gen, serializers);
×
235
      }
×
236
      gen.writeEndArray();
×
237
    }
×
238
  }
239
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc