test_class.file: core/src/test/java/com/scottlogic/datahelix/generator/core/generation/string/generators/FakerGeneratorTest.java
test_class.identifier: FakerGeneratorTest
test_case.body: @Test
      void generateRandomValuesUnrestricted() {
          StringRestrictions restrictions = StringRestrictionsFactory.forMaxLength(Defaults.MAX_STRING_LENGTH);
          RegexStringGenerator regex = (RegexStringGenerator) restrictions.createGenerator();
          FakerGenerator generator = new FakerGenerator(regex, "name.firstName");
  
          final int size = 10;
  
          List<String> results = generator.generateRandomValues(new JavaUtilRandomNumberGenerator())
              .limit(size)
              .collect(Collectors.toList());
  
          assertEquals(size, results.size());
      }
test_case.class_method_signature: FakerGeneratorTest.generateRandomValuesUnrestricted()
test_case.full_signature: @Test void generateRandomValuesUnrestricted()
test_case.identifier: generateRandomValuesUnrestricted
test_case.invocations: forMaxLength createGenerator collect limit generateRandomValues toList assertEquals size
test_case.modifiers: @Test
test_case.parameters: ()
test_case.return: void
test_case.signature: void generateRandomValuesUnrestricted()
focal_class.declarator: underlyingRegexGenerator
focal_class.modifier: private final
focal_class.original_string: private final StringGenerator underlyingRegexGenerator;
focal_class.type: StringGenerator
focal_class.var_name: underlyingRegexGenerator
focal_class.declarator: fakerSpec
focal_class.modifier: private final
focal_class.original_string: private final String fakerSpec;
focal_class.type: String
focal_class.var_name: fakerSpec
focal_class.declarator: randomFaker
focal_class.modifier: private final
focal_class.original_string: private final Faker randomFaker;
focal_class.type: Faker
focal_class.var_name: randomFaker
focal_class.declarator: orderedFaker
focal_class.modifier: private final
focal_class.original_string: private final Faker orderedFaker;
focal_class.type: Faker
focal_class.var_name: orderedFaker
focal_class.file: core/src/main/java/com/scottlogic/datahelix/generator/core/generation/string/generators/FakerGenerator.java
focal_class.identifier: FakerGenerator
focal_class.interfaces: implements StringGenerator
focal_class.class_method_signature: FakerGenerator.FakerGenerator(StringGenerator underlyingRegexGenerator, String fakerSpec)
focal_class.full_signature: public  FakerGenerator(StringGenerator underlyingRegexGenerator, String fakerSpec)
focal_class.identifier: FakerGenerator
focal_class.modifiers: public
focal_class.parameters: (StringGenerator underlyingRegexGenerator, String fakerSpec)
focal_class.signature:  FakerGenerator(StringGenerator underlyingRegexGenerator, String fakerSpec)
focal_class.class_method_signature: FakerGenerator.matches(String string)
focal_class.full_signature: @Override public boolean matches(String string)
focal_class.identifier: matches
focal_class.modifiers: @Override public
focal_class.parameters: (String string)
focal_class.return: boolean
focal_class.signature: boolean matches(String string)
focal_class.class_method_signature: FakerGenerator.intersect(StringGenerator stringGenerator)
focal_class.full_signature: @Override public StringGenerator intersect(StringGenerator stringGenerator)
focal_class.identifier: intersect
focal_class.modifiers: @Override public
focal_class.parameters: (StringGenerator stringGenerator)
focal_class.return: StringGenerator
focal_class.signature: StringGenerator intersect(StringGenerator stringGenerator)
focal_class.class_method_signature: FakerGenerator.validate(String string)
focal_class.full_signature: @Override public boolean validate(String string)
focal_class.identifier: validate
focal_class.modifiers: @Override public
focal_class.parameters: (String string)
focal_class.return: boolean
focal_class.signature: boolean validate(String string)
focal_class.class_method_signature: FakerGenerator.generateAllValues()
focal_class.full_signature: @Override public Stream<String> generateAllValues()
focal_class.identifier: generateAllValues
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Stream<String>
focal_class.signature: Stream<String> generateAllValues()
focal_class.class_method_signature: FakerGenerator.generateRandomValues(RandomNumberGenerator randomNumberGenerator)
focal_class.full_signature: @Override public Stream<String> generateRandomValues(RandomNumberGenerator randomNumberGenerator)
focal_class.identifier: generateRandomValues
focal_class.modifiers: @Override public
focal_class.parameters: (RandomNumberGenerator randomNumberGenerator)
focal_class.return: Stream<String>
focal_class.signature: Stream<String> generateRandomValues(RandomNumberGenerator randomNumberGenerator)
focal_class.class_method_signature: FakerGenerator.getFakerValue(Faker faker)
focal_class.full_signature: private String getFakerValue(Faker faker)
focal_class.identifier: getFakerValue
focal_class.modifiers: private
focal_class.parameters: (Faker faker)
focal_class.return: String
focal_class.signature: String getFakerValue(Faker faker)
focal_class.class_method_signature: FakerGenerator.getFakerValueWorkaround(Faker faker)
focal_class.full_signature: private String getFakerValueWorkaround(Faker faker)
focal_class.identifier: getFakerValueWorkaround
focal_class.modifiers: private
focal_class.parameters: (Faker faker)
focal_class.return: String
focal_class.signature: String getFakerValueWorkaround(Faker faker)
focal_method.body: @Override
      public Stream<String> generateRandomValues(RandomNumberGenerator randomNumberGenerator) {
          return Stream.generate(() -> getFakerValue(randomFaker))
              .filter(underlyingRegexGenerator::validate);
      }
focal_method.class_method_signature: FakerGenerator.generateRandomValues(RandomNumberGenerator randomNumberGenerator)
focal_method.full_signature: @Override public Stream<String> generateRandomValues(RandomNumberGenerator randomNumberGenerator)
focal_method.identifier: generateRandomValues
focal_method.invocations: filter generate getFakerValue
focal_method.modifiers: @Override public
focal_method.parameters: (RandomNumberGenerator randomNumberGenerator)
focal_method.return: Stream<String>
focal_method.signature: Stream<String> generateRandomValues(RandomNumberGenerator randomNumberGenerator)