001package de.cuioss.test.generator.impl;
002
003import static java.time.ZoneId.getAvailableZoneIds;
004import static java.util.stream.Collectors.toList;
005
006import java.time.LocalDateTime;
007import java.time.ZoneId;
008import java.time.ZoneOffset;
009
010import de.cuioss.test.generator.Generators;
011import de.cuioss.test.generator.TypedGenerator;
012
013/**
014 * Provide any valid value for {@linkplain ZoneOffset}
015 *
016 * @author Eugen Fischer
017 */
018public class ZoneOffsetGenerator implements TypedGenerator<ZoneOffset> {
019
020    private static final TypedGenerator<ZoneId> ZONE_IDS_GEN =
021        Generators.fixedValues(ZoneId.class, getAvailableZoneIds().stream().map(ZoneId::of).collect(toList()));
022
023    @Override
024    public java.time.ZoneOffset next() {
025        return LocalDateTime.now().atZone(ZONE_IDS_GEN.next()).getOffset();
026    }
027
028    @Override
029    public Class<ZoneOffset> getType() {
030        return ZoneOffset.class;
031    }
032
033}