| 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(); |
| } |
| } |