github.com/kaisenlinux/docker.io@v0.0.0-20230510090727-ea55db55fac7/swarmkit/manager/orchestrator/service_test.go (about) 1 package orchestrator 2 3 import ( 4 "testing" 5 6 "github.com/docker/swarmkit/api" 7 "github.com/stretchr/testify/assert" 8 ) 9 10 // TestIsReplicatedJob tests that IsReplicatedJob only returns true when the 11 // service mod is ReplicatedJob 12 func TestIsReplicatedJob(t *testing.T) { 13 // first, create a spec with no mode, that we can reuse for each subtest. 14 service := &api.Service{ 15 ID: "someService", 16 Spec: api.ServiceSpec{}, 17 } 18 // this might seem like a good use-case for a table-based test, but the 19 // various service modes do not share a common public interface, and so 20 // cannot be easily assigned to the same type 21 22 service.Spec.Mode = &api.ServiceSpec_ReplicatedJob{} 23 assert.Equal(t, IsReplicatedJob(service), true) 24 25 service.Spec.Mode = &api.ServiceSpec_GlobalJob{} 26 assert.Equal(t, IsReplicatedJob(service), false) 27 28 service.Spec.Mode = &api.ServiceSpec_Replicated{} 29 assert.Equal(t, IsReplicatedJob(service), false) 30 31 service.Spec.Mode = &api.ServiceSpec_Global{} 32 assert.Equal(t, IsReplicatedJob(service), false) 33 } 34 35 // TestIsGlobalJob tests that IsGlobalJob only returns true when the 36 // service mod is GlobalJob. This test is pretty much identical to 37 // TestIsReplicatedJob. There is probably a clever DRY solution to encompass 38 // both functions in one test, but these are really braindead simple tests so 39 // it's just easier to cut and paste. 40 func TestIsGlobalJob(t *testing.T) { 41 // first, create a spec with no mode, that we can reuse for each subtest. 42 service := &api.Service{ 43 ID: "someService", 44 Spec: api.ServiceSpec{}, 45 } 46 // this might seem like a good use-case for a table-based test, but the 47 // various service modes do not share a common public interface, and so 48 // cannot be easily assigned to the same type 49 50 service.Spec.Mode = &api.ServiceSpec_ReplicatedJob{} 51 assert.Equal(t, IsGlobalJob(service), false) 52 53 service.Spec.Mode = &api.ServiceSpec_GlobalJob{} 54 assert.Equal(t, IsGlobalJob(service), true) 55 56 service.Spec.Mode = &api.ServiceSpec_Replicated{} 57 assert.Equal(t, IsGlobalJob(service), false) 58 59 service.Spec.Mode = &api.ServiceSpec_Global{} 60 assert.Equal(t, IsGlobalJob(service), false) 61 }