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  }