aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2018-05-17 03:49:02 +0700
committerShulhan <ms@kilabit.info>2018-05-17 03:49:02 +0700
commitfb989eced7d80da08973f04a561464f54a5f08d8 (patch)
treefacb34dcb0c54829f54317314502ccd8369aca4a
parentf089e57911b102c3ef94184a8ef32f457b940eb4 (diff)
downloadbeku-fb989eced7d80da08973f04a561464f54a5f08d8.tar.xz
Move Package.IsTag to common.IsTagVersion and add unit test for it
-rw-r--r--common.go18
-rw-r--r--common_test.go35
-rw-r--r--env.go2
-rw-r--r--package.go22
4 files changed, 56 insertions, 21 deletions
diff --git a/common.go b/common.go
index 916b950..f15e7b9 100644
--- a/common.go
+++ b/common.go
@@ -32,6 +32,24 @@ func IsIgnoredDir(name string) bool {
}
//
+// IsTagVersion return true if "version" prefixed with "v" or contains at
+// least one dot "." character.
+//
+func IsTagVersion(version string) bool {
+ version = strings.TrimSpace(version)
+ if len(version) == 0 {
+ return false
+ }
+ if version[0] == prefixTag && len(version) > 1 {
+ return true
+ }
+ if strings.IndexByte(version, sepVersion) > 0 {
+ return true
+ }
+ return false
+}
+
+//
// confirm display a question to standard output and read for answer
// from "in" for simple "y" or "n" answer.
// If "in" is nil, it will set to standard input.
diff --git a/common_test.go b/common_test.go
index 9f2950c..f504b47 100644
--- a/common_test.go
+++ b/common_test.go
@@ -55,6 +55,41 @@ func TestIsIgnoredDir(t *testing.T) {
}
}
+func TestIsTagVersion(t *testing.T) {
+ cases := []struct {
+ ver string
+ exp bool
+ }{{
+ ver: "",
+ }, {
+ ver: " v",
+ }, {
+ ver: "v1",
+ exp: true,
+ }, {
+ ver: "1",
+ exp: false,
+ }, {
+ ver: "1.0",
+ exp: true,
+ }, {
+ ver: "alpha",
+ exp: false,
+ }, {
+ ver: "abcdef1",
+ exp: false,
+ }}
+
+ var got bool
+ for _, c := range cases {
+ t.Log(c)
+
+ got = IsTagVersion(c.ver)
+
+ test.Assert(t, "", c.exp, got, true)
+ }
+}
+
func TestConfirm(t *testing.T) {
cases := []struct {
defIsYes bool
diff --git a/env.go b/env.go
index 0a78951..4f49154 100644
--- a/env.go
+++ b/env.go
@@ -469,7 +469,7 @@ func (env *Env) Sync(pkgName, importPath string) (err error) {
if len(version) > 0 {
newPkg.Version = version
- newPkg.setIsTag()
+ newPkg.isTag = IsTagVersion(version)
}
// (2)
diff --git a/package.go b/package.go
index 3423c27..b19eb07 100644
--- a/package.go
+++ b/package.go
@@ -120,30 +120,12 @@ func (pkg *Package) Scan() (err error) {
return
}
- pkg.setIsTag()
+ pkg.isTag = IsTagVersion(pkg.Version)
return
}
//
-// setIsTag will set isTag to true if `Version` prefixed with `v` or contains
-// dot `.` character.
-//
-func (pkg *Package) setIsTag() {
- if len(pkg.Version) == 0 {
- pkg.isTag = false
- return
- }
- if pkg.Version[0] == prefixTag {
- pkg.isTag = true
- return
- }
- if strings.IndexByte(pkg.Version, sepVersion) > 0 {
- pkg.isTag = true
- }
-}
-
-//
// ScanDeps will scan package dependencies, removing standard packages, keep
// only external dependencies.
//
@@ -318,7 +300,7 @@ func (pkg *Package) load(sec *ini.Section) {
pkg.RemoteURL = v.Value
case keyVersion:
pkg.Version = v.Value
- pkg.setIsTag()
+ pkg.isTag = IsTagVersion(pkg.Version)
case keyDeps:
pkg.Deps = append(pkg.Deps, v.Value)
case keyDepsMissing: