1package api 2 3import ( 4 "testing" 5 "time" 6 7 "github.com/stretchr/testify/assert" 8) 9 10// TestService_CheckRestart asserts Service.CheckRestart settings are properly 11// inherited by Checks. 12func TestService_CheckRestart(t *testing.T) { 13 job := &Job{Name: stringToPtr("job")} 14 tg := &TaskGroup{Name: stringToPtr("group")} 15 task := &Task{Name: "task"} 16 service := &Service{ 17 CheckRestart: &CheckRestart{ 18 Limit: 11, 19 Grace: timeToPtr(11 * time.Second), 20 IgnoreWarnings: true, 21 }, 22 Checks: []ServiceCheck{ 23 { 24 Name: "all-set", 25 CheckRestart: &CheckRestart{ 26 Limit: 22, 27 Grace: timeToPtr(22 * time.Second), 28 IgnoreWarnings: true, 29 }, 30 }, 31 { 32 Name: "some-set", 33 CheckRestart: &CheckRestart{ 34 Limit: 33, 35 Grace: timeToPtr(33 * time.Second), 36 }, 37 }, 38 { 39 Name: "unset", 40 }, 41 }, 42 } 43 44 service.Canonicalize(task, tg, job) 45 assert.Equal(t, service.Checks[0].CheckRestart.Limit, 22) 46 assert.Equal(t, *service.Checks[0].CheckRestart.Grace, 22*time.Second) 47 assert.True(t, service.Checks[0].CheckRestart.IgnoreWarnings) 48 49 assert.Equal(t, service.Checks[1].CheckRestart.Limit, 33) 50 assert.Equal(t, *service.Checks[1].CheckRestart.Grace, 33*time.Second) 51 assert.True(t, service.Checks[1].CheckRestart.IgnoreWarnings) 52 53 assert.Equal(t, service.Checks[2].CheckRestart.Limit, 11) 54 assert.Equal(t, *service.Checks[2].CheckRestart.Grace, 11*time.Second) 55 assert.True(t, service.Checks[2].CheckRestart.IgnoreWarnings) 56} 57 58// TestService_Connect asserts Service.Connect settings are properly 59// inherited by Checks. 60func TestService_Connect(t *testing.T) { 61 job := &Job{Name: stringToPtr("job")} 62 tg := &TaskGroup{Name: stringToPtr("group")} 63 task := &Task{Name: "task"} 64 service := &Service{ 65 Connect: &ConsulConnect{ 66 SidecarService: &ConsulSidecarService{ 67 Proxy: &ConsulProxy{ 68 Upstreams: []*ConsulUpstream{ 69 { 70 DestinationName: "upstream", 71 LocalBindPort: 80, 72 }, 73 }, 74 LocalServicePort: 8000, 75 }, 76 }, 77 }, 78 } 79 80 service.Canonicalize(task, tg, job) 81 proxy := service.Connect.SidecarService.Proxy 82 assert.Equal(t, proxy.Upstreams[0].LocalBindPort, 80) 83 assert.Equal(t, proxy.Upstreams[0].DestinationName, "upstream") 84 assert.Equal(t, proxy.LocalServicePort, 8000) 85} 86