/*
* Copyright (c) 2010-2016. Axon Framework
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.axonframework.eventsourcing.eventstore;
import org.axonframework.common.IdentifierFactory;
import org.axonframework.eventsourcing.DomainEventMessage;
import org.axonframework.eventsourcing.GenericDomainEventMessage;
import org.axonframework.messaging.MetaData;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import static java.time.Instant.now;
/**
* @author Rene de Waele
*/
public class EventStoreTestUtils {
public static final String PAYLOAD = "payload", AGGREGATE = "aggregate", TYPE = "type";
public static final MetaData METADATA = MetaData.emptyInstance();
public static List<DomainEventMessage<?>> createEvents(int numberOfEvents) {
return IntStream.range(0, numberOfEvents).mapToObj(
sequenceNumber -> createEvent(TYPE, IdentifierFactory.getInstance().generateIdentifier(), AGGREGATE,
sequenceNumber, PAYLOAD + sequenceNumber, METADATA))
.collect(Collectors.toList());
}
public static DomainEventMessage<String> createEvent() {
return createEvent(0);
}
public static DomainEventMessage<String> createEvent(long sequenceNumber) {
return createEvent(AGGREGATE, sequenceNumber);
}
public static DomainEventMessage<String> createEvent(String aggregateId, long sequenceNumber) {
return createEvent(aggregateId, sequenceNumber, PAYLOAD);
}
public static DomainEventMessage<String> createEvent(String aggregateId, long sequenceNumber, String payload) {
return createEvent(TYPE, IdentifierFactory.getInstance().generateIdentifier(), aggregateId, sequenceNumber,
payload, METADATA);
}
public static DomainEventMessage<String> createEvent(String eventId, String aggregateId, long sequenceNumber) {
return createEvent(TYPE, eventId, aggregateId, sequenceNumber, PAYLOAD, METADATA);
}
public static DomainEventMessage<String> createEvent(String type, String eventId, String aggregateId,
long sequenceNumber, String payload, MetaData metaData) {
return new GenericDomainEventMessage<>(type, aggregateId, sequenceNumber, payload, metaData, eventId, now());
}
private EventStoreTestUtils() {
}
}