update mock and add register sensor test
This commit is contained in:
parent
f5583b3cd5
commit
8e33f95cb4
3
Makefile
3
Makefile
@ -28,7 +28,7 @@ migrateup:
|
|||||||
.PHONY: mock
|
.PHONY: mock
|
||||||
# Mock database
|
# Mock database
|
||||||
mock:
|
mock:
|
||||||
go run go.uber.org/mock/mockgen@latest -package mock -destination internal/domains/sensors/mock/querier.go $(MOD_NAME)/internal/domains/sensors Repository
|
go run go.uber.org/mock/mockgen@latest -package sensors -destination internal/domains/sensors/repository_mock.go $(MOD_NAME)/internal/domains/sensors Repository
|
||||||
|
|
||||||
.PHONY: test
|
.PHONY: test
|
||||||
# Run tests
|
# Run tests
|
||||||
@ -48,6 +48,7 @@ run-prod:
|
|||||||
.PHONY: lazy-start
|
.PHONY: lazy-start
|
||||||
lazy-start:
|
lazy-start:
|
||||||
# Install dependencies, tools, dockerize containers, run tests and run app.
|
# Install dependencies, tools, dockerize containers, run tests and run app.
|
||||||
|
go mod download
|
||||||
make dockerize-db
|
make dockerize-db
|
||||||
make dockerize-nats
|
make dockerize-nats
|
||||||
make run-prod
|
make run-prod
|
||||||
@ -3,14 +3,13 @@
|
|||||||
//
|
//
|
||||||
// Generated by this command:
|
// Generated by this command:
|
||||||
//
|
//
|
||||||
// mockgen -package mock -destination internal/domains/sensors/mock/querier.go nats-app/internal/domains/sensors Repository
|
// mockgen -package sensors -destination internal/domains/sensors/repository_mock.go nats-app/internal/domains/sensors Repository
|
||||||
//
|
//
|
||||||
|
|
||||||
// Package mock is a generated GoMock package.
|
// Package sensors is a generated GoMock package.
|
||||||
package mock
|
package sensors
|
||||||
|
|
||||||
import (
|
import (
|
||||||
sensors "nats-app/internal/domains/sensors"
|
|
||||||
reflect "reflect"
|
reflect "reflect"
|
||||||
time "time"
|
time "time"
|
||||||
|
|
||||||
@ -42,7 +41,7 @@ func (m *MockRepository) EXPECT() *MockRepositoryMockRecorder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// CreateSensor mocks base method.
|
// CreateSensor mocks base method.
|
||||||
func (m *MockRepository) CreateSensor(s sensors.Sensor) error {
|
func (m *MockRepository) CreateSensor(s Sensor) error {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
ret := m.ctrl.Call(m, "CreateSensor", s)
|
ret := m.ctrl.Call(m, "CreateSensor", s)
|
||||||
ret0, _ := ret[0].(error)
|
ret0, _ := ret[0].(error)
|
||||||
@ -55,11 +54,25 @@ func (mr *MockRepositoryMockRecorder) CreateSensor(s any) *gomock.Call {
|
|||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSensor", reflect.TypeOf((*MockRepository)(nil).CreateSensor), s)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSensor", reflect.TypeOf((*MockRepository)(nil).CreateSensor), s)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CreateSensorData mocks base method.
|
||||||
|
func (m *MockRepository) CreateSensorData(data SensorData) error {
|
||||||
|
m.ctrl.T.Helper()
|
||||||
|
ret := m.ctrl.Call(m, "CreateSensorData", data)
|
||||||
|
ret0, _ := ret[0].(error)
|
||||||
|
return ret0
|
||||||
|
}
|
||||||
|
|
||||||
|
// CreateSensorData indicates an expected call of CreateSensorData.
|
||||||
|
func (mr *MockRepositoryMockRecorder) CreateSensorData(data any) *gomock.Call {
|
||||||
|
mr.mock.ctrl.T.Helper()
|
||||||
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSensorData", reflect.TypeOf((*MockRepository)(nil).CreateSensorData), data)
|
||||||
|
}
|
||||||
|
|
||||||
// ReadAllSensors mocks base method.
|
// ReadAllSensors mocks base method.
|
||||||
func (m *MockRepository) ReadAllSensors() ([]sensors.Sensor, error) {
|
func (m *MockRepository) ReadAllSensors() ([]Sensor, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
ret := m.ctrl.Call(m, "ReadAllSensors")
|
ret := m.ctrl.Call(m, "ReadAllSensors")
|
||||||
ret0, _ := ret[0].([]sensors.Sensor)
|
ret0, _ := ret[0].([]Sensor)
|
||||||
ret1, _ := ret[1].(error)
|
ret1, _ := ret[1].(error)
|
||||||
return ret0, ret1
|
return ret0, ret1
|
||||||
}
|
}
|
||||||
@ -71,10 +84,10 @@ func (mr *MockRepositoryMockRecorder) ReadAllSensors() *gomock.Call {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ReadSensor mocks base method.
|
// ReadSensor mocks base method.
|
||||||
func (m *MockRepository) ReadSensor(sensorID string) (sensors.Sensor, error) {
|
func (m *MockRepository) ReadSensor(sensorID string) (Sensor, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
ret := m.ctrl.Call(m, "ReadSensor", sensorID)
|
ret := m.ctrl.Call(m, "ReadSensor", sensorID)
|
||||||
ret0, _ := ret[0].(sensors.Sensor)
|
ret0, _ := ret[0].(Sensor)
|
||||||
ret1, _ := ret[1].(error)
|
ret1, _ := ret[1].(error)
|
||||||
return ret0, ret1
|
return ret0, ret1
|
||||||
}
|
}
|
||||||
@ -86,10 +99,10 @@ func (mr *MockRepositoryMockRecorder) ReadSensor(sensorID any) *gomock.Call {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ReadSensorValues mocks base method.
|
// ReadSensorValues mocks base method.
|
||||||
func (m *MockRepository) ReadSensorValues(sensorID string, from, to time.Time) ([]sensors.SensorData, error) {
|
func (m *MockRepository) ReadSensorValues(sensorID string, from, to time.Time) ([]SensorData, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
ret := m.ctrl.Call(m, "ReadSensorValues", sensorID, from, to)
|
ret := m.ctrl.Call(m, "ReadSensorValues", sensorID, from, to)
|
||||||
ret0, _ := ret[0].([]sensors.SensorData)
|
ret0, _ := ret[0].([]SensorData)
|
||||||
ret1, _ := ret[1].(error)
|
ret1, _ := ret[1].(error)
|
||||||
return ret0, ret1
|
return ret0, ret1
|
||||||
}
|
}
|
||||||
@ -101,7 +114,7 @@ func (mr *MockRepositoryMockRecorder) ReadSensorValues(sensorID, from, to any) *
|
|||||||
}
|
}
|
||||||
|
|
||||||
// UpdateSensor mocks base method.
|
// UpdateSensor mocks base method.
|
||||||
func (m *MockRepository) UpdateSensor(s sensors.Sensor) error {
|
func (m *MockRepository) UpdateSensor(s Sensor) error {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
ret := m.ctrl.Call(m, "UpdateSensor", s)
|
ret := m.ctrl.Call(m, "UpdateSensor", s)
|
||||||
ret0, _ := ret[0].(error)
|
ret0, _ := ret[0].(error)
|
||||||
79
internal/domains/sensors/service_test.go
Normal file
79
internal/domains/sensors/service_test.go
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
package sensors
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"go.uber.org/mock/gomock"
|
||||||
|
)
|
||||||
|
|
||||||
|
func setup(t *testing.T) (*Service, *MockRepository) {
|
||||||
|
ctrl := gomock.NewController(t)
|
||||||
|
q := NewMockRepository(ctrl)
|
||||||
|
s := NewService(q)
|
||||||
|
return s, q
|
||||||
|
}
|
||||||
|
|
||||||
|
func Test_RegisterSensor(t *testing.T) {
|
||||||
|
type testCase struct {
|
||||||
|
name string
|
||||||
|
given Sensor
|
||||||
|
setupMock func(q *MockRepository, params Sensor)
|
||||||
|
expecErr bool
|
||||||
|
}
|
||||||
|
|
||||||
|
tests := []testCase{
|
||||||
|
{
|
||||||
|
name: "success - registers new sensor",
|
||||||
|
given: Sensor{
|
||||||
|
SensorID: "temp-001",
|
||||||
|
SensorType: Temperature,
|
||||||
|
SamplingInterval: ptr(time.Minute),
|
||||||
|
ThresholdAbove: ptr(100.0),
|
||||||
|
ThresholdBelow: ptr(0.0),
|
||||||
|
},
|
||||||
|
setupMock: func(q *MockRepository, params Sensor) {
|
||||||
|
q.EXPECT().CreateSensor(params).Return(nil)
|
||||||
|
},
|
||||||
|
expecErr: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "error - sensor already exists",
|
||||||
|
given: Sensor{
|
||||||
|
SensorID: "temp-001",
|
||||||
|
SensorType: Temperature,
|
||||||
|
SamplingInterval: ptr(time.Minute),
|
||||||
|
ThresholdAbove: ptr(100.0),
|
||||||
|
ThresholdBelow: ptr(0.0),
|
||||||
|
},
|
||||||
|
setupMock: func(q *MockRepository, params Sensor) {
|
||||||
|
q.EXPECT().CreateSensor(params).Return(ErrSensorAlreadyExists)
|
||||||
|
},
|
||||||
|
expecErr: true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
s, q := setup(t)
|
||||||
|
|
||||||
|
tt.setupMock(q, tt.given)
|
||||||
|
|
||||||
|
err := s.RegisterSensor(tt.given)
|
||||||
|
|
||||||
|
if tt.expecErr && err == nil {
|
||||||
|
t.Error("expected error, got nil")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if !tt.expecErr && err != nil {
|
||||||
|
t.Errorf("expected no error, got %v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if tt.expecErr && err != ErrSensorAlreadyExists {
|
||||||
|
t.Errorf("expected ErrSensorAlreadyExists, got %v", err)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user