github.com/vmware/govmomi@v0.51.0/cli/flags/optional_bool_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 flags
     6  
     7  import (
     8  	"flag"
     9  	"testing"
    10  )
    11  
    12  func TestOptionalBool(t *testing.T) {
    13  	fs := flag.NewFlagSet("", flag.ContinueOnError)
    14  	var val *bool
    15  
    16  	fs.Var(NewOptionalBool(&val), "obool", "optional bool")
    17  
    18  	b := fs.Lookup("obool")
    19  
    20  	if b.DefValue != "<nil>" {
    21  		t.Fail()
    22  	}
    23  
    24  	if b.Value.String() != "<nil>" {
    25  		t.Fail()
    26  	}
    27  
    28  	if b.Value.(flag.Getter).Get() != nil {
    29  		t.Fail()
    30  	}
    31  
    32  	b.Value.Set("true")
    33  
    34  	if b.Value.String() != "true" {
    35  		t.Fail()
    36  	}
    37  
    38  	if b.Value.(flag.Getter).Get() != true {
    39  		t.Fail()
    40  	}
    41  
    42  	if val == nil || *val != true {
    43  		t.Fail()
    44  	}
    45  
    46  	b.Value.Set("false")
    47  
    48  	if b.Value.String() != "false" {
    49  		t.Fail()
    50  	}
    51  
    52  	if b.Value.(flag.Getter).Get() != false {
    53  		t.Fail()
    54  	}
    55  
    56  	if val == nil || *val != false {
    57  		t.Fail()
    58  	}
    59  }