Skip to content

Commit

Permalink
Merge branch 'refs/heads/develop' into feature/procedural_command
Browse files Browse the repository at this point in the history
  • Loading branch information
GeekTree0101 committed Aug 29, 2021
2 parents d69e4c4 + 1da75a7 commit b8af8d2
Show file tree
Hide file tree
Showing 7 changed files with 116 additions and 11 deletions.
43 changes: 43 additions & 0 deletions internal/converter/copyright.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package converter

import (
"os/exec"
"os/user"
"strings"
)

type Copyright interface {
Get() (string, error)
}

type CopyrightImpl struct {
}

func (c CopyrightImpl) Get() (string, error) {

gitUsername, err := c.getGitUsername()

if err == nil {
return gitUsername, nil
}

user, err := user.Current()

if err == nil {
return user.Username, nil
}

return "", err
}

func (c CopyrightImpl) getGitUsername() (string, error) {

gitCmd := exec.Command("git", "config", "--global", "user.name")
nameBytes, err := gitCmd.Output()

if err == nil && len(nameBytes) > 0 {
return strings.Trim(string(nameBytes), "\n"), nil
}

return "", err
}
41 changes: 41 additions & 0 deletions internal/converter/copyright_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package converter_test

import (
"testing"

"github.com/Geektree0101/clean-swift-scaffold/internal/converter"
)

// MARK: - Test Double

type CopyrightStub struct {
GetSuccessStub string
GetErrorStub error
}

func (c CopyrightStub) Get() (string, error) {

return c.GetSuccessStub, c.GetErrorStub
}

// MARK: - Test Case

func TestCopyright(t *testing.T) {

t.Run("get copyright", func(t *testing.T) {
// given
sut := converter.CopyrightImpl{}

// when
out, err := sut.Get()

// then
if err != nil {
t.Error(err)
}

if len(out) == 0 {
t.Errorf("output should be longer than 0, output: %s", out)
}
})
}
23 changes: 16 additions & 7 deletions internal/converter/header.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,22 @@ import (
)

type HeaderConverter struct {
targetProjectName string
copyright string
date time.Time
copyright Copyright
targetProjectName string
copyrightDefaultValue string
date time.Time
}

func NewHeaderConverter(
copyright Copyright,
config *model.Config,
date time.Time) *HeaderConverter {

return &HeaderConverter{
targetProjectName: config.TargetProjectName,
copyright: config.Copyright,
date: date,
copyright: copyright,
targetProjectName: config.TargetProjectName,
copyrightDefaultValue: config.Copyright,
date: date,
}
}

Expand All @@ -34,12 +37,18 @@ func (header *HeaderConverter) Render(source string, sceneName string) string {

dateStr := fmt.Sprintf("%d/%d/%d", day, month, year)

copyright, err := header.copyright.Get()

if err != nil {
copyright = header.copyrightDefaultValue
}

var replacedSource string = source
replacedSource = strings.ReplaceAll(replacedSource, "__SCENE_NAME__", sceneName)
replacedSource = strings.ReplaceAll(replacedSource, "__TARGET_PROJECT_NAME__", header.targetProjectName)
replacedSource = strings.ReplaceAll(replacedSource, "__DATE__", dateStr)
replacedSource = strings.ReplaceAll(replacedSource, "__YEAR__", strconv.Itoa(year))
replacedSource = strings.ReplaceAll(replacedSource, "__COPYRIGHT__", header.copyright)
replacedSource = strings.ReplaceAll(replacedSource, "__COPYRIGHT__", copyright)

return replacedSource
}
11 changes: 9 additions & 2 deletions internal/converter/header_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,19 @@ func TestHeader(t *testing.T) {
// given
config := model.Config{
TargetProjectName: "Miro",
Copyright: "Geektree0101",
Copyright: "David Ha",
TemplatePath: "",
}

date := time.Date(2020, 10, 12, 0, 0, 0, 0, time.UTC)
sut := converter.NewHeaderConverter(&config, date)
sut := converter.NewHeaderConverter(
CopyrightStub{
GetSuccessStub: "Geektree0101",
GetErrorStub: nil,
},
&config,
date,
)

usecaseName := "ArticleDetail"

Expand Down
6 changes: 5 additions & 1 deletion internal/converter/source_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,18 @@ func createSource() *converter.SourceConverter {

config := &model.Config{
TargetProjectName: "Miro",
Copyright: "Geektree0101",
Copyright: "David Ha",
TemplatePath: "../../templates",
SourceDir: "./Playground/Sources",
TestDir: "./Playground/Tests",
Indentation: 2,
}

header := converter.NewHeaderConverter(
CopyrightStub{
GetSuccessStub: "Geektree0101",
GetErrorStub: nil,
},
config,
date,
)
Expand Down
1 change: 1 addition & 0 deletions internal/gen/generator.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ func (gen *Generator) Run() error {
gen.flag.Name,
strings.Split(gen.flag.UsecasesString, ","),
converter.NewHeaderConverter(
converter.CopyrightImpl{},
config,
today,
),
Expand Down
2 changes: 1 addition & 1 deletion test/ArticleDetailPresenterTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ final class ArticleDetailPresenterTests: XCTestCase {
override func setUp() {
self.presenter = ArticleDetailPresenter()
self.display = ArticleDetailDisplaySpy()
self.presenter.view = self.display
self.presenter.viewController = self.display
}
}

Expand Down

0 comments on commit b8af8d2

Please sign in to comment.