### Question:
AclEntryDeleted extends AbstractThingEvent<AclEntryDeleted> implements ThingModifiedEvent<AclEntryDeleted> { @Deprecated public static AclEntryDeleted of(final String thingId, final AuthorizationSubject authorizationSubject, final long revision, final DittoHeaders dittoHeaders) { return of(ThingId.of(thingId), authorizationSubject, revision, dittoHeaders); } private  AclEntryDeleted(final ThingId thingId,
            final AuthorizationSubject authorizationSubject,
            final long revision,
            @Nullable final Instant timestamp,
            final DittoHeaders dittoHeaders,
            @Nullable final Metadata metadata); @Deprecated static AclEntryDeleted of(final String thingId,
            final AuthorizationSubject authorizationSubject,
            final long revision,
            final DittoHeaders dittoHeaders); @Deprecated static AclEntryDeleted of(final ThingId thingId,
            final AuthorizationSubject authorizationSubject,
            final long revision,
            final DittoHeaders dittoHeaders); @Deprecated static AclEntryDeleted of(final String thingId,
            final AuthorizationSubject authorizationSubject,
            final long revision,
            @Nullable final Instant timestamp,
            final DittoHeaders dittoHeaders); @Deprecated static AclEntryDeleted of(final ThingId thingId,
            final AuthorizationSubject authorizationSubject,
            final long revision,
            @Nullable final Instant timestamp,
            final DittoHeaders dittoHeaders); static AclEntryDeleted of(final ThingId thingId,
            final AuthorizationSubject authorizationSubject,
            final long revision,
            @Nullable final Instant timestamp,
            final DittoHeaders dittoHeaders,
            @Nullable final Metadata metadata); static AclEntryDeleted fromJson(final String jsonString, final DittoHeaders dittoHeaders); static AclEntryDeleted fromJson(final JsonObject jsonObject, final DittoHeaders dittoHeaders); AuthorizationSubject getAuthorizationSubject(); @Override JsonPointer getResourcePath(); @Override AclEntryDeleted setRevision(final long revision); @Override AclEntryDeleted setDittoHeaders(final DittoHeaders dittoHeaders); @SuppressWarnings("squid:S109") @Override int hashCode(); @SuppressWarnings("squid:MethodCyclomaticComplexity") @Override boolean equals(@Nullable final Object o); @Override String toString(); static final String NAME; static final String TYPE; }### Answer:
@Test(expected = ThingIdInvalidException.class) public void tryToCreateInstanceWithNullThingIdString() { AclEntryDeleted.of((String) null, TestConstants.Authorization.AUTH_SUBJECT_GRIMES, TestConstants.Thing.REVISION_NUMBER, TestConstants.EMPTY_DITTO_HEADERS); }
@Test(expected = NullPointerException.class) public void tryToCreateInstanceWithNullThingId() { AclEntryDeleted.of((ThingId) null, TestConstants.Authorization.AUTH_SUBJECT_GRIMES, TestConstants.Thing.REVISION_NUMBER, TestConstants.EMPTY_DITTO_HEADERS); }
@Test(expected = NullPointerException.class) public void tryToCreateInstanceWithNullAclSubject() { AclEntryDeleted.of(TestConstants.Thing.THING_ID, null, TestConstants.Thing.REVISION_NUMBER, TestConstants.EMPTY_DITTO_HEADERS); }
@Test public void toJsonReturnsExpected() { final AclEntryDeleted underTest = AclEntryDeleted.of(TestConstants.Thing.THING_ID, TestConstants.Authorization.AUTH_SUBJECT_GRIMES, 2, TestConstants.TIMESTAMP, TestConstants.EMPTY_DITTO_HEADERS, TestConstants.METADATA); final JsonObject actualJson = underTest.toJson(JsonSchemaVersion.V_1, FieldType.regularOrSpecial()); assertThat(actualJson).isEqualToIgnoringFieldDefinitions(KNOWN_JSON .remove(Event.JsonFields.ID.getPointer()) .set(Event.JsonFields.TYPE, AclEntryDeleted.TYPE)); }