// Path: nakadi-producer-spring-boot-starter/src/test/java/org/zalando/nakadiproducer/BaseMockedExternalCommunicationIT.java
// @ActiveProfiles("test")
// @RunWith(SpringRunner.class)
// @SpringBootTest(
//         webEnvironment = SpringBootTest.WebEnvironment.MOCK,
//         properties = { "zalando.team.id:alpha-local-testing", "nakadi-producer.scheduled-transmission-enabled:false" },
//         classes = { TestApplication.class, EmbeddedDataSourceConfig.class }
// )
// public abstract class BaseMockedExternalCommunicationIT {
// 
// }
// 
// Path: nakadi-producer/src/main/java/org/zalando/nakadiproducer/snapshots/impl/SnapshotCreationService.java
// public class SnapshotCreationService {
// 
//     private final Map<String, SnapshotEventGenerator> snapshotEventProviders;
// 
//     private final EventLogWriter eventLogWriter;
// 
//     /**
//      * Creates the service.
//      *
//      * @param snapshotEventGenerators
//      *            the event generators. Each of them must have a different
//      *            supported event type.
//      * @param eventLogWriter
//      *            The event log writer to which the newly generated snapshot
//      *            events are pushed.
//      *            @throws IllegalStateException if two event generators declare to be responsible for the same event type.
//      */
//     public SnapshotCreationService(List<SnapshotEventGenerator> snapshotEventGenerators,
//             EventLogWriter eventLogWriter) {
//         this.snapshotEventProviders = snapshotEventGenerators.stream()
//                 .collect(toMap(SnapshotEventGenerator::getSupportedEventType, identity()));
//         this.eventLogWriter = eventLogWriter;
//     }
// 
//     public void createSnapshotEvents(final String eventType, String filter) {
//         final SnapshotEventGenerator snapshotEventGenerator = snapshotEventProviders.get(eventType);
//         if (snapshotEventGenerator == null) {
//             throw new UnknownEventTypeException(eventType);
//         }
// 
//         Object lastProcessedId = null;
//         do {
//             final List<Snapshot> snapshots = snapshotEventGenerator.generateSnapshots(lastProcessedId, filter);
//             if (snapshots.isEmpty()) {
//                 break;
//             }
// 
//             for (final Snapshot snapshot : snapshots) {
//                 eventLogWriter.fireSnapshotEvent(eventType, snapshot.getDataType(), snapshot.getData());
//                 lastProcessedId = snapshot.getId();
//             }
//         } while (true);
//     }
// 
//     public Set<String> getSupportedEventTypes() {
//         return unmodifiableSet(snapshotEventProviders.keySet());
//     }
// }


import static org.junit.Assert.fail;
import java.util.Collections;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.zalando.nakadiproducer.BaseMockedExternalCommunicationIT;
import org.zalando.nakadiproducer.snapshots.impl.SnapshotCreationService;
package org.zalando.nakadiproducer.snapshots;




@ContextConfiguration(classes=SnapshotEventGeneratorAutoconfigurationIT.Config.class)
public class SnapshotEventGeneratorAutoconfigurationIT extends BaseMockedExternalCommunicationIT {

    @Autowired
// Path: nakadi-producer-spring-boot-starter/src/test/java/org/zalando/nakadiproducer/BaseMockedExternalCommunicationIT.java
// @ActiveProfiles("test")
// @RunWith(SpringRunner.class)
// @SpringBootTest(
//         webEnvironment = SpringBootTest.WebEnvironment.MOCK,
//         properties = { "zalando.team.id:alpha-local-testing", "nakadi-producer.scheduled-transmission-enabled:false" },
//         classes = { TestApplication.class, EmbeddedDataSourceConfig.class }
// )
// public abstract class BaseMockedExternalCommunicationIT {
// 
// }
// 
// Path: nakadi-producer/src/main/java/org/zalando/nakadiproducer/snapshots/impl/SnapshotCreationService.java
// public class SnapshotCreationService {
// 
//     private final Map<String, SnapshotEventGenerator> snapshotEventProviders;
// 
//     private final EventLogWriter eventLogWriter;
// 
//     /**
//      * Creates the service.
//      *
//      * @param snapshotEventGenerators
//      *            the event generators. Each of them must have a different
//      *            supported event type.
//      * @param eventLogWriter
//      *            The event log writer to which the newly generated snapshot
//      *            events are pushed.
//      *            @throws IllegalStateException if two event generators declare to be responsible for the same event type.
//      */
//     public SnapshotCreationService(List<SnapshotEventGenerator> snapshotEventGenerators,
//             EventLogWriter eventLogWriter) {
//         this.snapshotEventProviders = snapshotEventGenerators.stream()
//                 .collect(toMap(SnapshotEventGenerator::getSupportedEventType, identity()));
//         this.eventLogWriter = eventLogWriter;
//     }
// 
//     public void createSnapshotEvents(final String eventType, String filter) {
//         final SnapshotEventGenerator snapshotEventGenerator = snapshotEventProviders.get(eventType);
//         if (snapshotEventGenerator == null) {
//             throw new UnknownEventTypeException(eventType);
//         }
// 
//         Object lastProcessedId = null;
//         do {
//             final List<Snapshot> snapshots = snapshotEventGenerator.generateSnapshots(lastProcessedId, filter);
//             if (snapshots.isEmpty()) {
//                 break;
//             }
// 
//             for (final Snapshot snapshot : snapshots) {
//                 eventLogWriter.fireSnapshotEvent(eventType, snapshot.getDataType(), snapshot.getData());
//                 lastProcessedId = snapshot.getId();
//             }
//         } while (true);
//     }
// 
//     public Set<String> getSupportedEventTypes() {
//         return unmodifiableSet(snapshotEventProviders.keySet());
//     }
// }


// Path: nakadi-producer-spring-boot-starter/src/test/java/org/zalando/nakadiproducer/snapshots/SnapshotEventGeneratorAutoconfigurationIT.java
import static org.junit.Assert.fail;
import java.util.Collections;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.zalando.nakadiproducer.BaseMockedExternalCommunicationIT;
import org.zalando.nakadiproducer.snapshots.impl.SnapshotCreationService;

package org.zalando.nakadiproducer.snapshots;




@ContextConfiguration(classes=SnapshotEventGeneratorAutoconfigurationIT.Config.class)
public class SnapshotEventGeneratorAutoconfigurationIT extends BaseMockedExternalCommunicationIT {

    @Autowired
    private SnapshotCreationService snapshotCreationService;