package hostbox import ( "bytes" "github.com/carlosframework/platform/internal/registry" "testing" ) func TestPlan14UnitInputsProtocol(t *testing.T) { q := RoleLaunchRequest{V: RoleLaunchV, Op: RoleLaunchInputs, Route: ®istry.Route{Host: "shop.example", Unit: "console.service"}} raw, err := EncodeRoleLaunchRequest(q) if err != nil { t.Fatal(err) } decoded, err := DecodeRoleLaunchRequest(bytes.NewReader(raw)) if err != nil || decoded.Route.Unit != q.Route.Unit { t.Fatal(decoded, err) } for _, mutate := range []func(*RoleLaunchRequest){ func(q *RoleLaunchRequest) { q.Route = nil }, func(q *RoleLaunchRequest) { q.Op = RoleLaunchCapability }, func(q *RoleLaunchRequest) { q.Op = RoleLaunchStop }, func(q *RoleLaunchRequest) { q.MemoryMax = 1 }, func(q *RoleLaunchRequest) { q.Executable = "/app" }, func(q *RoleLaunchRequest) { q.Kind = "serving" }, func(q *RoleLaunchRequest) { q.Spec = &LaunchSpec{} }, } { bad := q mutate(&bad) if bad.Validate() == nil { t.Fatal("mixed protocol request accepted", bad) } } }