Skip to content

Commit 5674d8a

Browse files
enhancement: added tests
1 parent 6fbf6c2 commit 5674d8a

File tree

2 files changed

+72
-9
lines changed

2 files changed

+72
-9
lines changed

internal/languages/dotnet/frameworks/dotnet-clean-architecture/copier.go

Lines changed: 70 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package dotnetcleanarchitecture
22

33
import (
4+
"errors"
45
"github.com/gertd/go-pluralize"
56
"github.com/iancoleman/strcase"
67
corenode "github.com/intelops/compage/internal/core/node"
@@ -112,12 +113,11 @@ const TestsGlobalUsingsCSFile = "/Tests/Application.Tests/GlobalUsings.cs.tmpl"
112113
const MicroServiceNameSlnFile = "/MicroServiceName.sln.tmpl"
113114

114115
// handlers
115-
const TestsHandlersPath = "/Tests/Application.Tests/Handlers"
116-
const TestsHandlersResourceNameServicePath = "/Tests/Application.Tests/Handlers/ResourceNameService"
116+
const TestsApplicationTestsHandlersPath = "/Tests/Application.Tests/Handlers"
117117
const TestsHandlersCreateResourceNameCommandHandlerTestsCSFile = "/Tests/Application.Tests/Handlers/ResourceNameService/CreateResourceNameCommandHandlerTests.cs.tmpl"
118118
const TestsHandlersDeleteResourceNameCommandHandlerTestsCSFile = "/Tests/Application.Tests/Handlers/ResourceNameService/DeleteResourceNameCommandHandlerTests.cs.tmpl"
119119
const TestsHandlersUpdateResourceNameCommandHandlerTestsCSFile = "/Tests/Application.Tests/Handlers/ResourceNameService/UpdateResourceNameCommandHandlerTests.cs.tmpl"
120-
const TestsHandlersTestsHandlersGetResourceNameByIDQueryHandlerTestsCSFile = "/Tests/Application.Tests/Handlers/ResourceNameService/GetResourceNameByIdQueryHandlerTests.cs.tmpl"
120+
const TestsHandlersGetResourceNameByIDQueryHandlerTestsCSFile = "/Tests/Application.Tests/Handlers/ResourceNameService/GetResourceNameByIdQueryHandlerTests.cs.tmpl"
121121
const TestsHandlersGetAllResourceNamesQueryHandlerTestsCSFile = "/Tests/Application.Tests/Handlers/ResourceNameService/GetAllResourceNamesQueryHandlerTests.cs.tmpl"
122122

123123
// Copier Language specific *Copier
@@ -300,7 +300,7 @@ func (c *Copier) createRestServerDirectories() error {
300300
}
301301

302302
testsDirectory := c.NodeDirectoryName + TestsPath
303-
testsHandlersDirectory := c.NodeDirectoryName + TestsHandlersPath
303+
testsHandlersDirectory := c.NodeDirectoryName + TestsApplicationTestsHandlersPath
304304
if err := utils.CreateDirectories(testsDirectory); err != nil {
305305
log.Errorf("error creating tests directory: %v", err)
306306
return err
@@ -318,9 +318,9 @@ func (c *Copier) copyRestServerResourceFiles(resource *corenode.Resource) error
318318
filePaths := &[]*string{}
319319
var err error
320320
// copy sql files (core)
321-
//if c.IsSQLDB {
322-
// // add files to filePaths and copy them to the generated project
323-
//}
321+
if !c.IsSQLDB || c.SQLDB != "MSSQL" {
322+
return errors.New("only MSSQL is supported")
323+
}
324324

325325
// add files for application
326326
err = c.addApplicationRelatedDirectoriesAndFiles(resource, filePaths)
@@ -350,6 +350,12 @@ func (c *Copier) copyRestServerResourceFiles(resource *corenode.Resource) error
350350
return err
351351
}
352352

353+
// add files for tests
354+
err = c.addTestsRelatedDirectoriesAndFiles(resource, filePaths)
355+
if err != nil {
356+
log.Errorf("error adding tests related directories and files: %v", err)
357+
return err
358+
}
353359
// add resource-specific data to map in c needed for templates.
354360
err = c.addResourceSpecificTemplateData(resource)
355361
if err != nil {
@@ -640,6 +646,63 @@ func (c *Copier) addMicroServiceNameRelatedDirectoriesAndFiles(resource *corenod
640646
return nil
641647
}
642648

649+
func (c *Copier) addTestsRelatedDirectoriesAndFiles(resource *corenode.Resource, filePaths *[]*string) error {
650+
var err error
651+
652+
// create a directory for resource Application.Tests/handlers/ResourceNameService
653+
resourceHandlersResourceNameDirectory := c.NodeDirectoryName + TestsApplicationTestsHandlersPath + "/" + resource.Name + "Service"
654+
if err = utils.CreateDirectories(resourceHandlersResourceNameDirectory); err != nil {
655+
log.Errorf("error creating resource handlers resource name directory: %v", err)
656+
return err
657+
}
658+
// copy tests/Application.Tests/Handlers/ResourceNameService/CreateResourceNameCommandHandlerTests.cs
659+
targetTestsApplicationTestsHandlersResourceNameServiceCreateResourceNameCommandHandlerTestsFileName := resourceHandlersResourceNameDirectory + "/" + "Create" + resource.Name + "CommandHandlerTests.cs"
660+
_, err = utils.CopyFile(targetTestsApplicationTestsHandlersResourceNameServiceCreateResourceNameCommandHandlerTestsFileName, c.TemplatesRootPath+TestsHandlersCreateResourceNameCommandHandlerTestsCSFile)
661+
if err != nil {
662+
log.Errorf("error copying tests application tests handlers resource name service create resource name command handler tests cs file: %v", err)
663+
return err
664+
}
665+
*filePaths = append(*filePaths, &targetTestsApplicationTestsHandlersResourceNameServiceCreateResourceNameCommandHandlerTestsFileName)
666+
667+
// copy tests/Application.Tests/Handlers/ResourceNameService/GetAllResourceNamesQueryHandlerTests.cs
668+
targetTestsApplicationTestsHandlersResourceNameServiceGetAllResourceNamesQueryHandlerTestsFileName := resourceHandlersResourceNameDirectory + "/" + "GetAll" + c.PluralizeClient.Plural(resource.Name) + "QueryHandlerTests.cs"
669+
_, err = utils.CopyFile(targetTestsApplicationTestsHandlersResourceNameServiceGetAllResourceNamesQueryHandlerTestsFileName, c.TemplatesRootPath+TestsHandlersGetAllResourceNamesQueryHandlerTestsCSFile)
670+
if err != nil {
671+
log.Errorf("error copying tests application tests handlers resource name service get all resource names query handler tests cs file: %v", err)
672+
return err
673+
}
674+
*filePaths = append(*filePaths, &targetTestsApplicationTestsHandlersResourceNameServiceGetAllResourceNamesQueryHandlerTestsFileName)
675+
676+
// copy tests/Application.Tests/Handlers/ResourceNameService/GetResourceNameByIdQueryHandlerTests.cs
677+
targetTestsApplicationTestsHandlersResourceNameServiceGetResourceNameByIDQueryHandlerTestsFileName := resourceHandlersResourceNameDirectory + "/" + "Get" + resource.Name + "ByIdQueryHandlerTests.cs"
678+
_, err = utils.CopyFile(targetTestsApplicationTestsHandlersResourceNameServiceGetResourceNameByIDQueryHandlerTestsFileName, c.TemplatesRootPath+TestsHandlersGetResourceNameByIDQueryHandlerTestsCSFile)
679+
if err != nil {
680+
log.Errorf("error copying tests application tests handlers resource name service get resource name by id query handler tests cs file: %v", err)
681+
return err
682+
}
683+
*filePaths = append(*filePaths, &targetTestsApplicationTestsHandlersResourceNameServiceGetResourceNameByIDQueryHandlerTestsFileName)
684+
685+
// copy tests/Application.Tests/Handlers/ResourceNameService/UpdateResourceNameCommandHandlerTests.cs
686+
targetTestsApplicationTestsHandlersResourceNameServiceUpdateResourceNameCommandHandlerTestsFileName := resourceHandlersResourceNameDirectory + "/" + "Update" + resource.Name + "CommandHandlerTests.cs"
687+
_, err = utils.CopyFile(targetTestsApplicationTestsHandlersResourceNameServiceUpdateResourceNameCommandHandlerTestsFileName, c.TemplatesRootPath+TestsHandlersUpdateResourceNameCommandHandlerTestsCSFile)
688+
if err != nil {
689+
log.Errorf("error copying tests application tests handlers resource name service update resource name command handler tests cs file: %v", err)
690+
return err
691+
}
692+
*filePaths = append(*filePaths, &targetTestsApplicationTestsHandlersResourceNameServiceUpdateResourceNameCommandHandlerTestsFileName)
693+
694+
// copy tests/Application.Tests/Handlers/ResourceNameService/DeleteResourceNameCommandHandlerTests.cs
695+
targetTestsApplicationTestsHandlersResourceNameServiceDeleteResourceNameCommandHandlerTestsFileName := resourceHandlersResourceNameDirectory + "/" + "Delete" + resource.Name + "CommandHandlerTests.cs"
696+
_, err = utils.CopyFile(targetTestsApplicationTestsHandlersResourceNameServiceDeleteResourceNameCommandHandlerTestsFileName, c.TemplatesRootPath+TestsHandlersDeleteResourceNameCommandHandlerTestsCSFile)
697+
if err != nil {
698+
log.Errorf("error copying tests application tests handlers resource name service delete resource name command handler tests cs file: %v", err)
699+
return err
700+
}
701+
*filePaths = append(*filePaths, &targetTestsApplicationTestsHandlersResourceNameServiceDeleteResourceNameCommandHandlerTestsFileName)
702+
703+
return nil
704+
}
705+
643706
func (c *Copier) addResourceSpecificTemplateData(resource *corenode.Resource) error {
644707
// make every field public by making its first character capital.
645708
fields := map[string]string{}

test/generator_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1380,7 +1380,7 @@ func TestDotNetCleanArchitectureGenerator(t *testing.T) {
13801380
"language": "dotnet",
13811381
"restConfig": {
13821382
"server": {
1383-
"sqlDB": "SQLite",
1383+
"sqlDB": "MSSQL",
13841384
"port": "5005",
13851385
"resources": [
13861386
{
@@ -1424,7 +1424,7 @@ func TestDotNetCleanArchitectureGenerator(t *testing.T) {
14241424
ProjectJSON: restServerConfigJSON,
14251425
}
14261426
defer func() {
1427-
//_ = os.RemoveAll("/tmp/first-rest-server-project-dotnet")
1427+
_ = os.RemoveAll("/tmp/first-rest-server-project-dotnet")
14281428
}()
14291429

14301430
// retrieve project struct

0 commit comments

Comments
 (0)