作者:bacongobble
项目:builde
func TestNew(t *testing.T) {
tmpDir, err := ioutil.TempDir("", "tmpdir")
if err != nil {
t.Fatalf("error creating temp directory (%s)", err)
}
defer func() {
if err := os.RemoveAll(tmpDir); err != nil {
t.Fatalf("failed to remove builder-key from %s (%s)", tmpDir, err)
}
}()
builderconf.BuilderKeyLocation = filepath.Join(tmpDir, "builder-key")
data := []byte("testbuilderkey")
if err := ioutil.WriteFile(builderconf.BuilderKeyLocation, data, 0644); err != nil {
t.Fatalf("error creating %s (%s)", builderconf.BuilderKeyLocation, err)
}
host := "127.0.0.1"
port := "80"
cli, err := New(host, port)
assert.NoErr(t, err)
assert.Equal(t, cli.ControllerURL.String(), fmt.Sprintf("http://%s:%s/", host, port), "data")
assert.Equal(t, cli.HooksToken, string(data), "data")
assert.Equal(t, cli.UserAgent, "deis-builder", "user-agent")
port = "invalid-port-number"
if _, err = New(host, port); err == nil {
t.Errorf("expected error with invalid port number, got nil")
}
}
作者:dei
项目:workflow-manage
func TestParseJSONCluster(t *testing.T) {
const name = "component"
const description = "test component"
const version = "1.0.0"
raw := []byte(fmt.Sprintf(`{
"id": "%s",
"components": [
{
"component": {
"name": "%s",
"description": "%s"
},
"version": {
"version": "%s"
}
}
]
}`, mockClusterID, name, description, version))
cluster, err := ParseJSONCluster(raw)
assert.NoErr(t, err)
assert.Equal(t, cluster.ID, mockClusterID, "ID value")
assert.Equal(t, cluster.Components[0].Component.Name, name, "Name value")
assert.Equal(t, *cluster.Components[0].Component.Description, description, "Description value")
assert.Equal(t, cluster.Components[0].Version.Version, version, "Version value")
}
作者:dei
项目:pk
func TestWarn(t *testing.T) {
stdout, out, stderr, err := getWriters()
lg := NewLogger(stdout, stderr, false)
lg.Warn("hello %s", world)
assert.Equal(t, string(err.Bytes()), addColor(WarnPrefix+" ", Yellow), "stderr output")
assert.Equal(t, string(out.Bytes()), "hello world\n", "stdout output")
}
作者:arschle
项目:testsr
func TestMsgs(t *testing.T) {
const numSends = 20
srv := StartServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
}))
defer srv.Close()
ch := make(chan []*ReceivedRequest)
waitTime := 10 * time.Millisecond
for i := 0; i < numSends; i++ {
resp, err := http.Get(srv.URLStr())
assert.NoErr(t, err)
assert.Equal(t, http.StatusOK, resp.StatusCode, "status code")
}
go func() {
ch <- srv.AcceptN(numSends, waitTime)
}()
select {
case r := <-ch:
assert.Equal(t, len(r), numSends, "number of recevied messages")
case <-time.After(recvWaitTime):
t.Errorf("AcceptN didn't return after [%+v]", recvWaitTime)
}
}
作者:dei
项目:workflow-manage
func TestGetComponents(t *testing.T) {
const componentRoute = "/components"
resp, apiServer, err := testGet(componentRoute)
if apiServer != nil {
apiServer.Close()
}
assert.NoErr(t, err)
assert200(t, resp)
respData, err := ioutil.ReadAll(resp.Body)
assert.NoErr(t, err)
cluster, err := data.ParseJSONCluster(respData)
assert.NoErr(t, err)
mockData, err := mocks.GetMockCluster()
assert.NoErr(t, err)
mockCluster, err := data.ParseJSONCluster(mockData)
assert.NoErr(t, err)
assert.Equal(t, cluster.ID, mockCluster.ID, "cluster ID value")
for i, component := range cluster.Components {
assert.Equal(t, component.Component, mockCluster.Components[i].Component, "component type")
assert.Equal(t, component.Version, mockCluster.Components[i].Version, "version type")
_, err := mocks.GetMockLatest(component.Component.Name)
assert.NoErr(t, err)
// TODO add tests for UpdateAvailable field
}
}
作者:dei
项目:workflow-manage
func TestGetInstalled(t *testing.T) {
cluster, err := GetInstalled(mockInstalledComponents{})
assert.NoErr(t, err)
assert.Equal(t, cluster.Components[0].Component.Name, mockComponentName, "Name value")
assert.Equal(t, *cluster.Components[0].Component.Description, mockComponentDescription, "Description value")
assert.Equal(t, cluster.Components[0].Version.Version, mockComponentVersion, "Version value")
}
作者:dei
项目:workflow-manage
// Calls GetID twice, the first time we expect our passed-in struct w/ Get() method
// to be invoked, the 2nd time we expect to receive the same value back (cached in memory)
// and for the passed-in Get() method to be ignored
func TestGetID(t *testing.T) {
cid := &testClusterID{}
id, err := GetID(cid)
assert.NoErr(t, err)
assert.Equal(t, id, mockClusterID, "cluster ID value")
cid.cache = "something else"
id, err = GetID(cid)
assert.NoErr(t, err)
assert.Equal(t, id, "something else", "cluster ID value")
}
作者:aledb
项目:builde
func TestGitPktLine(t *testing.T) {
b := new(bytes.Buffer)
str := "hello world"
err := gitPktLine(b, str)
assert.NoErr(t, err)
outStr := string(b.Bytes())
assert.True(t, len(outStr) > 4, "output string <= 4 chars")
assert.Equal(t, outStr[:4], fmt.Sprintf("%04x", len(str)+4), "hex prefix")
assert.Equal(t, outStr[4:], str, "remainder of string")
}
作者:dei
项目:pk
func TestDebug(t *testing.T) {
stdout, out, stderr, err := getWriters()
lgOn := NewLogger(stdout, stderr, true)
lgOff := NewLogger(stdout, stderr, false)
lgOff.Debug("hello %s", world)
assert.Equal(t, out.Len(), 0, "stdout buffer length")
assert.Equal(t, err.Len(), 0, "stderr buffer length")
lgOn.Debug("hello %s", world)
assert.Equal(t, string(err.Bytes()), addColor(DebugPrefix+" ", Cyan), "stderr output")
assert.Equal(t, string(out.Bytes()), "hello world\n", "stdout output")
}
作者:Codaisseu
项目:deis-backing-service
func TestControllerFromDeisRemote(t *testing.T) {
t.Parallel()
url, err := url.Parse("ssh://[email protected]:2222/api.coderunner.git")
assert.Equal(t, nil, err, "controller-from-deis-remote")
expected := "https://services.alea.dev"
actual := controllerFromDeisRemote(url)
assert.Equal(t, expected, actual, "controller-from-deis-remote")
}
作者:dei
项目:workflow-manage
// Calls GetAvailableVersions twice, the first time we expect our passed-in struct w/ Refresh() method
// to be invoked, the 2nd time we expect to receive the same value back (cached in memory)
// and for the passed-in Refresh() method to be ignored
func TestGetAvailableVersions(t *testing.T) {
mock := getMockComponentVersions()
var mockVersions []models.ComponentVersion
assert.NoErr(t, json.Unmarshal(mock, &mockVersions))
versions, err := GetAvailableVersions(testAvailableVersions{}, models.Cluster{})
assert.NoErr(t, err)
assert.Equal(t, versions, mockVersions, "component versions data")
versions, err = GetAvailableVersions(shouldBypassAvailableVersions{}, models.Cluster{})
assert.NoErr(t, err)
assert.Equal(t, versions, mockVersions, "component versions data")
}
作者:aledb
项目:builde
func TestReadinessControllerGetErr(t *testing.T) {
nsLister := emptyNamespaceLister{}
client := errGetClient{err: errTest}
h := readinessHandler(client, nsLister)
w := httptest.NewRecorder()
r, err := http.NewRequest("GET", "/readiness", bytes.NewBuffer(nil))
assert.NoErr(t, err)
h.ServeHTTP(w, r)
assert.Equal(t, w.Code, http.StatusServiceUnavailable, "response code")
assert.Equal(t, w.Body.Len(), 0, "response body length")
}
作者:bacongobble
项目:builde
func TestHealthZCircuitOpen(t *testing.T) {
bLister := emptyBucketLister{}
c := sshd.NewCircuit()
h := healthZHandler(bLister, c)
w := httptest.NewRecorder()
r, err := http.NewRequest("GET", "/healthz", bytes.NewBuffer(nil))
assert.NoErr(t, err)
h.ServeHTTP(w, r)
assert.Equal(t, w.Code, http.StatusServiceUnavailable, "response code")
assert.Equal(t, w.Body.Len(), 0, "response body length")
}
作者:mboersm
项目:builde
func TestGetRegistryDetailsGCRSuccess(t *testing.T) {
encToken := base64.StdEncoding.EncodeToString([]byte("testuser:testpassword"))
auth := []byte(`
{
"auths": {
"https://test.io": {
"auth": "` + encToken + `",
"email": "[email protected]"
}
}
}
`)
configData := make(map[string][]byte)
configData[api.DockerConfigJsonKey] = auth
configSecret := api.Secret{Data: configData}
configGetter := &k8s.FakeSecret{
FnGet: func(string) (*api.Secret, error) {
return &configSecret, nil
},
}
srvAccount := []byte(`
{
"project_id": "deis-test"
}
`)
data := map[string][]byte{"key.json": srvAccount}
secret := api.Secret{Data: data}
getter := &k8s.FakeSecret{
FnGet: func(string) (*api.Secret, error) {
return &secret, nil
},
}
kubeClient := &k8s.FakeSecretsNamespacer{
Fn: func(namespace string) client.SecretsInterface {
if namespace == "deis" {
return getter
}
return configGetter
},
}
expectedData := map[string]string{"DEIS_REGISTRY_USERNAME": "testuser", "DEIS_REGISTRY_PASSWORD": "testpassword", "DEIS_REGISTRY_HOSTNAME": "https://test.io", "DEIS_REGISTRY_GCS_PROJ_ID": "deis-test"}
expectedImage := "test.io/deis-test/test-image"
image := "test-image"
regDetails, err := getRegistryDetails(kubeClient, &image, "gcr", deisNamespace, "private-registry")
assert.NoErr(t, err)
assert.Equal(t, expectedData, regDetails, "registry details")
assert.Equal(t, expectedImage, image, "image")
}
作者:Codaisseu
项目:deis-backing-service
func TestAppFromDeisRemote(t *testing.T) {
t.Parallel()
url, err := url.Parse("ssh://[email protected]:2222/api.coderunner.git")
assert.Equal(t, nil, err, "app-from-deis-remote")
expected := "api.coderunner"
actual, err := appFromDeisRemote(url)
assert.Equal(t, expected, actual, "app-from-deis-remote")
assert.Equal(t, nil, err, "app-from-deis-remote")
}
作者:dei
项目:workflow-manage
func TestWritePlainText(t *testing.T) {
const text = "foo"
handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
writePlainText(text, w)
})
resp, err := getTestHandlerResponse(handler)
assert.NoErr(t, err)
assert.Equal(t, resp.Header.Get("Content-Type"), "text/plain", "Content-Type value")
respData, err := ioutil.ReadAll(resp.Body)
assert.NoErr(t, err)
assert.Equal(t, string(respData), text, "text response")
}
作者:aledb
项目:builde
func TestObjectExistsSuccess(t *testing.T) {
objInfo := storagedriver.FileInfoInternal{storagedriver.FileInfoFields{Path: objPath, Size: 1234}}
statter := &FakeObjectStatter{
Fn: func(context.Context, string) (storagedriver.FileInfo, error) {
return objInfo, nil
},
}
exists, err := ObjectExists(statter, objPath)
assert.NoErr(t, err)
assert.True(t, exists, "object not found when it should be present")
assert.Equal(t, len(statter.Calls), 1, "number of StatObject calls")
assert.Equal(t, statter.Calls[0].Path, objPath, "object key")
}
作者:vdic
项目:builde
func TestHealthZSuccess(t *testing.T) {
nsLister := emptyNamespaceLister{}
bLister := emptyBucketLister{}
c := sshd.NewCircuit()
c.Close()
h := healthZHandler(nsLister, bLister, c)
w := httptest.NewRecorder()
r, err := http.NewRequest("GET", "/healthz", bytes.NewBuffer(nil))
assert.NoErr(t, err)
h.ServeHTTP(w, r)
assert.Equal(t, w.Code, http.StatusOK, "response code")
assert.Equal(t, w.Body.Len(), 0, "response body length")
}
作者:bacongobble
项目:ria
func TestNotLocked(t *testing.T) {
mut := new(sync.Mutex)
lockID := NewLockID()
router := mux.NewRouter()
registerLockHandler(router, mut, lockID)
w := httptest.NewRecorder()
r, err := http.NewRequest("POST", "/lock", bytes.NewReader(nil))
assert.NoErr(t, err)
router.ServeHTTP(w, r)
assert.Equal(t, w.Code, http.StatusOK, "response code")
assert.Equal(t, string(w.Body.Bytes()), lockID.id, "lock ID")
}
作者:aledb
项目:builde
func TestReadinessNamespaceListErr(t *testing.T) {
nsLister := errNamespaceLister{err: errTest}
client := successGetClient{}
os.Setenv("DEIS_CONTROLLER_SERVICE_HOST", "127.0.0.1")
os.Setenv("DEIS_CONTROLLER_SERVICE_PORT", "8000")
h := readinessHandler(client, nsLister)
w := httptest.NewRecorder()
r, err := http.NewRequest("GET", "/readiness", bytes.NewBuffer(nil))
assert.NoErr(t, err)
h.ServeHTTP(w, r)
assert.Equal(t, w.Code, http.StatusServiceUnavailable, "response code")
assert.Equal(t, w.Body.Len(), 0, "response body length")
}