From 3d982efd8ef71fa8fefcacdb8830c588dc76fe5c Mon Sep 17 00:00:00 2001 From: Paul DeVito Date: Mon, 6 Dec 2021 09:29:16 -0500 Subject: [PATCH] fix: seeder and test bugs for ddd first entities --- Craftsman/Builders/Seeders/SeederFunctions.cs | 10 +++++++--- .../Tests/FunctionalTests/CreateEntityTestBuilder.cs | 7 ++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/Craftsman/Builders/Seeders/SeederFunctions.cs b/Craftsman/Builders/Seeders/SeederFunctions.cs index 4c1f05e0..dd1ec231 100644 --- a/Craftsman/Builders/Seeders/SeederFunctions.cs +++ b/Craftsman/Builders/Seeders/SeederFunctions.cs @@ -3,13 +3,16 @@ using Craftsman.Helpers; using Craftsman.Models; using System; + using Enums; public static class SeederFunctions { public static string GetEntitySeederFileText(string classNamespace, Entity entity, string dbContextName, string solutionDirectory, string projectBaseName) { var entitiesClassPath = ClassPathHelper.EntityClassPath(solutionDirectory, "", entity.Plural, projectBaseName); + var dtoClassPath = ClassPathHelper.DtoClassPath(solutionDirectory, "", entity.Name, projectBaseName); var dbContextClassPath = ClassPathHelper.DbContextClassPath(solutionDirectory, "", projectBaseName); + var entityForCreationDto = $"Fake{Utilities.GetDtoName(entity.Name, Dto.Creation)}"; if (dbContextName is null) { throw new ArgumentNullException(nameof(dbContextName)); @@ -19,6 +22,7 @@ public static string GetEntitySeederFileText(string classNamespace, Entity entit using AutoBogus; using {entitiesClassPath.ClassNamespace}; +using {dtoClassPath.ClassNamespace}; using {dbContextClassPath.ClassNamespace}; using System.Linq; @@ -28,9 +32,9 @@ public static class {Utilities.GetSeederName(entity)} {{ if (!context.{entity.Plural}.Any()) {{ - context.{entity.Plural}.Add(new AutoFaker<{entity.Name}>()); - context.{entity.Plural}.Add(new AutoFaker<{entity.Name}>()); - context.{entity.Plural}.Add(new AutoFaker<{entity.Name}>()); + context.{entity.Plural}.Add({entity.Name}.Create(new AutoFaker<{entityForCreationDto}>())); + context.{entity.Plural}.Add({entity.Name}.Create(new AutoFaker<{entityForCreationDto}>())); + context.{entity.Plural}.Add({entity.Name}.Create(new AutoFaker<{entityForCreationDto}>())); context.SaveChanges(); }} diff --git a/Craftsman/Builders/Tests/FunctionalTests/CreateEntityTestBuilder.cs b/Craftsman/Builders/Tests/FunctionalTests/CreateEntityTestBuilder.cs index 1bd304b7..9561b7aa 100644 --- a/Craftsman/Builders/Tests/FunctionalTests/CreateEntityTestBuilder.cs +++ b/Craftsman/Builders/Tests/FunctionalTests/CreateEntityTestBuilder.cs @@ -75,13 +75,14 @@ private static string CreateEntityTestUnauthorized(Entity entity) { var fakeEntity = Utilities.FakerName(entity.Name); var fakeEntityVariableName = $"fake{entity.Name}"; + var fakeCreationDto = Utilities.FakerName(Utilities.GetDtoName(entity.Name, Dto.Creation)); return $@" [Test] public async Task create_{entity.Name.ToLower()}_returns_unauthorized_without_valid_token() {{ // Arrange - var {fakeEntityVariableName} = new {fakeEntity} {{ }}.Generate(); + var {fakeEntityVariableName} = {fakeEntity}.Generate(new {fakeCreationDto}().Generate()); await InsertAsync({fakeEntityVariableName}); @@ -98,14 +99,14 @@ private static string CreateEntityTestForbidden(Entity entity) { var fakeEntity = Utilities.FakerName(entity.Name); var fakeEntityVariableName = $"fake{entity.Name}"; - var pkName = Entity.PrimaryKeyProperty.Name; + var fakeCreationDto = Utilities.FakerName(Utilities.GetDtoName(entity.Name, Dto.Creation)); return $@" [Test] public async Task create_{entity.Name.ToLower()}_returns_forbidden_without_proper_scope() {{ // Arrange - var {fakeEntityVariableName} = new {fakeEntity} {{ }}.Generate(); + var {fakeEntityVariableName} = {fakeEntity}.Generate(new {fakeCreationDto}().Generate()); _client.AddAuth(); await InsertAsync({fakeEntityVariableName});