blob: 2fc028478ae023e913722ac31824a978c8f5ee9c [file] [log] [blame]
package com.apigee.security.oas;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.contains;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import com.beust.jcommander.ParameterException;
import com.google.inject.Provider;
import java.io.PrintWriter;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
@RunWith(JUnit4.class)
public class CommandLineBaseRunnerTest {
@Rule public MockitoRule rule = MockitoJUnit.rule();
@Mock private Provider<PrintWriter> printWriterProvider;
@Mock private CommandLineParser commandLineParser;
@Mock private PrintWriter printWriter;
@InjectMocks private CommandLineBaseRunner commandLineRunner;
@Before
public void setup() {
when(printWriterProvider.get()).thenReturn(printWriter);
}
@Test
public void run_callsParseArguments() {
commandLineRunner.run(new String[] {""});
verify(commandLineParser, atLeastOnce()).parseArguments(any(String[].class));
}
@Test
public void run_onException_printsExceptionMessageAndClosesPrintWriter() {
String exceptionMessage = "No Parameters received";
doThrow(new ParameterException(exceptionMessage))
.when(commandLineParser)
.parseArguments(any(String[].class));
commandLineRunner.run(new String[] {""});
verify(printWriter, atLeastOnce()).println(contains(exceptionMessage));
verify(printWriter, atLeastOnce()).close();
}
}