package org.finra.datagenerator.scaffolding.random; import com.fasterxml.jackson.databind.ObjectMapper; import org.finra.datagenerator.scaffolding.config.ConfigName; import org.finra.datagenerator.scaffolding.random.core.JavaRubberRandom; import org.finra.datagenerator.scaffolding.random.core.RegexGenerator; import org.finra.datagenerator.scaffolding.random.randomizers.EmailRandomizer; import org.finra.datagenerator.scaffolding.random.support.annotations.CustomRandomizer; import org.finra.datagenerator.scaffolding.random.types.CollectionTypes; import org.finra.datagenerator.scaffolding.random.types.ParameterizedTypeReference; import org.finra.datagenerator.scaffolding.random.userTypes.Email; import org.junit.Assert; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.List; import java.util.Map; /** * Created by dkopel on 9/30/16. */ public class RandomTest { private Logger logger = LoggerFactory.getLogger(getClass()); @Test public void paramertizedType() { JavaRubberRandom random = JavaRubberRandom.apply(); Map<String, Buffet<Integer>> output = random.generate( new ParameterizedTypeReference<Map<String, Buffet<Integer>>>(){} ); logger.debug("Out: {}", output); } public static class Foo { private Integer number; private String label; public void setNumber(Integer num) { this.number = num; } public void setLabel(String lbl) { this.label = lbl; } public Integer getNumber() { return number; } public String getLabel() { return label; } } @Test public void fooTest() throws Exception { JavaRubberRandom random = JavaRubberRandom.apply(); random.jpr().random.setSeed(196542L); Long l = random.generate(Long.class); logger.info("l {}", l); for(int x=0; x < 5; x++) { Foo f = random.generate(Foo.class); logger.info("Foo {}", new ObjectMapper().writeValueAsString(f)); } } public static class OtherEmail { private Email email; @CustomRandomizer(value=EmailRandomizer.class) private String emailString; public Email getEmail() { return email; } public OtherEmail setEmail(Email email) { this.email = email; return this; } public String getEmailString() { return emailString; } public OtherEmail setEmailString(String emailString) { this.emailString = emailString; return this; } } @Test public void emailTest() { JavaRubberRandom random = JavaRubberRandom.apply(); Email e1 = random.generate(Email.class); logger.info("Email: {}", e1); OtherEmail e2 = random.generate(OtherEmail.class); logger.info("Email: {}", e2.getEmail()); logger.info("String Email: {}", e2.getEmailString()); } @Test public void regexTest() { JavaRubberRandom random = JavaRubberRandom.apply(); RegexGenerator gen = random.generateRegex("[a-zA-Z0-9]{5,10}\\@[a-zA-Z0-9]{5,10}\\.[a-z]{3}"); String r1 = gen.next(); String r2 = gen.next(); logger.info("Out: {}", r1); logger.info("Out: {}", r2); } @Test public void adjustCollectionOutput() { JavaRubberRandom random = JavaRubberRandom.apply(); ConfigName cn = CollectionTypes.CollectionRangeName$.MODULE$; scala.collection.immutable.Range range = scala.collection.immutable.Range$.MODULE$.inclusive(5, 5); random.setOverride(cn, range); List<Integer> out = random.generate(new ParameterizedTypeReference<List<Integer>>() {}); Assert.assertEquals(5, out.size()); } }