public void Create() { var expectedProperties = new List <string> { "static readonly PutAnotherPropertyValidators = [Validators.minLength(123), Validators.maxLength(123)];", "static readonly PutPropertyValidators = [Validators.min(33), Validators.max(66), Validators.required];", "static readonly GetSomePropertyValidators = [Validators.required, Validators.minLength(55)];", "static readonly PostCollectionOfNestedTypesValidators = [Validators.required];", "static readonly PostSomePropertyValidators = [Validators.required, Validators.pattern(`^[a-z''-'\\s]{1,3}$`)];", "static readonly TestNestedPropertyValidators = [Validators.minLength(123), Validators.maxLength(123)];", "static readonly TestAnotherNestedTypeInCollectionPropertyValidators = [Validators.required, Validators.maxLength(22)];", "static readonly TestEmailNestedTypeInCollectionPropertyValidators = [Validators.email];", "static readonly TestNestedTypeInCollectionPropertyValidators = [Validators.required, Validators.pattern(``)];" }; var expectedClasses = new List <string> { "TypeFinderTestsTestApiTestGetRequest", "TypeFinderTestsTestApiTestPostRequest", "TypeFinderTestsTestApiTestPutRequest", "TypeFinderTestsTestApiTestNestedType", "TypeFinderTestsTestApiTestNestedTypeInCollection", "TypeFinderTestsTestApiNamespaceWithDuplicatedNamesTestNestedType" }; var ts = NgReactiveFormValidators.CreateFor( AttributesTranform.For(FindTypes.Find("TypeFinder.Tests.dll"), NgValidatorsFromAttribute.For)); expectedProperties.ForEach(c => Assert.IsTrue(ts.Contains(c))); expectedClasses.ForEach(c => Assert.IsTrue(ts.Contains($"export class {c}Validators"))); }
public static void Generate(string assemblyFilePath, string tsConstantsDestination, string ngReactiveFormValidatorsDestination) { var types = FindTypes.Find(assemblyFilePath); if (!string.IsNullOrWhiteSpace(tsConstantsDestination)) { System.IO.File.WriteAllText(tsConstantsDestination, TsDefinitions.CreateFor(AttributesTranform.For(types, TsFromAttribute.For))); } if (!string.IsNullOrWhiteSpace(ngReactiveFormValidatorsDestination)) { System.IO.File.WriteAllText( ngReactiveFormValidatorsDestination, NgReactiveFormValidators.CreateFor(AttributesTranform.For(types, NgValidatorsFromAttribute.For))); } }