github.com/vmware/govmomi@v0.51.0/toolbox/power_test.go (about)

     1  // © Broadcom. All Rights Reserved.
     2  // The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.
     3  // SPDX-License-Identifier: Apache-2.0
     4  
     5  package toolbox
     6  
     7  import (
     8  	"errors"
     9  	"testing"
    10  )
    11  
    12  func TestPowerCommandHandler(t *testing.T) {
    13  	shutdown = "/bin/echo"
    14  
    15  	in := new(mockChannelIn)
    16  	out := new(mockChannelOut)
    17  
    18  	service := NewService(in, out)
    19  	power := service.Power
    20  
    21  	// cover nil Handler and out.Receive paths
    22  	_, _ = power.Halt.Dispatch(nil)
    23  
    24  	out.reply = append(out.reply, rpciOK, rpciOK)
    25  
    26  	power.Halt.Handler = Halt
    27  	power.Reboot.Handler = Reboot
    28  	power.Suspend.Handler = func() error {
    29  		return errors.New("an error")
    30  	}
    31  
    32  	commands := []PowerCommand{
    33  		power.Halt,
    34  		power.Reboot,
    35  		power.Suspend,
    36  	}
    37  
    38  	for _, cmd := range commands {
    39  		_, _ = cmd.Dispatch(nil)
    40  	}
    41  }