github.com/vmware/govmomi@v0.51.0/cli/flags/optional_string_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 TestOptionalString(t *testing.T) {
    13  	fs := flag.NewFlagSet("", flag.ContinueOnError)
    14  	var val *string
    15  
    16  	fs.Var(NewOptionalString(&val), "ostring", "optional string")
    17  
    18  	s := fs.Lookup("ostring")
    19  
    20  	if s.DefValue != "<nil>" {
    21  		t.Fail()
    22  	}
    23  
    24  	if s.Value.String() != "<nil>" {
    25  		t.Fail()
    26  	}
    27  
    28  	if s.Value.(flag.Getter).Get() != nil {
    29  		t.Fail()
    30  	}
    31  
    32  	s.Value.Set("test")
    33  
    34  	if s.Value.String() != "test" {
    35  		t.Fail()
    36  	}
    37  
    38  	if s.Value.(flag.Getter).Get() != "test" {
    39  		t.Fail()
    40  	}
    41  
    42  	if val == nil || *val != "test" {
    43  		t.Fail()
    44  	}
    45  }