{"id":13629547,"url":"https://github.com/pmrogala/Buildenator","last_synced_at":"2025-04-17T09:34:46.752Z","repository":{"id":43461350,"uuid":"373946863","full_name":"pmrogala/Buildenator","owner":"pmrogala","description":"A test data builders source generator for .net 5 and later.","archived":false,"fork":false,"pushed_at":"2024-10-24T19:15:47.000Z","size":256,"stargazers_count":19,"open_issues_count":8,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-10-26T17:49:07.088Z","etag":null,"topics":["analyzer","builder","builders","csharp","dotnet","dotnet-standard","dotnetcore","sourcegenerator"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pmrogala.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["progala2"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2021-06-04T19:57:24.000Z","updated_at":"2024-10-24T19:14:15.000Z","dependencies_parsed_at":"2024-01-05T13:50:56.637Z","dependency_job_id":"e69d5ca1-855f-4265-a2a1-e545b620f06d","html_url":"https://github.com/pmrogala/Buildenator","commit_stats":null,"previous_names":["pmrogala/buildenator"],"tags_count":41,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmrogala%2FBuildenator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmrogala%2FBuildenator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmrogala%2FBuildenator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmrogala%2FBuildenator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pmrogala","download_url":"https://codeload.github.com/pmrogala/Buildenator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223751236,"owners_count":17196591,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analyzer","builder","builders","csharp","dotnet","dotnet-standard","dotnetcore","sourcegenerator"],"created_at":"2024-08-01T22:01:13.343Z","updated_at":"2024-11-08T20:31:15.424Z","avatar_url":"https://github.com/pmrogala.png","language":"C#","readme":"# Buildenator\nA test data **Builder Generator** for .net 5 and later.\n\nVersioning:\nN.X.Y.Z\n\n- N - minimum version of .net required.\n- X.Y.Z - standard semantic versioning.\n\n## A simple usage example\n\nThe following code:\n```csharp\nusing Buildenator.Abstraction;\nusing Buildenator.Abstraction.AutoFixture;\nusing SampleProject;\n\nnamespace SampleTestProject.Builders\n{\n    [MakeBuilder(typeof(DomainEntity))]\n    /* AutoFixture is optional. By adding it, the builder will use random data generator \n       for filling in not set up properties. */\n    [AutoFixtureConfiguration()] \n    public partial class DomainEntityBuilder\n    {\n    }\n}\n```\nWill generate something very close to this source code:\n\n```csharp\nusing System;\nusing System.Linq;\nusing Buildenator.Abstraction.Helpers;\nusing SampleProject;\nusing AutoFixture;\n\n\nnamespace SampleTestProject.Builders\n{\n    public partial class DomainEntityBuilder\n    {\n        private readonly Fixture _fixture = new Fixture();\n\n        public DomainEntityBuilder()\n        {\n\n        }\n\n        private Nullbox\u003cint\u003e? _propertyIntGetter;\n        private Nullbox\u003cstring\u003e? _propertyStringGetter;\n\n\n        public DomainEntityBuilder WithPropertyIntGetter(int value)\n        {\n            _propertyIntGetter = new Nullbox\u003cint\u003e(value);\n            return this;\n        }\n\n\n        public DomainEntityBuilder WithPropertyStringGetter(string value)\n        {\n            _propertyStringGetter = new Nullbox\u003cstring\u003e(value);\n            return this;\n        }\n\n        public DomainEntity Build()\n        {\n            return new DomainEntity((_propertyIntGetter.HasValue ? _propertyIntGetter.Value : new Nullbox\u003cint\u003e(_fixture.Create\u003cint\u003e())).Object, (_propertyStringGetter.HasValue ? _propertyStringGetter.Value : new Nullbox\u003cstring\u003e(_fixture.Create\u003cstring\u003e())).Object)\n            {\n\n            };\n        }\n\n        public static DomainEntityBuilder DomainEntity =\u003e new DomainEntityBuilder();\n\n        public System.Collections.Generic.IEnumerable\u003cDomainEntity\u003e BuildMany(int count = 3)\n        {\n            return Enumerable.Range(0, count).Select(_ =\u003e Build());\n        }\n\n        public static DomainEntity BuildDefault(int _propertyIntGetter = default(int), string _propertyStringGetter = default(string))\n        {\n            return new DomainEntity(_propertyIntGetter, _propertyStringGetter)\n            {\n\n            };\n        }\n\n    }\n}\n```\n\nCheck ```Buildenator.IntegrationTests``` for more examples.\n\n\nFeel free to contribute!\n","funding_links":["https://github.com/sponsors/progala2"],"categories":["Do not want to test 114 ( old ISourceGenerator )","Source Generators"],"sub_categories":["1. [ThisAssembly](https://ignatandrei.github.io/RSCG_Examples/v2/docs/ThisAssembly) , in the [EnhancementProject](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enhancementproject) category","Testing"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpmrogala%2FBuildenator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpmrogala%2FBuildenator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpmrogala%2FBuildenator/lists"}