aboutsummaryrefslogtreecommitdiffstats
path: root/client/go/src/cmd/deploy_test.go
blob: 99cfedebc8f4fc864c47e04d115ba510c864b597 (plain) (blame)
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
// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
// deploy command tests
// Author: bratseth

package cmd

import (
    "github.com/stretchr/testify/assert"
    "testing"
)

func TestDeployZip(t *testing.T) {
    client := &mockHttpClient{}
	assert.Equal(t,
	             "\x1b[32mSuccess\n",
	             executeCommand(t, client, []string{"deploy", "activate", "testdata/application.zip"}, []string{}))
	assertDeployRequestMade("http://127.0.0.1:19071", client, t)
}

func TestDeployZipWithURLTargetArgument(t *testing.T) {
    client := &mockHttpClient{}
	assert.Equal(t,
	             "\x1b[32mSuccess\n",
	             executeCommand(t, client, []string{"deploy", "activate", "testdata/application.zip", "-t", "http://target:19071"}, []string{}))
	assertDeployRequestMade("http://target:19071", client, t)
}

func TestDeployZipWitLocalTargetArgument(t *testing.T) {
    client := &mockHttpClient{}
	assert.Equal(t,
	             "\x1b[32mSuccess\n",
	             executeCommand(t, client, []string{"deploy", "activate", "testdata/application.zip", "-t", "local"}, []string{}))
	assertDeployRequestMade("http://127.0.0.1:19071", client, t)
}

func TestDeployDirectory(t *testing.T) {
    client := &mockHttpClient{}
	assert.Equal(t,
	             "\x1b[32mSuccess\n",
	             executeCommand(t, client, []string{"deploy", "activate", "testdata/src/main/application"}, []string{}))
	assertDeployRequestMade("http://127.0.0.1:19071", client, t)
}

// TODO: Test error replies (5xx and 4xx with error message)
// TODO: Test prepare and activate prepared

func assertDeployRequestMade(target string, client *mockHttpClient, t *testing.T) {
    assert.Equal(t, target + "/application/v2/tenant/default/prepareandactivate", client.lastRequest.URL.String())
    assert.Equal(t, "application/zip", client.lastRequest.Header.Get("Content-Type"))
    assert.Equal(t, "POST", client.lastRequest.Method)
    var body = client.lastRequest.Body
    assert.NotNil(t, body)
    buf := make([]byte, 7) // Just check the first few bytes
    body.Read(buf)
    assert.Equal(t, "PK\x03\x04\x14\x00\b", string(buf))
}