// Path: src/test/java/org/fuin/ddd4j/test/AId.java
// public class AId implements ImplRootId {
// 
//     private static final long serialVersionUID = 1L;
// 
//     public static final EntityType TYPE = new StringBasedEntityType("A");
// 
//     private final long id;
// 
//     public AId(final long id) {
//         this.id = id;
//     }
// 
//     @Override
//     public EntityType getType() {
//         return TYPE;
//     }
// 
//     @Override
//     public String asString() {
//         return "" + id;
//     }
// 
//     @Override
//     public String asTypedString() {
//         return getType() + " " + asString();
//     }
// 
//     @Override
//     public String toString() {
//         return "AId [id=" + id + "]";
//     }
// 
// }
// 
// Path: src/test/java/org/fuin/ddd4j/test/VendorId.java
// @Immutable
// @XmlJavaTypeAdapter(VendorIdConverter.class)
// public final class VendorId extends AbstractUuidValueObject implements AggregateRootId, ValueObjectWithBaseType<UUID> {
// 
//     private static final long serialVersionUID = 1000L;
// 
//     /** Type of entity this identifier represents. */
//     public static final EntityType ENTITY_TYPE = new StringBasedEntityType("Vendor");
// 
//     private final UUID uuid;
// 
//     /**
//      * Default constructor.
//      */
//     public VendorId() {
//         super();
//         uuid = UUID.randomUUID();
//     }
// 
//     /**
//      * Constructor with UUID.
//      * 
//      * @param uuid
//      *            UUID.
//      */
//     public VendorId(@NotNull final UUID uuid) {
//         super();
//         Contract.requireArgNotNull("uuid", uuid);
//         this.uuid = uuid;
//     }
// 
//     @Override
//     public final UUID asBaseType() {
//         return uuid;
//     }
// 
//     @Override
//     public final EntityType getType() {
//         return ENTITY_TYPE;
//     }
// 
//     @Override
//     public final String asTypedString() {
//         return getType() + " " + asString();
//     }
// 
//     @Override
//     public final String asString() {
//         return uuid.toString();
//     }
// 
//     @Override
//     public final String toString() {
//         return uuid.toString();
//     }
// 
// }


import static org.assertj.core.api.Assertions.assertThat;
import static org.fuin.utils4j.JaxbUtils.marshal;
import static org.fuin.utils4j.JaxbUtils.unmarshal;
import static org.fuin.utils4j.Utils4J.deserialize;
import static org.fuin.utils4j.Utils4J.serialize;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.UUID;
import jakarta.xml.bind.annotation.XmlRootElement;
import jakarta.xml.bind.annotation.adapters.XmlAdapter;
import org.fuin.ddd4j.test.AId;
import org.fuin.ddd4j.test.VendorId;
import org.junit.Test;
package org.fuin.ddd4j.ddd;





//CHECKSTYLE:OFF Test code
public class AbstractDomainEventTest {

    private static final EventType MY_EVENT_1_TYPE = new EventType("MyEvent1");

    private static final EventType MY_EVENT_2_TYPE = new EventType("MyEvent2");

    @Test
    public final void testConstructorCorrelationCausationIds() {

        // PREPARE
        final EventId correlationId = new EventId();
        final EventId causationId = new EventId();
// Path: src/test/java/org/fuin/ddd4j/test/AId.java
// public class AId implements ImplRootId {
// 
//     private static final long serialVersionUID = 1L;
// 
//     public static final EntityType TYPE = new StringBasedEntityType("A");
// 
//     private final long id;
// 
//     public AId(final long id) {
//         this.id = id;
//     }
// 
//     @Override
//     public EntityType getType() {
//         return TYPE;
//     }
// 
//     @Override
//     public String asString() {
//         return "" + id;
//     }
// 
//     @Override
//     public String asTypedString() {
//         return getType() + " " + asString();
//     }
// 
//     @Override
//     public String toString() {
//         return "AId [id=" + id + "]";
//     }
// 
// }
// 
// Path: src/test/java/org/fuin/ddd4j/test/VendorId.java
// @Immutable
// @XmlJavaTypeAdapter(VendorIdConverter.class)
// public final class VendorId extends AbstractUuidValueObject implements AggregateRootId, ValueObjectWithBaseType<UUID> {
// 
//     private static final long serialVersionUID = 1000L;
// 
//     /** Type of entity this identifier represents. */
//     public static final EntityType ENTITY_TYPE = new StringBasedEntityType("Vendor");
// 
//     private final UUID uuid;
// 
//     /**
//      * Default constructor.
//      */
//     public VendorId() {
//         super();
//         uuid = UUID.randomUUID();
//     }
// 
//     /**
//      * Constructor with UUID.
//      * 
//      * @param uuid
//      *            UUID.
//      */
//     public VendorId(@NotNull final UUID uuid) {
//         super();
//         Contract.requireArgNotNull("uuid", uuid);
//         this.uuid = uuid;
//     }
// 
//     @Override
//     public final UUID asBaseType() {
//         return uuid;
//     }
// 
//     @Override
//     public final EntityType getType() {
//         return ENTITY_TYPE;
//     }
// 
//     @Override
//     public final String asTypedString() {
//         return getType() + " " + asString();
//     }
// 
//     @Override
//     public final String asString() {
//         return uuid.toString();
//     }
// 
//     @Override
//     public final String toString() {
//         return uuid.toString();
//     }
// 
// }


// Path: src/test/java/org/fuin/ddd4j/ddd/AbstractDomainEventTest.java
import static org.assertj.core.api.Assertions.assertThat;
import static org.fuin.utils4j.JaxbUtils.marshal;
import static org.fuin.utils4j.JaxbUtils.unmarshal;
import static org.fuin.utils4j.Utils4J.deserialize;
import static org.fuin.utils4j.Utils4J.serialize;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.UUID;
import jakarta.xml.bind.annotation.XmlRootElement;
import jakarta.xml.bind.annotation.adapters.XmlAdapter;
import org.fuin.ddd4j.test.AId;
import org.fuin.ddd4j.test.VendorId;
import org.junit.Test;

package org.fuin.ddd4j.ddd;





//CHECKSTYLE:OFF Test code
public class AbstractDomainEventTest {

    private static final EventType MY_EVENT_1_TYPE = new EventType("MyEvent1");

    private static final EventType MY_EVENT_2_TYPE = new EventType("MyEvent2");

    @Test
    public final void testConstructorCorrelationCausationIds() {

        // PREPARE
        final EventId correlationId = new EventId();
        final EventId causationId = new EventId();
        final VendorId vendorId = new VendorId();