generator-codedesignplus 0.0.1-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/LICENCE.md +13 -0
  2. package/README.md +454 -0
  3. package/generators/app/index.mjs +22 -0
  4. package/generators/microservice/core/aggregate.mjs +25 -0
  5. package/generators/microservice/core/appsettings.mjs +73 -0
  6. package/generators/microservice/core/asyncWorker.mjs +87 -0
  7. package/generators/microservice/core/command.mjs +54 -0
  8. package/generators/microservice/core/consumer.mjs +73 -0
  9. package/generators/microservice/core/controller.mjs +25 -0
  10. package/generators/microservice/core/core.mjs +98 -0
  11. package/generators/microservice/core/dataTransferObject.mjs +31 -0
  12. package/generators/microservice/core/domainEvent.mjs +36 -0
  13. package/generators/microservice/core/dotnet.mjs +56 -0
  14. package/generators/microservice/core/entity.mjs +29 -0
  15. package/generators/microservice/core/errors.mjs +37 -0
  16. package/generators/microservice/core/grpc.mjs +97 -0
  17. package/generators/microservice/core/microservice.mjs +212 -0
  18. package/generators/microservice/core/proto.mjs +61 -0
  19. package/generators/microservice/core/query.mjs +59 -0
  20. package/generators/microservice/core/repository.mjs +41 -0
  21. package/generators/microservice/core/utils.mjs +196 -0
  22. package/generators/microservice/core/valueObject.mjs +29 -0
  23. package/generators/microservice/core/xml.mjs +48 -0
  24. package/generators/microservice/index.mjs +38 -0
  25. package/generators/microservice/templates/aggregate/ItemAggregate.cs +9 -0
  26. package/generators/microservice/templates/command/ItemCommand.cs +12 -0
  27. package/generators/microservice/templates/command/ItemCommandHandler.cs +9 -0
  28. package/generators/microservice/templates/consumer/ItemHandler.cs +14 -0
  29. package/generators/microservice/templates/controller/ItemController.cs +8 -0
  30. package/generators/microservice/templates/data-transfer-object/ItemDto.cs +6 -0
  31. package/generators/microservice/templates/domain-event/ItemDomainEvent.cs +15 -0
  32. package/generators/microservice/templates/entity/ItemEntity.cs +6 -0
  33. package/generators/microservice/templates/errors/Error.cs +6 -0
  34. package/generators/microservice/templates/grpc/ItemService.cs +6 -0
  35. package/generators/microservice/templates/grpc/grpc.proto +22 -0
  36. package/generators/microservice/templates/microservice/.dockerignore +30 -0
  37. package/generators/microservice/templates/microservice/CodeDesignPlus.Net.Microservice.sln +155 -0
  38. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/CodeDesignPlus.Net.Microservice.Application.csproj +20 -0
  39. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Errors.cs +10 -0
  40. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/AddProductToOrder/AddProductToOrderCommand.cs +17 -0
  41. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/AddProductToOrder/AddProductToOrderCommandHandler.cs +27 -0
  42. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/CancelOrder/CancelOrderCommand.cs +13 -0
  43. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/CancelOrder/CancelOrderCommandHandler.cs +24 -0
  44. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/CompleteOrder/CompleteOrderCommand.cs +11 -0
  45. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/CompleteOrder/CompleteOrderCommandHandler.cs +25 -0
  46. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/CreateOrder/CreateOrderCommand.cs +32 -0
  47. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/CreateOrder/CreateOrderCommandHandler.cs +24 -0
  48. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/RemoveProduct/RemoveProductCommand.cs +12 -0
  49. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/RemoveProduct/RemoveProductCommandHandler.cs +22 -0
  50. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/UpdateQuantityProduct/UpdateQuantityProductCommand.cs +14 -0
  51. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/UpdateQuantityProduct/UpdateQuantityProductCommandHandler.cs +24 -0
  52. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/DataTransferObjects/AddressDto.cs +11 -0
  53. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/DataTransferObjects/ClientDto.cs +9 -0
  54. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/DataTransferObjects/OrderDto.cs +18 -0
  55. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/DataTransferObjects/ProductDto.cs +10 -0
  56. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Queries/FindOrderById/FindOrderByIdQuery.cs +4 -0
  57. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Queries/FindOrderById/FindOrderByIdQueryHandler.cs +23 -0
  58. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Queries/GetAllOrders/GetAllOrdersQuery.cs +3 -0
  59. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Queries/GetAllOrders/GetAllOrdersQueryHandler.cs +18 -0
  60. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Setup/MapsterConfig.cs +26 -0
  61. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Startup.cs +15 -0
  62. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Usings.cs +18 -0
  63. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/CodeDesignPlus.Net.Microservice.Domain.csproj +11 -0
  64. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DataTransferObjects/AddProductToOrderParams.cs +15 -0
  65. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DataTransferObjects/CancelOrderParams.cs +13 -0
  66. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DataTransferObjects/CompleteOrderParams.cs +12 -0
  67. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DataTransferObjects/RemoveProductFromOrderParams.cs +11 -0
  68. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DataTransferObjects/UpdateQuantityProductParams.cs +12 -0
  69. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DomainEvents/OrderCancelledDomainEvent.cs +21 -0
  70. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DomainEvents/OrderCompletedDomainEvent.cs +18 -0
  71. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DomainEvents/OrderCreatedDomainEvent.cs +44 -0
  72. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DomainEvents/ProductAddedToOrderDomainEvent.cs +20 -0
  73. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DomainEvents/ProductQuantityUpdatedDomainEvent.cs +20 -0
  74. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DomainEvents/ProductRemovedFromOrderDomainEvent.cs +18 -0
  75. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/Entities/ProductEntity.cs +10 -0
  76. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/Enums/OrderStatus.cs +10 -0
  77. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/Errors.cs +28 -0
  78. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/OrderAggregate.cs +124 -0
  79. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/Repositories/IOrderRepository.cs +14 -0
  80. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/Startup.cs +12 -0
  81. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/Usings.cs +11 -0
  82. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/ValueObjects/AddressValueObject.cs +30 -0
  83. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/ValueObjects/ClientValueObject.cs +27 -0
  84. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Infrastructure/CodeDesignPlus.Net.Microservice.Infrastructure.csproj +13 -0
  85. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Infrastructure/Errors.cs +6 -0
  86. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Infrastructure/Repositories/OrderRepository.cs +109 -0
  87. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Infrastructure/Startup.cs +10 -0
  88. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Infrastructure/Usings.cs +15 -0
  89. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.AsyncWorker/CodeDesignPlus.Net.Microservice.AsyncWorker.csproj +31 -0
  90. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.AsyncWorker/Program.cs +41 -0
  91. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.AsyncWorker/Properties/launchSettings.json +15 -0
  92. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.AsyncWorker/Usings.cs +10 -0
  93. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.AsyncWorker/appsettings.Development.json +2 -0
  94. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.AsyncWorker/appsettings.json +129 -0
  95. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/CodeDesignPlus.Net.Microservice.Rest.csproj +36 -0
  96. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/CodeDesignPlus.Net.Microservice.Rest.csproj.user +11 -0
  97. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/Controllers/OrderController.cs +138 -0
  98. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/Core/Mapster/MapsterConfig.cs +12 -0
  99. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/Dockerfile +37 -0
  100. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/Program.cs +52 -0
  101. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/Properties/launchSettings.json +26 -0
  102. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/Usings.cs +22 -0
  103. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/appsettings.Development.json +3 -0
  104. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/appsettings.json +86 -0
  105. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/CodeDesignPlus.Net.Microservice.gRpc.csproj +35 -0
  106. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/CodeDesignPlus.Net.Microservice.gRpc.csproj.user +9 -0
  107. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/Core/Mapster/MapsterConfig.cs +13 -0
  108. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/Program.cs +61 -0
  109. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/Properties/launchSettings.json +23 -0
  110. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/Protos/orders.proto +66 -0
  111. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/Services/OrderService.cs +29 -0
  112. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/Usings.cs +12 -0
  113. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/appsettings.Development.json +3 -0
  114. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/appsettings.json +92 -0
  115. package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.AsyncWorker.Test/CodeDesignPlus.Net.Microservice.AsyncWorker.Test.csproj +35 -0
  116. package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.AsyncWorker.Test/Properties/launchSettings.json +12 -0
  117. package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.AsyncWorker.Test/Usings.cs +8 -0
  118. package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.Rest.Test/CodeDesignPlus.Net.Microservice.Rest.Test.csproj +36 -0
  119. package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.Rest.Test/Controllers/OrderControllerTest.cs +337 -0
  120. package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.Rest.Test/Properties/launchSettings.json +12 -0
  121. package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.Rest.Test/Usings.cs +8 -0
  122. package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.gRpc.Test/CodeDesignPlus.Net.Microservice.gRpc.Test.csproj +46 -0
  123. package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.gRpc.Test/Protos/orders.proto +65 -0
  124. package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.gRpc.Test/Services/OrdersServiceTest.cs +64 -0
  125. package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.gRpc.Test/Usings.cs +7 -0
  126. package/generators/microservice/templates/microservice/tests/load/load-rest.js +63 -0
  127. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/CodeDesignPlus.Net.Microservice.Application.Test.csproj +34 -0
  128. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/AddProductToOrder/AddProductToOrderCommandHandlerTest.cs +98 -0
  129. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/AddProductToOrder/AddProductToOrderCommandTest.cs +84 -0
  130. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/CancelOrder/CancelOrderCommandHandlerTest.cs +74 -0
  131. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/CancelOrder/CancelOrderCommandTest.cs +43 -0
  132. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/CompleteOrder/CompleteOrderCommandHandlerTest.cs +74 -0
  133. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/CompleteOrder/CompleteOrderCommandTest.cs +32 -0
  134. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/CreateOrder/CreateOrderCommandHandlerTest.cs +100 -0
  135. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/CreateOrder/CreateOrderCommandTest.cs +122 -0
  136. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/RemoveProduct/RemoveProductCommandHandlerTest.cs +71 -0
  137. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/RemoveProduct/RemoveProductCommandTest.cs +33 -0
  138. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/UpdateQuantityProduct/UpdateQuantityProductCommandHandlerTest.cs +82 -0
  139. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/UpdateQuantityProduct/UpdateQuantityProductCommandTest.cs +51 -0
  140. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Queries/FindOrderById/FindOrderByIdQueryHandlerTest.cs +70 -0
  141. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Queries/GetAllOrders/GetAllOrdersQueryHandlerTest.cs +80 -0
  142. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Setup/MapsterConfigTest.cs +20 -0
  143. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Usings.cs +18 -0
  144. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.AsyncWorker.Test/CodeDesignPlus.Net.Microservice.AsyncWorker.Test.csproj +38 -0
  145. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.AsyncWorker.Test/Usings.cs +9 -0
  146. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/CodeDesignPlus.Net.Microservice.Default.Test.csproj +35 -0
  147. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Usings.cs +6 -0
  148. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/AggregateTest.cs +37 -0
  149. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/CommandsTests.cs +29 -0
  150. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/DataTransferObjectTest.cs +47 -0
  151. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/DomainEventTest.cs +42 -0
  152. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/EntityTest.cs +25 -0
  153. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/ErrorsTest.cs +55 -0
  154. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/QueryTests.cs +29 -0
  155. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/StartupTest.cs +43 -0
  156. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Domain.Test/CodeDesignPlus.Net.Microservice.Domain.Test.csproj +38 -0
  157. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Domain.Test/DomainEvents/OrderCancelledDomainEventTest.cs +46 -0
  158. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Domain.Test/OrderAggregateTest.cs +518 -0
  159. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Domain.Test/Usings.cs +7 -0
  160. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Infrastructure.Test/CodeDesignPlus.Net.Microservice.Infrastructure.Test.csproj +34 -0
  161. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Infrastructure.Test/Repositories/OrderRepositoryTest.cs +259 -0
  162. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Infrastructure.Test/Usings.cs +14 -0
  163. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Rest.Test/CodeDesignPlus.Net.Microservice.Rest.Test.csproj +40 -0
  164. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Rest.Test/Controllers/OrderControllerTest.cs +189 -0
  165. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Rest.Test/Core/Mapster/MapsterConfigTest.cs +19 -0
  166. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Rest.Test/Usings.cs +14 -0
  167. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.gRpc.Test/CodeDesignPlus.Net.Microservice.gRpc.Test.csproj +39 -0
  168. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.gRpc.Test/Core/Mapster/MapsterConfigTest.cs +19 -0
  169. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.gRpc.Test/Services/OrderServiceTest.cs +72 -0
  170. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.gRpc.Test/Usings.cs +15 -0
  171. package/generators/microservice/templates/microservice/tools/convert-crlf-to-lf.sh +6 -0
  172. package/generators/microservice/templates/microservice/tools/sonarqube/sonar.ps1 +18 -0
  173. package/generators/microservice/templates/microservice/tools/sonarqube/sonar.sh +18 -0
  174. package/generators/microservice/templates/microservice/tools/update-packages/update-packages.ps1 +10 -0
  175. package/generators/microservice/templates/microservice/tools/update-packages/update-packages.sh +11 -0
  176. package/generators/microservice/templates/microservice/tools/upgrade-dotnet/upgrade-assistant.ps1 +10 -0
  177. package/generators/microservice/templates/microservice/tools/upgrade-dotnet/upgrade-assistant.sh +11 -0
  178. package/generators/microservice/templates/microservice/tools/vault/config-vault.ps1 +178 -0
  179. package/generators/microservice/templates/microservice/tools/vault/config-vault.sh +152 -0
  180. package/generators/microservice/templates/others/MapsterConfig.cs +9 -0
  181. package/generators/microservice/templates/query/ItemQuery.cs +4 -0
  182. package/generators/microservice/templates/query/ItemQueryHandler.cs +9 -0
  183. package/generators/microservice/templates/repository/IItemRepository.cs +6 -0
  184. package/generators/microservice/templates/repository/ItemRepository.cs +7 -0
  185. package/generators/microservice/templates/value-object/ItemValueObject.cs +23 -0
  186. package/generators/microservice/types/aggregate.mjs +19 -0
  187. package/generators/microservice/types/appsettings.mjs +26 -0
  188. package/generators/microservice/types/base.mjs +24 -0
  189. package/generators/microservice/types/command.mjs +38 -0
  190. package/generators/microservice/types/consumer.mjs +21 -0
  191. package/generators/microservice/types/controller.mjs +20 -0
  192. package/generators/microservice/types/dataTransferObject.mjs +19 -0
  193. package/generators/microservice/types/domainEvents.mjs +22 -0
  194. package/generators/microservice/types/entity.mjs +21 -0
  195. package/generators/microservice/types/index.mjs +25 -0
  196. package/generators/microservice/types/proto.mjs +19 -0
  197. package/generators/microservice/types/query.mjs +38 -0
  198. package/generators/microservice/types/repository.mjs +21 -0
  199. package/generators/microservice/types/valueObject.mjs +23 -0
  200. package/package.json +70 -0
