/*******************************************************************************
* (c) Copyright 2016 Hewlett-Packard Development Company, L.P.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Apache License v2.0 which accompany this distribution.
*
* The Apache License is available at
* http://www.apache.org/licenses/LICENSE-2.0
*
*******************************************************************************/
package io.cloudslang.lang.cli;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.springframework.shell.Bootstrap;
import static org.powermock.api.mockito.PowerMockito.doNothing;
import static org.powermock.api.mockito.PowerMockito.mockStatic;
@RunWith(PowerMockRunner.class)
@PrepareForTest({SlangBootstrap.class, Bootstrap.class})
public class SlangBootstrapTest {
@Before
public void before() throws Exception {
System.setProperty("app.home", getClass().getResource("/slangbootstrap").getPath());
}
@Test
public void testLoadUserProperties() throws Exception {
mockStatic(Bootstrap.class);
doNothing().when(Bootstrap.class);
SlangBootstrap.main(new String[0]);
Assert.assertTrue(System.getProperty("cslang.encoding").endsWith("utf-8"));
Assert.assertTrue(System.getProperty("app.home").endsWith("/slangbootstrap"));
Assert.assertTrue(System.getProperty("maven.home").endsWith("/slangbootstrap/maven/apache-maven-3.3.9"));
Assert.assertTrue(System.getProperty("maven.multiModuleProjectDirectory")
.endsWith("/slangbootstrap/maven/apache-maven-3.3.9"));
Assert.assertTrue(System.getProperty("maven.settings.xml.path")
.endsWith("/slangbootstrap/maven/conf/settings.xml"));
Assert.assertTrue(System.getProperty("maven.m2.conf.path").endsWith("/slangbootstrap/maven/conf/m2.conf"));
Assert.assertTrue(System.getProperty("cloudslang.maven.repo.local").endsWith("/slangbootstrap/maven/repo"));
Assert.assertTrue(System.getProperty("cloudslang.maven.repo.remote.url")
.endsWith("http://repo1.maven.org/maven2"));
Assert.assertTrue(System.getProperty("cloudslang.maven.plugins.remote.url")
.endsWith("http://repo1.maven.org/maven2"));
}
}