All Downloads are FREE. Search and download functionalities are using the official Maven repository.

autofixture.generators.PathGenerator Maven / Gradle / Ivy

Go to download

An attempt to reimplement core features of a popular .NET anonymous value generator - AutoFixture - in Java

There is a newer version: 2.1.10
Show newest version
package autofixture.generators;

import autofixture.interfaces.FixtureContract;
import autofixture.interfaces.InlineGeneratorsFactory;
import autofixture.interfaces.InstanceGenerator;
import autofixture.interfaces.InstanceType;
import com.google.common.collect.Lists;

import java.nio.file.FileSystems;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Optional;

public class PathGenerator implements InstanceGenerator {
    private InlineGeneratorsFactory generatorsFactory;
    private Optional root;

    public PathGenerator(InlineGeneratorsFactory generatorsFactory) {

        this.generatorsFactory = generatorsFactory;
        root = Lists.newArrayList(FileSystems.getDefault().getRootDirectories())
            .stream()
            .findFirst();
    }

    @Override
    public  boolean appliesTo(InstanceType instanceType) {
        return instanceType.isAssignableTo(Path.class);
    }

    @Override
    public  T next(InstanceType instanceType, FixtureContract fixture) {
        return (T)Paths.get(
            root.get().toString(),
            fixture.create(generatorsFactory.alphaString()),
            fixture.create(generatorsFactory.alphaString()),
            fixture.create(generatorsFactory.alphaString()));
    }

    @Override
    public  T nextEmpty(InstanceType instanceType, FixtureContract fixture) {
        return (T)root.get();
    }

    @Override
    public void setOmittingAutoProperties(boolean isOn) {

    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy