github.com/xzl8028/xenia-server@v0.0.0-20190809101854-18450a97da63/app/job_test.go (about) 1 // Copyright (c) 2017-present Xenia, Inc. All Rights Reserved. 2 // See License.txt for license information. 3 4 package app 5 6 import ( 7 "testing" 8 9 "github.com/xzl8028/xenia-server/model" 10 "github.com/stretchr/testify/require" 11 ) 12 13 func TestGetJob(t *testing.T) { 14 th := Setup(t) 15 defer th.TearDown() 16 17 status := &model.Job{ 18 Id: model.NewId(), 19 Status: model.NewId(), 20 } 21 _, err := th.App.Srv.Store.Job().Save(status) 22 require.Nil(t, err) 23 24 defer th.App.Srv.Store.Job().Delete(status.Id) 25 26 if received, err := th.App.GetJob(status.Id); err != nil { 27 t.Fatal(err) 28 } else if received.Id != status.Id || received.Status != status.Status { 29 t.Fatal("inccorrect job status received") 30 } 31 } 32 33 func TestGetJobByType(t *testing.T) { 34 th := Setup(t) 35 defer th.TearDown() 36 37 jobType := model.NewId() 38 39 statuses := []*model.Job{ 40 { 41 Id: model.NewId(), 42 Type: jobType, 43 CreateAt: 1000, 44 }, 45 { 46 Id: model.NewId(), 47 Type: jobType, 48 CreateAt: 999, 49 }, 50 { 51 Id: model.NewId(), 52 Type: jobType, 53 CreateAt: 1001, 54 }, 55 } 56 57 for _, status := range statuses { 58 _, err := th.App.Srv.Store.Job().Save(status) 59 require.Nil(t, err) 60 defer th.App.Srv.Store.Job().Delete(status.Id) 61 } 62 63 if received, err := th.App.GetJobsByType(jobType, 0, 2); err != nil { 64 t.Fatal(err) 65 } else if len(received) != 2 { 66 t.Fatal("received wrong number of statuses") 67 } else if received[0].Id != statuses[2].Id { 68 t.Fatal("should've received newest job first") 69 } else if received[1].Id != statuses[0].Id { 70 t.Fatal("should've received second newest job second") 71 } 72 73 if received, err := th.App.GetJobsByType(jobType, 2, 2); err != nil { 74 t.Fatal(err) 75 } else if len(received) != 1 { 76 t.Fatal("received wrong number of statuses") 77 } else if received[0].Id != statuses[1].Id { 78 t.Fatal("should've received oldest job last") 79 } 80 }