@@ -0,0 +1,71 @@
1
+ using CodeDesignPlus.Net.Microservice.Application.Order.Commands.RemoveProduct;
2
+ using CodeDesignPlus.Net.Microservice.Domain.ValueObjects;
3
+
4
+ namespace CodeDesignPlus.Net.Microservice.Application.Test.Order.Commands.RemoveProduct;
5
+
6
+ public class RemoveProductCommandHandlerTest
7
+ {
8
+ private readonly IUserContext user;
9
+
10
+ public RemoveProductCommandHandlerTest()
11
+ {
12
+ var userMock = new Mock<IUserContext>();
13
+
14
+ userMock.Setup(x => x.IdUser).Returns(Guid.NewGuid());
15
+ userMock.Setup(x => x.Tenant).Returns(Guid.NewGuid());
16
+
17
+ this.user = userMock.Object;
18
+ }
19
+
20
+ [Fact]
21
+ public async Task Handle_OrderNotFound_ThrowApplicaionException()
22
+ {
23
+ // Arrange
24
+ var orderRepository = new Mock<IOrderRepository>();
25
+ var pubsub = new Mock<IPubSub>();
26
+ var handler = new RemoveProductCommandHandler(orderRepository.Object, user, pubsub.Object);
27
+ var request = new RemoveProductCommand(Guid.NewGuid(), Guid.NewGuid());
28
+
29
+ orderRepository.Setup(x => x.FindAsync(It.IsAny<Guid>(), It.IsAny<CancellationToken>()))!.ReturnsAsync((OrderAggregate)null!);
30
+
31
+ // Act
32
+ var exception = await Assert.ThrowsAsync<CodeDesignPlusException>(() => handler.Handle(request, CancellationToken.None));
33
+
34
+ // Assert
35
+ Assert.Equal(Errors.OrderNotFound.GetMessage(), exception.Message);
36
+ }
37
+
38
+ [Fact]
39
+ public async Task Handle_Success()
40
+ {
41
+ // Arrange
42
+ var orderRepository = new Mock<IOrderRepository>();
43
+ var pubsub = new Mock<IPubSub>();
44
+ var handler = new RemoveProductCommandHandler(orderRepository.Object, user, pubsub.Object);
45
+ var request = new RemoveProductCommand(Guid.NewGuid(), Guid.NewGuid());
46
+ var clientValueObject = ClientValueObject.Create(Guid.NewGuid(), "Client", "1234567890", "CC");
47
+ var addressValueObject = AddressValueObject.Create("Colombia", "Bogota", "Bogota", "Calle 123", 123456);
48
+
49
+ var order = OrderAggregate.Create(Guid.NewGuid(), clientValueObject, addressValueObject, this.user.Tenant, this.user.IdUser);
50
+
51
+ order.Products.Add(new ProductEntity()
52
+ {
53
+ Id = request.ProductId,
54
+ Name = "Product",
55
+ Price = 100,
56
+ Quantity = 1
57
+ });
58
+
59
+ orderRepository.Setup(x => x.FindAsync(It.IsAny<Guid>(), It.IsAny<CancellationToken>()))!.ReturnsAsync(order);
60
+
61
+ // Act
62
+ await handler.Handle(request, CancellationToken.None);
63
+
64
+ // Assert
65
+ Assert.NotNull(order.UpdatedAt);
66
+ Assert.Equal(this.user.IdUser, order.UpdatedBy);
67
+ orderRepository.Verify(x => x.RemoveProductFromOrderAsync(It.IsAny<RemoveProductFromOrderParams>(), It.IsAny<CancellationToken>()), Times.Once);
68
+ pubsub.Verify(x => x.PublishAsync(It.IsAny<IReadOnlyList<IDomainEvent>>(), It.IsAny<CancellationToken>()), Times.Once);
69
+ }
70
+
71
+ }
@@ -0,0 +1,33 @@
1
+ using CodeDesignPlus.Net.Microservice.Application.Order.Commands.RemoveProduct;
2
+
3
+ namespace CodeDesignPlus.Net.Microservice.Application.Test.Order.Commands.RemoveProduct;
4
+
5
+ public class RemoveProductCommandTest
6
+ {
7
+
8
+ private readonly Validator _validator;
9
+
10
+ public RemoveProductCommandTest()
11
+ {
12
+ _validator = new Validator();
13
+ }
14
+
15
+ [Fact]
16
+ public async Task Should_Have_Error_When_Id_Is_Empty()
17
+ {
18
+ var command = new RemoveProductCommand(Guid.Empty, Guid.NewGuid());
19
+ var result = await _validator.ValidateAsync(command);
20
+
21
+ Assert.Contains(result.Errors, x => x.PropertyName == nameof(command.Id) && !string.IsNullOrEmpty(x.ErrorMessage));
22
+ }
23
+
24
+ [Fact]
25
+ public async Task Should_Have_Error_When_ProductId_Is_Empty()
26
+ {
27
+ var command = new RemoveProductCommand(Guid.NewGuid(), Guid.Empty);
28
+ var result = await _validator.ValidateAsync(command);
29
+
30
+ Assert.Contains(result.Errors, x => x.PropertyName == nameof(command.ProductId) && !string.IsNullOrEmpty(x.ErrorMessage));
31
+ }
32
+
33
+ }
@@ -0,0 +1,82 @@
1
+ using CodeDesignPlus.Net.Microservice.Application.Order.Commands.UpdateQuantityProduct;
2
+ using CodeDesignPlus.Net.Microservice.Domain.ValueObjects;
3
+
4
+ namespace CodeDesignPlus.Net.Microservice.Application.Test.Order.Commands.UpdateQuantityProduct;
5
+
6
+ public class UpdateQuantityProductCommandHandlerTest
7
+ {
8
+ private readonly IUserContext user;
9
+
10
+ public UpdateQuantityProductCommandHandlerTest()
11
+ {
12
+ var userMock = new Mock<IUserContext>();
13
+
14
+ userMock.Setup(x => x.IdUser).Returns(Guid.NewGuid());
15
+ userMock.Setup(x => x.Tenant).Returns(Guid.NewGuid());
16
+
17
+ this.user = userMock.Object;
18
+ }
19
+
20
+ [Fact]
21
+ public async Task Should_Throw_Exception_When_Order_Not_Found()
22
+ {
23
+ // Arrange
24
+ var orderRepository = new Mock<IOrderRepository>();
25
+ var pubsub = new Mock<IPubSub>();
26
+
27
+ var command = new UpdateQuantityProductCommand(Guid.NewGuid(), Guid.NewGuid(), 1);
28
+
29
+ orderRepository.Setup(x => x.FindAsync(It.IsAny<Guid>(), It.IsAny<CancellationToken>()))!.ReturnsAsync(default(OrderAggregate));
30
+
31
+ var handler = new UpdateQuantityProductCommandHandler(orderRepository.Object, this.user, pubsub.Object);
32
+
33
+ // Act
34
+ var exception = await Assert.ThrowsAsync<CodeDesignPlusException>(() => handler.Handle(command, CancellationToken.None));
35
+
36
+ // Assert
37
+ orderRepository.Verify(x => x.FindAsync(It.IsAny<Guid>(), It.IsAny<CancellationToken>()), Times.Once);
38
+ orderRepository.Verify(x => x.UpdateQuantityProductAsync(It.IsAny<UpdateQuantityProductParams>(), It.IsAny<CancellationToken>()), Times.Never);
39
+ pubsub.Verify(x => x.PublishAsync(It.IsAny<IReadOnlyList<IDomainEvent>>(), It.IsAny<CancellationToken>()), Times.Never);
40
+
41
+ Assert.Equal(Errors.OrderNotFound.GetCode(), exception.Code);
42
+ Assert.Equal(Errors.OrderNotFound.GetMessage(), exception.Message);
43
+
44
+ }
45
+
46
+ [Fact]
47
+ public async Task Handler_Success()
48
+ {
49
+ // Arrange
50
+ var orderRepository = new Mock<IOrderRepository>();
51
+ var pubsub = new Mock<IPubSub>();
52
+ var client = ClientValueObject.Create(Guid.NewGuid(), "client", "1234567890", "CC");
53
+ var address = AddressValueObject.Create("Colombia", "Bogota", "Bogota", "Calle 123", 123456);
54
+
55
+ var order = OrderAggregate.Create(Guid.NewGuid(), client, address, this.user.Tenant, this.user.IdUser);
56
+
57
+ order.Products.Add(new ProductEntity()
58
+ {
59
+ Id = Guid.NewGuid(),
60
+ Name = "Product",
61
+ Price = 100,
62
+ Quantity = 1
63
+ });
64
+
65
+ var command = new UpdateQuantityProductCommand(order.Id, order.Products[0].Id, 2);
66
+
67
+ orderRepository.Setup(x => x.FindAsync(It.IsAny<Guid>(), It.IsAny<CancellationToken>()))!.ReturnsAsync(order);
68
+
69
+ var handler = new UpdateQuantityProductCommandHandler(orderRepository.Object, this.user, pubsub.Object);
70
+
71
+ // Act
72
+ await handler.Handle(command, CancellationToken.None);
73
+
74
+ // Assert
75
+ Assert.NotNull(order.UpdatedAt);
76
+ Assert.Equal(this.user.IdUser, order.UpdatedBy);
77
+ orderRepository.Verify(x => x.FindAsync(It.IsAny<Guid>(), It.IsAny<CancellationToken>()), Times.Once);
78
+ orderRepository.Verify(x => x.UpdateQuantityProductAsync(It.IsAny<UpdateQuantityProductParams>(), It.IsAny<CancellationToken>()), Times.Once);
79
+ pubsub.Verify(x => x.PublishAsync(It.IsAny<IReadOnlyList<IDomainEvent>>(), It.IsAny<CancellationToken>()), Times.Once);
80
+ }
81
+
82
+ }
@@ -0,0 +1,51 @@
1
+ using CodeDesignPlus.Net.Microservice.Application.Order.Commands.UpdateQuantityProduct;
2
+
3
+ namespace CodeDesignPlus.Net.Microservice.Application.Test.Order.Commands.UpdateQuantityProduct;
4
+
5
+ public class UpdateQuantityProductCommandTest
6
+ {
7
+
8
+ private readonly Validator _validator;
9
+
10
+ public UpdateQuantityProductCommandTest()
11
+ {
12
+ _validator = new Validator();
13
+ }
14
+
15
+ [Fact]
16
+ public async Task Should_Have_Error_When_Id_Is_Empty()
17
+ {
18
+ var command = new UpdateQuantityProductCommand(Guid.Empty, Guid.NewGuid(), 1);
19
+ var result = await _validator.ValidateAsync(command);
20
+
21
+ Assert.Contains(result.Errors, x => x.PropertyName == nameof(command.Id) && !string.IsNullOrEmpty(x.ErrorMessage));
22
+ }
23
+
24
+ [Fact]
25
+ public async Task Should_Have_Error_When_ProductId_Is_Empty()
26
+ {
27
+ var command = new UpdateQuantityProductCommand(Guid.NewGuid(), Guid.Empty, 1);
28
+ var result = await _validator.ValidateAsync(command);
29
+
30
+ Assert.Contains(result.Errors, x => x.PropertyName == nameof(command.ProductId) && !string.IsNullOrEmpty(x.ErrorMessage));
31
+ }
32
+
33
+ [Fact]
34
+ public async Task Should_Have_Error_When_Quantity_Is_Less_Than_One()
35
+ {
36
+ var command = new UpdateQuantityProductCommand(Guid.NewGuid(), Guid.NewGuid(), 0);
37
+ var result = await _validator.ValidateAsync(command);
38
+
39
+ Assert.Contains(result.Errors, x => x.PropertyName == nameof(command.Quantity) && !string.IsNullOrEmpty(x.ErrorMessage));
40
+ }
41
+
42
+ [Fact]
43
+ public async Task Should_Not_Have_Error()
44
+ {
45
+ var command = new UpdateQuantityProductCommand(Guid.NewGuid(), Guid.NewGuid(), 1);
46
+ var result = await _validator.ValidateAsync(command);
47
+
48
+ Assert.Empty(result.Errors);
49
+ }
50
+
51
+ }
@@ -0,0 +1,70 @@
1
+ using CodeDesignPlus.Net.Cache.Abstractions;
2
+ using CodeDesignPlus.Net.Microservice.Application.Order.Queries.FindOrderById;
3
+
4
+ namespace CodeDesignPlus.Net.Microservice.Application.Test.Order.Queries.FindOrderById;
5
+
6
+ public class FindOrderByIdQueryHandlerTest
7
+ {
8
+ [Fact]
9
+ public async Task Handle_ValidId_ReturnsOrderDto()
10
+ {
11
+ // Arrange
12
+ var orderRepository = new Mock<IOrderRepository>();
13
+ var mapper = new Mock<IMapper>();
14
+ var query = new FindOrderByIdQuery(Guid.NewGuid());
15
+ var cancellationToken = new CancellationToken();
16
+ var dtoExpected = new OrderDto();
17
+ var cacheManagerMock = new Mock<ICacheManager>();
18
+
19
+ cacheManagerMock.Setup(x => x.ExistsAsync(It.IsAny<string>())).ReturnsAsync(false);
20
+ cacheManagerMock.Setup(x => x.SetAsync(It.IsAny<string>(), It.IsAny<OrderDto>(), It.IsAny<TimeSpan?>()));
21
+
22
+ mapper.Setup(x => x.Map<OrderDto>(It.IsAny<object>())).Returns(dtoExpected);
23
+
24
+ var handler = new FindOrderByIdQueryHandler(orderRepository.Object, mapper.Object, cacheManagerMock.Object);
25
+
26
+ // Act
27
+ var result = await handler.Handle(query, cancellationToken);
28
+
29
+ // Assert
30
+ Assert.NotNull(result);
31
+ Assert.IsType<OrderDto>(result);
32
+ Assert.Equal(dtoExpected, result);
33
+ orderRepository.Verify(x => x.FindAsync(It.IsAny<Guid>(), It.IsAny<CancellationToken>()), Times.Once);
34
+ mapper.Verify(x => x.Map<OrderDto>(It.IsAny<object>()), Times.Once);
35
+ cacheManagerMock.Verify(x => x.SetAsync(It.IsAny<string>(), It.IsAny<OrderDto>(), It.IsAny<TimeSpan?>()), Times.Once);
36
+ cacheManagerMock.Verify(x => x.ExistsAsync(It.IsAny<string>()), Times.Once);
37
+ }
38
+
39
+
40
+ [Fact]
41
+ public async Task Handle_Cache_ReturnsOrderDto()
42
+ {
43
+ // Arrange
44
+ var orderRepository = new Mock<IOrderRepository>();
45
+ var mapper = new Mock<IMapper>();
46
+ var query = new FindOrderByIdQuery(Guid.NewGuid());
47
+ var cancellationToken = new CancellationToken();
48
+ var dtoExpected = new OrderDto();
49
+ var cacheManagerMock = new Mock<ICacheManager>();
50
+
51
+ cacheManagerMock.Setup(x => x.ExistsAsync(It.IsAny<string>())).ReturnsAsync(true);
52
+ cacheManagerMock.Setup(x => x.GetAsync<OrderDto>(It.IsAny<string>())).ReturnsAsync(dtoExpected);
53
+
54
+ mapper.Setup(x => x.Map<OrderDto>(It.IsAny<object>())).Returns(dtoExpected);
55
+
56
+ var handler = new FindOrderByIdQueryHandler(orderRepository.Object, mapper.Object, cacheManagerMock.Object);
57
+
58
+ // Act
59
+ var result = await handler.Handle(query, cancellationToken);
60
+
61
+ // Assert
62
+ Assert.NotNull(result);
63
+ Assert.IsType<OrderDto>(result);
64
+ Assert.Equal(dtoExpected, result);
65
+ orderRepository.Verify(x => x.FindAsync(It.IsAny<Guid>(), It.IsAny<CancellationToken>()), Times.Never);
66
+ mapper.Verify(x => x.Map<OrderDto>(It.IsAny<object>()), Times.Never);
67
+ cacheManagerMock.Verify(x => x.GetAsync<OrderDto>(It.IsAny<string>()), Times.Once);
68
+ cacheManagerMock.Verify(x => x.ExistsAsync(It.IsAny<string>()), Times.Once);
69
+ }
70
+ }
@@ -0,0 +1,80 @@
1
+ using CodeDesignPlus.Net.Microservice.Application.Order.Queries.GetAllOrders;
2
+
3
+ namespace CodeDesignPlus.Net.Microservice.Application.Test.Order.Queries.GetAllOrders;
4
+
5
+ public class GetAllOrdersQueryHandlerTest
6
+ {
7
+
8
+ [Fact]
9
+ public async Task Handle_Success()
10
+ {
11
+ // Arrange
12
+ var criteria = new C.Criteria();
13
+ var query = new GetAllOrdersQuery(criteria);
14
+ var orders = new List<OrderDto>
15
+ {
16
+ new() {
17
+ Id = Guid.NewGuid(),
18
+ Client = new ClientDto(){
19
+ Name = "Client 1",
20
+ Document = "123456789",
21
+ TypeDocument = "CC",
22
+ Id = Guid.NewGuid()
23
+ },
24
+ CompletedAt = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(),
25
+ CreatedBy = Guid.NewGuid(),
26
+ CreatedAt = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(),
27
+ IsActive = true,
28
+ Products = [
29
+ new(){
30
+ Id = Guid.NewGuid(),
31
+ Name = "Product 1",
32
+ Price = 100,
33
+ Quantity = 1
34
+ }
35
+ ],
36
+
37
+ },
38
+ new() {
39
+ Id = Guid.NewGuid(),
40
+ Client = new ClientDto(){
41
+ Name = "Client 2",
42
+ Document = "987654321",
43
+ TypeDocument = "CC",
44
+ Id = Guid.NewGuid()
45
+ },
46
+ CompletedAt = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(),
47
+ CreatedBy = Guid.NewGuid(),
48
+ CreatedAt = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(),
49
+ IsActive = true,
50
+ Products = [
51
+ new(){
52
+ Id = Guid.NewGuid(),
53
+ Name = "Product 2",
54
+ Price = 200,
55
+ Quantity = 2
56
+ }
57
+ ],
58
+
59
+ }
60
+ };
61
+
62
+ var orderRepositoryMock = new Mock<IOrderRepository>();
63
+ var mapperMock = new Mock<IMapper>();
64
+ var queryHandler = new GetAllOrdersQueryHandler(orderRepositoryMock.Object, mapperMock.Object);
65
+
66
+ mapperMock.Setup(x => x.Map<List<OrderDto>>(It.IsAny<List<OrderAggregate>>())).Returns(orders);
67
+
68
+ // Act
69
+ var result = await queryHandler.Handle(query, CancellationToken.None);
70
+
71
+ // Assert
72
+ Assert.NotNull(result);
73
+ Assert.NotEmpty(result);
74
+ Assert.Equal(orders.Count, result.Count);
75
+
76
+ orderRepositoryMock.Verify(x => x.MatchingAsync<OrderAggregate>(criteria, It.IsAny<CancellationToken>()), Times.Once);
77
+ mapperMock.Verify(x => x.Map<List<OrderDto>>(It.IsAny<List<OrderAggregate>>()), Times.Once);
78
+ }
79
+
80
+ }
@@ -0,0 +1,20 @@
1
+ using CodeDesignPlus.Net.Microservice.Application.Setup;
2
+
3
+ namespace CodeDesignPlus.Net.Microservice.Application.Test.Setup;
4
+
5
+ public class MapsterConfigTest
6
+ {
7
+ [Fact]
8
+ public void Configure_ShouldMapProperties_Success()
9
+ {
10
+ // Arrange
11
+ var config = TypeAdapterConfig.GlobalSettings;
12
+ config.Scan(typeof(MapsterConfigOrder).Assembly);
13
+
14
+ // Act
15
+ var mapper = new Mapper(config);
16
+
17
+ // Assert
18
+ Assert.NotNull(mapper);
19
+ }
20
+ }
@@ -0,0 +1,18 @@
1
+ global using CodeDesignPlus.Net.Core.Abstractions;
2
+ global using CodeDesignPlus.Net.Exceptions.Extensions;
3
+ global using CodeDesignPlus.Net.PubSub.Abstractions;
4
+ global using Moq;
5
+ global using System;
6
+ global using CodeDesignPlus.Net.Security.Abstractions;
7
+ global using CodeDesignPlus.Net.Exceptions;
8
+ global using Mapster;
9
+ global using MapsterMapper;
10
+ global using C = CodeDesignPlus.Net.Core.Abstractions.Models.Criteria;
11
+ global using CodeDesignPlus.Net.Serializers;
12
+
13
+ global using CodeDesignPlus.Net.Microservice.Application.Order.DataTransferObjects;
14
+ global using CodeDesignPlus.Net.Microservice.Domain.Enums;
15
+ global using CodeDesignPlus.Net.Microservice.Domain.Entities;
16
+ global using CodeDesignPlus.Net.Microservice.Domain;
17
+ global using CodeDesignPlus.Net.Microservice.Domain.Repositories;
18
+ global using CodeDesignPlus.Net.Microservice.Domain.DataTransferObjects;
@@ -0,0 +1,38 @@
1
+ <Project Sdk="Microsoft.NET.Sdk">
2
+ <PropertyGroup>
3
+ <TargetFramework>net9.0</TargetFramework>
4
+ <ImplicitUsings>enable</ImplicitUsings>
5
+ <Nullable>enable</Nullable>
6
+ <IsPackable>false</IsPackable>
7
+ <IsTestProject>true</IsTestProject>
8
+ <IsPackable>false</IsPackable>
9
+ <SonarQubeExclude>true</SonarQubeExclude>
10
+ </PropertyGroup>
11
+ <ItemGroup>
12
+ <PackageReference Include="coverlet.msbuild" Version="6.0.3">
13
+ <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
14
+ <PrivateAssets>all</PrivateAssets>
15
+ </PackageReference>
16
+ <PackageReference Include="coverlet.collector" Version="6.0.3">
17
+ <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
18
+ <PrivateAssets>all</PrivateAssets>
19
+ </PackageReference>
20
+ <PackageReference Include="CodeDesignPlus.Net.xUnit.Microservice" Version="0.5.0-beta.60" />
21
+ <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
22
+ <PackageReference Include="Moq" Version="4.20.72" />
23
+ <PackageReference Include="xunit" Version="2.9.2" />
24
+ <PackageReference Include="xunit.runner.visualstudio" Version="3.0.0">
25
+ <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
26
+ <PrivateAssets>all</PrivateAssets>
27
+ </PackageReference>
28
+ </ItemGroup>
29
+ <ItemGroup>
30
+ <Using Include="Xunit" />
31
+ </ItemGroup>
32
+ <ItemGroup>
33
+ <ProjectReference Include="..\..\..\src\entrypoints\CodeDesignPlus.Net.Microservice.AsyncWorker\CodeDesignPlus.Net.Microservice.AsyncWorker.csproj" />
34
+ </ItemGroup>
35
+ <ItemGroup>
36
+ <Folder Include="Consumers\" />
37
+ </ItemGroup>
38
+ </Project>
@@ -0,0 +1,9 @@
1
+ global using CodeDesignPlus.Net.xUnit.Microservice.Utils.Logger;
2
+ global using Microsoft.Extensions.Logging;
3
+ global using Moq;
4
+ global using Newtonsoft.Json;
5
+ global using System;
6
+ global using CodeDesignPlus.Net.Serializers;
7
+
8
+ global using CodeDesignPlus.Net.Microservice.Domain.DomainEvents;
9
+ global using CodeDesignPlus.Net.Microservice.Domain.Entities;
@@ -0,0 +1,35 @@
1
+ <Project Sdk="Microsoft.NET.Sdk">
2
+ <PropertyGroup>
3
+ <TargetFramework>net9.0</TargetFramework>
4
+ <ImplicitUsings>enable</ImplicitUsings>
5
+ <Nullable>enable</Nullable>
6
+ <IsPackable>false</IsPackable>
7
+ </PropertyGroup>
8
+ <ItemGroup>
9
+ <PackageReference Include="CodeDesignPlus.Net.Serializers" Version="0.5.0-beta.60" />
10
+ <PackageReference Include="coverlet.msbuild" Version="6.0.3">
11
+ <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
12
+ <PrivateAssets>all</PrivateAssets>
13
+ </PackageReference>
14
+ <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
15
+ <PackageReference Include="Moq" Version="4.20.72" />
16
+ <PackageReference Include="xunit" Version="2.9.2" />
17
+ <PackageReference Include="xunit.runner.visualstudio" Version="3.0.0">
18
+ <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
19
+ <PrivateAssets>all</PrivateAssets>
20
+ </PackageReference>
21
+ <PackageReference Include="coverlet.collector" Version="6.0.3">
22
+ <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
23
+ <PrivateAssets>all</PrivateAssets>
24
+ </PackageReference>
25
+ </ItemGroup>
26
+ <ItemGroup>
27
+ <PackageReference Include="CodeDesignPlus.Net.xUnit.Microservice" Version="0.5.0-beta.60" />
28
+ </ItemGroup>
29
+ <ItemGroup>
30
+ <ProjectReference Include="..\..\..\src\domain\CodeDesignPlus.Net.Microservice.Infrastructure\CodeDesignPlus.Net.Microservice.Infrastructure.csproj" />
31
+ </ItemGroup>
32
+ <ItemGroup>
33
+ <Folder Include="Validations\" />
34
+ </ItemGroup>
35
+ </Project>
@@ -0,0 +1,6 @@
1
+ global using CodeDesignPlus.Net.xUnit.Microservice.Attributes;
2
+ global using System.Reflection;
3
+ global using CodeDesignPlus.Net.Core.Abstractions;
4
+ global using CodeDesignPlus.Net.xUnit.Microservice.Utils.Reflection;
5
+ global using Xunit;
6
+ // global using CodeDesignPlus.Net.Serializers;
@@ -0,0 +1,37 @@
1
+ namespace CodeDesignPlus.Net.Microservice.Default.Test.Validations;
2
+
3
+ /// <summary>
4
+ /// A class for validating aggregates.
5
+ /// </summary>
6
+ public class AggregateTest
7
+ {
8
+ /// <summary>
9
+ /// Validates that aggregates can be created using the constructor and their properties can be set and retrieved correctly.
10
+ /// </summary>
11
+ [Theory]
12
+ [Aggregate<Domain.Errors>(false)]
13
+ public void Aggregate_Constructor_ShouldSetAndRetrievePropertiesCorrectly(Type aggregate, object instance, Dictionary<ParameterInfo, object> values)
14
+ {
15
+ // Assert
16
+ Assert.NotNull(instance);
17
+
18
+ var value = aggregate.GetProperty(nameof(AggregateRoot.Id))!.GetValue(instance, null);
19
+ var valueExpected = values.First(x => x.Key.Name!.Equals(nameof(AggregateRoot.Id), StringComparison.OrdinalIgnoreCase)).Value;
20
+ Assert.Equal(valueExpected, value);
21
+ }
22
+
23
+ /// <summary>
24
+ /// Validates that aggregates can be created using the named constructor with custom values.
25
+ /// </summary>
26
+ [Theory]
27
+ [Aggregate<Domain.Errors>(true)]
28
+ public void Aggregate_CreateMethod_ShouldCreateInstanceWithCustomValues(Type aggregate, object instance, Dictionary<ParameterInfo, object> values)
29
+ {
30
+ // Assert
31
+ Assert.NotNull(instance);
32
+
33
+ var value = aggregate.GetProperty(nameof(AggregateRoot.Id))!.GetValue(instance, null);
34
+ var valueExpected = values.First(x => x.Key.Name!.Equals(nameof(AggregateRoot.Id), StringComparison.OrdinalIgnoreCase)).Value;
35
+ Assert.Equal(valueExpected, value);
36
+ }
37
+ }
@@ -0,0 +1,29 @@
1
+ namespace CodeDesignPlus.Net.Microservice.Default.Test.Validations;
2
+
3
+ /// <summary>
4
+ /// A class for validating commands.
5
+ /// </summary>
6
+ public class CommandsTests
7
+ {
8
+ /// <summary>
9
+ /// Validates that commands can be created and their properties can be set and retrieved correctly.
10
+ /// </summary>
11
+ [Theory]
12
+ [Command<Application.Errors>]
13
+ public void Commands_GetAndSet_Success(Type command, object instance, Dictionary<ParameterInfo, object> values)
14
+ {
15
+ // Assert
16
+ Assert.NotNull(instance);
17
+
18
+ var properties = command.GetProperties(BindingFlags.Public | BindingFlags.Instance);
19
+
20
+ foreach (var property in properties)
21
+ {
22
+ var value = property.GetValue(instance);
23
+ var valueExpected = values.FirstOrDefault(x => x.Key.Name == property.Name).Value;
24
+
25
+ Assert.NotNull(value);
26
+ Assert.Equal(valueExpected, value);
27
+ }
28
+ }
29
+ }
@@ -0,0 +1,47 @@
1
+ namespace CodeDesignPlus.Net.Microservice.Default.Test.Validations;
2
+
3
+ /// <summary>
4
+ /// A class for validating data transfer objects (DTOs).
5
+ /// </summary>
6
+ public class DataTransferObjectTests
7
+ {
8
+ /// <summary>
9
+ /// Validates that DTOs can be created and their properties can be set and retrieved correctly.
10
+ /// </summary>
11
+ [Theory]
12
+ [DataTransferObject<Application.Errors>]
13
+ public void Dtos_GetAndSet_Application(Type dto, object instance)
14
+ {
15
+ // Assert
16
+ Assert.NotNull(instance);
17
+
18
+ var properties = dto.GetProperties(BindingFlags.Public | BindingFlags.Instance);
19
+
20
+ foreach (var property in properties)
21
+ {
22
+ var value = property.GetValue(instance);
23
+ Assert.NotNull(value);
24
+ Assert.NotEqual(value, property.PropertyType.GetDefaultValue());
25
+ }
26
+ }
27
+
28
+ /// <summary>
29
+ /// Validates that DTOs can be created and their properties can be set and retrieved correctly.
30
+ /// </summary>
31
+ [Theory]
32
+ [DataTransferObject<Domain.Errors>]
33
+ public void Dtos_GetAndSet_Domain(Type dto, object instance)
34
+ {
35
+ // Assert
36
+ Assert.NotNull(instance);
37
+
38
+ var properties = dto.GetProperties(BindingFlags.Public | BindingFlags.Instance);
39
+
40
+ foreach (var property in properties)
41
+ {
42
+ var value = property.GetValue(instance);
43
+ Assert.NotNull(value);
44
+ Assert.NotEqual(value, property.PropertyType.GetDefaultValue());
45
+ }
46
+ }
47
+ }