aboutsummaryrefslogtreecommitdiffstats
path: root/appc-adapters/appc-ssh-adapter/appc-ssh-adapter-tests/src/main/java/org/openecomp/appc/adapter/ssh/SshConnectionMock.java
blob: ed03a61070e2ec3583c940d1215a73ed3d59c4cc (plain)
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
/*-
 * ============LICENSE_START=======================================================
 * openECOMP : APP-C
 * ================================================================================
 * Copyright (C) 2017 AT&T Intellectual Property. 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.
 * ============LICENSE_END=========================================================
 */

package org.openecomp.appc.adapter.ssh;

import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;

import org.openecomp.appc.adapter.ssh.SshConnection;

public class SshConnectionMock implements SshConnection {

	private static final int DEF_SUCCESS_STATUS = 0;

	private String host;
	private int port;
	private String username;
	private String password;
	private long timeout;

	private int returnStatus = DEF_SUCCESS_STATUS;
	private String returnStdout;
	private String returnStderr;

	private int connectCallCount = 0;
	private int disconnectCallCount = 0;
	private List<String> executedCommands = new ArrayList<>();

	public SshConnectionMock(String host, int port, String username, String password) {
		this.host = host;
		this.port = port;
		this.username = username;
		this.password = password;
	}

	@Override
	public void connect() {
		connectCallCount++;
	}

	@Override
	public void connectWithRetry() {
		connectCallCount++;
	}

	@Override
	public void disconnect() {
		disconnectCallCount++;
	}

	@Override
	public int execCommand(String cmd, OutputStream out, OutputStream err) {
		return execCommand(cmd, out, err, false);
	}

	@Override
	public int execCommandWithPty(String cmd, OutputStream out) {
		return execCommand(cmd, out, out, true);
	}

	private int execCommand(String cmd, OutputStream out, OutputStream err, boolean usePty) {
		executedCommands.add(cmd);
		try {
			if((out != null) && (returnStdout != null)) {
				out.write(returnStdout.getBytes());
			}
		} catch(IOException e) {
			throw new RuntimeException("Error writing to stdout output stream", e);
		}
		try {
			if((err != null) && (returnStderr != null)) {
				err.write(returnStderr.getBytes());
			}
		} catch(IOException e) {
			throw new RuntimeException("Error writing to stderr output stream", e);
		}
		return returnStatus;
	}

	@Override
	public void setExecTimeout(long timeout) {
		this.timeout = timeout;
	}

	public long getExecTimeout() {
		return timeout;
	}

	public String getHost() {
		return host;
	}

	public int getPort() {
		return port;
	}

	public String getUsername() {
		return username;
	}

	public String getPassword() {
		return password;
	}

	public int getConnectCallCount() {
		return connectCallCount;
	}

	public int getDisconnectCallCount() {
		return disconnectCallCount;
	}

	public List<String> getExecutedCommands() {
		return executedCommands;
	}

	public int getReturnStatus() {
		return returnStatus;
	}

	public void setReturnStatus(int returnStatus) {
		this.returnStatus = returnStatus;
	}

	public String getReturnStdout() {
		return returnStdout;
	}

	public void setReturnStdout(String returnStdout) {
		this.returnStdout = returnStdout;
	}

	public String getReturnStderr() {
		return returnStderr;
	}

	public void setReturnStderr(String returnStderr) {
		this.returnStderr = returnStderr;
	}
}