--- /dev/null
+// Code generated by MockGen. DO NOT EDIT.
+// Source: git.tizen.org/tools/boruta/matcher (interfaces: JobsManager)
+
+package requests
+
+import (
+ boruta "git.tizen.org/tools/boruta"
+ workers "git.tizen.org/tools/boruta/workers"
+ gomock "github.com/golang/mock/gomock"
+ reflect "reflect"
+)
+
+// MockJobsManager is a mock of JobsManager interface
+type MockJobsManager struct {
+ ctrl *gomock.Controller
+ recorder *MockJobsManagerMockRecorder
+}
+
+// MockJobsManagerMockRecorder is the mock recorder for MockJobsManager
+type MockJobsManagerMockRecorder struct {
+ mock *MockJobsManager
+}
+
+// NewMockJobsManager creates a new mock instance
+func NewMockJobsManager(ctrl *gomock.Controller) *MockJobsManager {
+ mock := &MockJobsManager{ctrl: ctrl}
+ mock.recorder = &MockJobsManagerMockRecorder{mock}
+ return mock
+}
+
+// EXPECT returns an object that allows the caller to indicate expected use
+func (m *MockJobsManager) EXPECT() *MockJobsManagerMockRecorder {
+ return m.recorder
+}
+
+// Create mocks base method
+func (m *MockJobsManager) Create(arg0 boruta.ReqID, arg1 boruta.WorkerUUID) error {
+ ret := m.ctrl.Call(m, "Create", arg0, arg1)
+ ret0, _ := ret[0].(error)
+ return ret0
+}
+
+// Create indicates an expected call of Create
+func (mr *MockJobsManagerMockRecorder) Create(arg0, arg1 interface{}) *gomock.Call {
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Create", reflect.TypeOf((*MockJobsManager)(nil).Create), arg0, arg1)
+}
+
+// Finish mocks base method
+func (m *MockJobsManager) Finish(arg0 boruta.WorkerUUID) error {
+ ret := m.ctrl.Call(m, "Finish", arg0)
+ ret0, _ := ret[0].(error)
+ return ret0
+}
+
+// Finish indicates an expected call of Finish
+func (mr *MockJobsManagerMockRecorder) Finish(arg0 interface{}) *gomock.Call {
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Finish", reflect.TypeOf((*MockJobsManager)(nil).Finish), arg0)
+}
+
+// Get mocks base method
+func (m *MockJobsManager) Get(arg0 boruta.WorkerUUID) (*workers.Job, error) {
+ ret := m.ctrl.Call(m, "Get", arg0)
+ ret0, _ := ret[0].(*workers.Job)
+ ret1, _ := ret[1].(error)
+ return ret0, ret1
+}
+
+// Get indicates an expected call of Get
+func (mr *MockJobsManagerMockRecorder) Get(arg0 interface{}) *gomock.Call {
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Get", reflect.TypeOf((*MockJobsManager)(nil).Get), arg0)
+}
import (
"errors"
+ "net"
"strconv"
"testing"
"time"
. "git.tizen.org/tools/boruta"
+ "git.tizen.org/tools/boruta/workers"
gomock "github.com/golang/mock/gomock"
"github.com/stretchr/testify/assert"
)
},
}
-func initTest(t *testing.T) (*assert.Assertions, *ReqsCollection, *gomock.Controller) {
+func initTest(t *testing.T) (*assert.Assertions, *ReqsCollection, *gomock.Controller, *MockJobsManager) {
ctrl := gomock.NewController(t)
wm := NewMockWorkersManager(ctrl)
+ jm := NewMockJobsManager(ctrl)
testErr := errors.New("Test Error")
wm.EXPECT().TakeBestMatchingWorker(gomock.Any(), gomock.Any()).Return(WorkerUUID(""), testErr).AnyTimes()
- return assert.New(t), NewRequestQueue(wm, nil), ctrl
+ return assert.New(t), NewRequestQueue(wm, jm), ctrl, jm
}
func finiTest(rqueue *ReqsCollection, ctrl *gomock.Controller) {
}
func TestNewRequestQueue(t *testing.T) {
- assert, rqueue, ctrl := initTest(t)
+ assert, rqueue, ctrl, _ := initTest(t)
defer finiTest(rqueue, ctrl)
rqueue.mutex.RLock()
}
func TestNewRequest(t *testing.T) {
- assert, rqueue, ctrl := initTest(t)
+ assert, rqueue, ctrl, _ := initTest(t)
defer finiTest(rqueue, ctrl)
for _, test := range requestsTests {
}
func TestCloseRequest(t *testing.T) {
- assert, rqueue, ctrl := initTest(t)
+ assert, rqueue, ctrl, _ := initTest(t)
defer finiTest(rqueue, ctrl)
req := requestsTests[0].req
}
func TestUpdateRequest(t *testing.T) {
- assert, rqueue, ctrl := initTest(t)
+ assert, rqueue, ctrl, _ := initTest(t)
defer finiTest(rqueue, ctrl)
tmp := requestsTests[0].req
}
func TestGetRequestInfo(t *testing.T) {
- assert, rqueue, ctrl := initTest(t)
+ assert, rqueue, ctrl, _ := initTest(t)
defer finiTest(rqueue, ctrl)
req := requestsTests[0].req
req.Job = nil
}
func TestListRequests(t *testing.T) {
- assert, rqueue, ctrl := initTest(t)
+ assert, rqueue, ctrl, _ := initTest(t)
defer finiTest(rqueue, ctrl)
req := requestsTests[0].req
const reqsCnt = 4
}
func TestAcquireWorker(t *testing.T) {
- assert, rqueue, ctrl := initTest(t)
+ assert, rqueue, ctrl, jm := initTest(t)
defer finiTest(rqueue, ctrl)
+
req := requestsTests[0].req
empty := AccessInfo{}
+ testErr := errors.New("Test Error")
// Add valid request.
reqid, err := rqueue.NewRequest(req.Caps, req.Priority, req.Owner, req.ValidAfter, req.Deadline)
assert.Equal(NotFoundError("Request"), err)
assert.Equal(empty, ainfo)
+ // Try to acquire worker when jobs.Get() fails.
+ jobInfo := JobInfo{
+ WorkerUUID: "Test WorkerUUID",
+ }
+ rqueue.mutex.Lock()
+ rqueue.requests[reqid].Job = &jobInfo
+ rqueue.mutex.Unlock()
+ ignoredJob := &workers.Job{Req: ReqID(0xBAD)}
+ jm.EXPECT().Get(jobInfo.WorkerUUID).Return(ignoredJob, testErr)
+ ainfo, err = rqueue.AcquireWorker(reqid)
+ assert.Equal(testErr, err)
+ assert.Equal(empty, ainfo)
+
// AcquireWorker to succeed needs JobInfo to be set. It also needs to be
// in INPROGRESS state, which was set in the loop.
+ job := &workers.Job{
+ Access: AccessInfo{Addr: &net.TCPAddr{IP: net.IPv4(1, 2, 3, 4)}},
+ }
rqueue.mutex.Lock()
- rqueue.requests[reqid].Job = new(JobInfo)
+ rqueue.requests[reqid].Job = &jobInfo
rqueue.mutex.Unlock()
+ jm.EXPECT().Get(jobInfo.WorkerUUID).Return(job, nil)
ainfo, err = rqueue.AcquireWorker(reqid)
assert.Nil(err)
- assert.Equal(empty, ainfo)
+ assert.Equal(job.Access, ainfo)
}
func TestProlongAccess(t *testing.T) {
- assert, rqueue, ctrl := initTest(t)
+ assert, rqueue, ctrl, _ := initTest(t)
defer finiTest(rqueue, ctrl)
req := requestsTests[0].req