/*******************************************************************************
* Copyright (c) 2012-2017 Codenvy, S.A.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Codenvy, S.A. - initial API and implementation
*******************************************************************************/
package org.eclipse.che.plugin.ssh.key.script;
import org.eclipse.che.api.core.ServerException;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.testng.MockitoTestNGListener;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Listeners;
import org.testng.annotations.Test;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import static org.mockito.Mockito.when;
import static org.testng.Assert.assertTrue;
/**
* @author Anton Korneta
*/
@Listeners(MockitoTestNGListener.class)
public class SshScriptProviderTest {
private static final String SSH_KEY = "key";
private static final String SCRIPT_FILE = "ssh_script";
private static final String SCRIPT_FILE_WINDOWS = "ssh_script.bat";
private static final String URL = "git@github.com:codenvy/test.git";
@Mock
SshKeyProvider keyProvider;
@InjectMocks
private SshScriptProvider scriptProvider;
@BeforeMethod
public void setUp() throws FileNotFoundException, ServerException {
when(keyProvider.getPrivateKey(URL)).thenReturn(SSH_KEY.getBytes());
}
@Test
public void checkExistenceScriptFileTest() throws ServerException, IOException {
boolean b = false;
SshScript sshScript = scriptProvider.getSshScript(URL);
File scriptDirectory = sshScript.getSshScriptFile().getParentFile();
if (scriptDirectory.exists() && scriptDirectory.isDirectory() && scriptDirectory.listFiles() != null) {
for (File file : scriptDirectory.listFiles()) {
String fileName = file.getName();
b = file.isFile()
&& (fileName.equalsIgnoreCase(SCRIPT_FILE) || fileName.equalsIgnoreCase(SCRIPT_FILE_WINDOWS))
|| b;
}
}
sshScript.delete();
assertTrue(b);
}
}