Skip to content
This repository has been archived by the owner on Feb 27, 2023. It is now read-only.

Commit

Permalink
Merge pull request #101 from duck8823/maintenance/test_packages
Browse files Browse the repository at this point in the history
Separate test packages
  • Loading branch information
duck8823 committed Sep 8, 2018
2 parents 9a4995b + 30ec9c6 commit 8aa75de
Show file tree
Hide file tree
Showing 5 changed files with 69 additions and 25 deletions.
9 changes: 9 additions & 0 deletions application/service/logstore/export_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package logstore

import "github.com/duck8823/duci/infrastructure/store"

type StoreServiceImpl = storeServiceImpl

func (s *storeServiceImpl) SetDB(db store.Store) {
s.db = db
}
22 changes: 14 additions & 8 deletions application/service/logstore/store_test.go
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package logstore
package logstore_test

import (
"bytes"
"encoding/json"
"errors"
"github.com/duck8823/duci/application/service/logstore"
"github.com/duck8823/duci/data/model"
"github.com/duck8823/duci/infrastructure/store"
"github.com/duck8823/duci/infrastructure/store/mock_store"
Expand All @@ -16,10 +17,10 @@ import (

func TestNewStoreService(t *testing.T) {
// when
actual, err := New()
actual, err := logstore.New()

// then
if _, ok := actual.(*storeServiceImpl); !ok {
if _, ok := actual.(*logstore.StoreServiceImpl); !ok {
t.Error("must be a Service, but not.")
}

Expand All @@ -33,7 +34,8 @@ func TestStoreServiceImpl_Append(t *testing.T) {
ctrl := gomock.NewController(t)
mockStore := mock_store.NewMockStore(ctrl)

service := &storeServiceImpl{mockStore}
service := &logstore.StoreServiceImpl{}
service.SetDB(mockStore)
t.Run("when store returns correct data", func(t *testing.T) {
// given
jst, err := time.LoadLocation("Asia/Tokyo")
Expand Down Expand Up @@ -227,7 +229,8 @@ func TestStoreServiceImpl_Get(t *testing.T) {
ctrl := gomock.NewController(t)
mockStore := mock_store.NewMockStore(ctrl)

service := &storeServiceImpl{mockStore}
service := &logstore.StoreServiceImpl{}
service.SetDB(mockStore)
t.Run("with error", func(t *testing.T) {
// setup
id, err := uuid.NewRandom()
Expand Down Expand Up @@ -328,7 +331,8 @@ func TestStoreServiceImpl_Start(t *testing.T) {
ctrl := gomock.NewController(t)
mockStore := mock_store.NewMockStore(ctrl)

service := &storeServiceImpl{mockStore}
service := &logstore.StoreServiceImpl{}
service.SetDB(mockStore)
t.Run("when put success", func(t *testing.T) {
// given
id, err := uuid.NewRandom()
Expand Down Expand Up @@ -386,7 +390,8 @@ func TestStoreServiceImpl_Finish(t *testing.T) {
ctrl := gomock.NewController(t)
mockStore := mock_store.NewMockStore(ctrl)

service := &storeServiceImpl{mockStore}
service := &logstore.StoreServiceImpl{}
service.SetDB(mockStore)
t.Run("with error", func(t *testing.T) {
// setup
id, err := uuid.NewRandom()
Expand Down Expand Up @@ -523,7 +528,8 @@ func TestStoreServiceImpl_Close(t *testing.T) {
ctrl := gomock.NewController(t)
mockStore := mock_store.NewMockStore(ctrl)

service := &storeServiceImpl{mockStore}
service := &logstore.StoreServiceImpl{}
service.SetDB(mockStore)
t.Run("with error", func(t *testing.T) {
// given
mockStore.EXPECT().
Expand Down
2 changes: 1 addition & 1 deletion application/service/runner/runner_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -833,4 +833,4 @@ func cloneSuccess(_ interface{}, dir string, _, _, _ interface{}) error {
dockerfile.WriteString("FROM alpine\nENTRYPOINT [\"echo\"]")

return nil
}
}
22 changes: 22 additions & 0 deletions infrastructure/docker/export_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package docker

import (
"bufio"
"time"
)

func SetNowFunc(f func() time.Time) {
now = f
}

type BuildLogger = buildLogger

func (l *buildLogger) SetReader(r *bufio.Reader) {
l.reader = r
}

type RunLogger = runLogger

func (l *runLogger) SetReader(r *bufio.Reader) {
l.reader = r
}
39 changes: 23 additions & 16 deletions infrastructure/docker/log_test.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package docker
package docker_test

import (
"bufio"
"bytes"
"github.com/duck8823/duci/infrastructure/docker"
"reflect"
"strings"
"testing"
Expand All @@ -15,17 +16,19 @@ func TestBuildLogger_ReadLine(t *testing.T) {
if err != nil {
t.Fatalf("error occurred: %+v", err)
}
date := time.Date(2020, time.December, 4, 4, 32, 12, 3, jst)

now = func() time.Time {
return time.Date(2020, time.December, 4, 4, 32, 12, 3, jst)
}
docker.SetNowFunc(func() time.Time {
return date
})

// and
reader := bufio.NewReader(strings.NewReader("{\"stream\":\"Hello World.\"}"))
logger := &buildLogger{reader: reader}
logger := &docker.BuildLogger{}
logger.SetReader(reader)

// and
expected := &LogLine{Timestamp: now(), Message: []byte("Hello World.")}
expected := &docker.LogLine{Timestamp: date, Message: []byte("Hello World.")}

// when
actual, err := logger.ReadLine()
Expand All @@ -41,7 +44,7 @@ func TestBuildLogger_ReadLine(t *testing.T) {
}

// cleanup
now = time.Now
docker.SetNowFunc(time.Now)
}

func TestRunLogger_ReadLine(t *testing.T) {
Expand All @@ -50,19 +53,21 @@ func TestRunLogger_ReadLine(t *testing.T) {
if err != nil {
t.Fatalf("error occurred: %+v", err)
}
date := time.Date(2020, time.December, 4, 4, 32, 12, 3, jst)

now = func() time.Time {
return time.Date(2020, time.December, 4, 4, 32, 12, 3, jst)
}
docker.SetNowFunc(func() time.Time {
return date
})

t.Run("with correct format", func(t *testing.T) {
// given
prefix := []byte{1, 0, 0, 0, 9, 9, 9, 9}
reader := bufio.NewReader(bytes.NewReader(append(prefix, 'H', 'e', 'l', 'l', 'o')))
logger := &runLogger{reader: reader}
logger := &docker.RunLogger{}
logger.SetReader(reader)

// and
expected := &LogLine{Timestamp: now(), Message: []byte("Hello")}
expected := &docker.LogLine{Timestamp: date, Message: []byte("Hello")}

// when
actual, err := logger.ReadLine()
Expand All @@ -82,7 +87,8 @@ func TestRunLogger_ReadLine(t *testing.T) {
// given
prefix := []byte{0, 0, 0, 0, 9, 9, 9, 9}
reader := bufio.NewReader(bytes.NewReader(append(prefix, 'H', 'e', 'l', 'l', 'o')))
logger := &runLogger{reader: reader}
logger := &docker.RunLogger{}
logger.SetReader(reader)

// when
actual, err := logger.ReadLine()
Expand All @@ -101,10 +107,11 @@ func TestRunLogger_ReadLine(t *testing.T) {
t.Run("when too short", func(t *testing.T) {
// given
reader := bufio.NewReader(bytes.NewReader([]byte{'H', 'e', 'l', 'l', 'o'}))
logger := &runLogger{reader: reader}
logger := &docker.RunLogger{}
logger.SetReader(reader)

// and
expected := &LogLine{Timestamp: now(), Message: []byte{}}
expected := &docker.LogLine{Timestamp: date, Message: []byte{}}

// when
actual, err := logger.ReadLine()
Expand All @@ -121,5 +128,5 @@ func TestRunLogger_ReadLine(t *testing.T) {
})

// cleanup
now = time.Now
docker.SetNowFunc(time.Now)
}

0 comments on commit 8aa75de

Please sign in to comment.