File: cloudsqlutil_test.go

package info (click to toggle)
cloudsql-proxy 1.33.14-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 900 kB
  • sloc: sh: 57; makefile: 25
file content (61 lines) | stat: -rw-r--r-- 1,927 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
// Copyright 2015 Google Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package util

import (
	_ "embed"
	"strings"
	"testing"
)

//go:embed version.txt
var actualVersion string

func TestSemanticVersion(t *testing.T) {
	want := strings.TrimSpace(actualVersion)

	if got := SemanticVersion(); got != want {
		t.Fatalf("want = %q, got = %q", want, got)
	}
}

func TestUserAgentFromVersionString(t *testing.T) {
	want := "cloud_sql_proxy/" + strings.TrimSpace(actualVersion)

	if got := UserAgentFromVersionString(); got != want {
		t.Fatalf("want = %q, got = %q", want, got)
	}
}

func TestSplitName(t *testing.T) {
	table := []struct{ in, wantProj, wantRegion, wantInstance string }{
		{"proj:region:my-db", "proj", "region", "my-db"},
		{"google.com:project:region:instance", "google.com:project", "region", "instance"},
		{"google.com:missing:part", "google.com:missing", "", "part"},
	}

	for _, test := range table {
		gotProj, gotRegion, gotInstance := SplitName(test.in)
		if gotProj != test.wantProj {
			t.Errorf("splitName(%q): got %v for project, want %v", test.in, gotProj, test.wantProj)
		}
		if gotRegion != test.wantRegion {
			t.Errorf("splitName(%q): got %v for region, want %v", test.in, gotRegion, test.wantRegion)
		}
		if gotInstance != test.wantInstance {
			t.Errorf("splitName(%q): got %v for instance, want %v", test.in, gotInstance, test.wantInstance)
		}
	}
}