package launchctx import "testing" func TestModeDecodersRefuseOtherLaunchClass(t *testing.T) { v2, c := launchFixture(t) if _, err := DecodeChecker(v2); err != nil { t.Fatal(err) } if _, err := DecodeOperator(v2); err == nil { t.Fatal("checker accepted as mutable operator") } c.Version = 1 c.ExecutionKind, c.OperationID, c.ExpectedStateSHA256 = "", "", "" c.ClosedCheckpoint = nil v1, err := EncodeLaunch(c) if err != nil { t.Fatal(err) } if _, err := DecodeOperator(v1); err != nil { t.Fatal(err) } if _, err := DecodeChecker(v1); err == nil { t.Fatal("mutable operator accepted as checker") } for _, decode := range []func([]byte) (LaunchContext, error){DecodeOperator, DecodeChecker} { if _, err := decode([]byte(`{}`)); err == nil { t.Fatal("malformed context accepted") } } }