2 Star 0 Fork 0

MJ PC Lab/goNixArgParser

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
optionSetParse2_test.go 2.16 KB
一键复制 编辑 原始数据 按行查看 历史
package goNixArgParser
import (
"testing"
)
func TestParse2(t *testing.T) {
var err error
s := NewOptionSet("", nil, nil, nil, nil)
err = s.Add(Option{
Key: "deft",
Flags: []*Flag{{Name: "-df"}, {Name: "--default"}},
AcceptValue: true,
DefaultValues: []string{"myDefault"},
})
if err != nil {
t.Error(err)
}
err = s.AddFlag("flag", "-flag", "FLAG", "flag option")
if err != nil {
t.Error(err)
}
err = s.AddFlag("p", "p", "", "flag p")
if err != nil {
t.Error(err)
}
err = s.AddFlag("q", "q", "", "flag q")
if err != nil {
t.Error(err)
}
err = s.AddFlags("flags", []string{"-flags", "--flags"}, "", "flags option")
if err != nil {
t.Error(err)
}
err = s.AddFlagValue("port", "--port", "", "21", "port to listen")
if err != nil {
t.Error(err)
}
err = s.AddFlagValues("ports", "--ports", "", []string{"80", "8080"}, "ports to listen for http")
if err != nil {
t.Error(err)
}
err = s.AddFlagsValue("file", []string{"-f", "--files"}, "", "", "file to open")
if err != nil {
t.Error(err)
}
err = s.Add(Option{
Key: "props",
Summary: "properties",
Description: "single description",
Flags: []*Flag{NewSimpleFlag("-p"), NewFlag("--props", 0, false, true, true)},
AcceptValue: true,
MultiValues: true,
})
if err != nil {
t.Error(err)
}
args := []string{
"-flag",
"pq",
"--flags",
"--port", "22",
"--ports", "443", "4443", "443",
"--ports", "4444",
"-f", "file1", "file2",
"--props=aa", "bb", "cc", "dd", "ee",
}
parsed := s.Parse(args, nil)
if v, _ := parsed.GetString("deft"); v != "myDefault" {
t.Error("deft")
}
if !parsed.HasKey("flag") {
t.Error("flag")
}
if !parsed.HasKey("flags") {
t.Error("flags")
}
if !parsed.HasKey("p") {
t.Error("p")
}
if !parsed.HasKey("q") {
t.Error("q")
}
if v, _ := parsed.GetString("port"); v != "22" {
t.Error("port")
}
ports, _ := parsed.GetStrings("ports")
if len(ports) != 3 {
t.Error("ports")
}
if v, _ := parsed.GetString("file"); v != "file1" {
t.Error("file")
}
props, _ := parsed.GetStrings("props")
if len(props) != 5 {
t.Error("props")
}
if len(parsed.GetRests()) != 1 {
t.Error("rests")
}
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/mjpclab/goNixArgParser.git
git@gitee.com:mjpclab/goNixArgParser.git
mjpclab
goNixArgParser
goNixArgParser
master

搜索帮助