@@ -116,30 +116,52 @@ func (a MockApp) NewData() Data {
116116
117117// ValidTransition checks the transition for validity.
118118func (a MockApp ) ValidTransition (params * Params , from , to * State , actor Index ) error {
119- return a .execMockOp (from .Data .(* MockOp ))
119+ op , ok := from .Data .(* MockOp )
120+ if ! ok {
121+ return fmt .Errorf ("wrong data type: expected *MockOp, got %T" , from .Data )
122+ }
123+ return a .execMockOp (op )
120124}
121125
122126// ValidInit checks the initial state for validity.
123127func (a MockApp ) ValidInit (params * Params , state * State ) error {
124- return a .execMockOp (state .Data .(* MockOp ))
128+ op , ok := state .Data .(* MockOp )
129+ if ! ok {
130+ return fmt .Errorf ("wrong data type: expected *MockOp, got %T" , state .Data )
131+ }
132+ return a .execMockOp (op )
125133}
126134
127135// ValidAction checks the action for validity.
128136func (a MockApp ) ValidAction (params * Params , state * State , part Index , act Action ) error {
129- return a .execMockOp (act .(* MockOp ))
137+ op , ok := act .(* MockOp )
138+ if ! ok {
139+ return fmt .Errorf ("wrong data type: expected *MockOp, got %T" , act )
140+ }
141+ return a .execMockOp (op )
130142}
131143
132144// ApplyActions applies the actions unto a copy of state and returns the result or an error.
133145func (a MockApp ) ApplyActions (params * Params , state * State , acts []Action ) (* State , error ) {
134146 ret := state .Clone ()
135147 ret .Version ++
136148
137- return ret , a .execMockOp (acts [0 ].(* MockOp ))
149+ op , ok := acts [0 ].(* MockOp )
150+ if ! ok {
151+ return nil , fmt .Errorf ("wrong data type: expected *MockOp, got %T" , acts [0 ])
152+ }
153+
154+ return ret , a .execMockOp (op )
138155}
139156
140157// InitState Checks for the validity of the passed arguments as initial state.
141158func (a MockApp ) InitState (params * Params , rawActs []Action ) (Allocation , Data , error ) {
142- return Allocation {}, nil , a .execMockOp (rawActs [0 ].(* MockOp ))
159+ op , ok := rawActs [0 ].(* MockOp )
160+ if ! ok {
161+ return Allocation {}, nil , fmt .Errorf ("wrong data type: expected *MockOp, got %T" , rawActs [0 ])
162+ }
163+
164+ return Allocation {}, nil , a .execMockOp (op )
143165}
144166
145167// execMockOp executes the operation indicated by the MockOp from the MockOp.
0 commit comments