@@ -0,0 +1,2986 @@
+/*%0A * Copyright 2020 Google LLC%0A *%0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A *%0A *     https://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A */%0A%0Apackage tsunami.security.scanner.utilities;%0A%0Aimport static com.google.common.truth.Truth.assertThat;%0Aimport static org.junit.Assert.assertThrows;%0A%0Aimport com.beust.jcommander.JCommander;%0Aimport com.beust.jcommander.ParameterException;%0Aimport org.junit.Test;%0Aimport org.junit.runner.RunWith;%0Aimport org.junit.runners.JUnit4;%0A%0A@RunWith(JUnit4.class)%0Apublic final class ApplicationArgsTest %7B%0A%0A  @Test%0A  public void parse_whenValidArgs_parsesSuccessfully() %7B%0A    String%5B%5D args =%0A        new String%5B%5D %7B%0A          %22--app%22,%0A          %22jupyter%22,%0A          %22--configPath%22,%0A          %22application%22,%0A          %22--templateData%22,%0A          %22%7B'jupyter_version':'notebook-6.0.3'%7D%22%0A        %7D;%0A%0A    ApplicationArgs jArgs = new ApplicationArgs();%0A    JCommander cmd = JCommander.newBuilder().addObject(jArgs).build();%0A    cmd.parse(args);%0A%0A    assertThat(jArgs.getName()).isEqualTo(%22jupyter%22);%0A    assertThat(jArgs.getConfigPath()).isEqualTo(%22application%22);%0A    assertThat(jArgs.getTemplateData()).isEqualTo(%22%7B'jupyter_version':'notebook-6.0.3'%7D%22);%0A  %7D%0A%0A  @Test%0A  public void parse_whenInvalidFlags_parseFailed() %7B%0A    String%5B%5D args =%0A        new String%5B%5D %7B%0A          %22--app%22,%0A          %22jupyter%22,%0A          %22--config%22,%0A          %22application%22,%0A          %22--templateData%22,%0A          %22%7B'jupyter_version':'notebook-6.0.3'%7D%22%0A        %7D;%0A%0A    ApplicationArgs jArgs = new ApplicationArgs();%0A    JCommander cmd = JCommander.newBuilder().addObject(jArgs).build();%0A%0A    assertThrows(ParameterException.class, () -%3E cmd.parse(args));%0A  %7D%0A%0A  @Test%0A  public void parse_whenExtraArgsPassedIn_parseFailed() %7B%0A    String%5B%5D args =%0A        new String%5B%5D %7B%0A          %22--app%22,%0A          %22jupyter%22,%0A          %22--configPath%22,%0A          %22application%22,%0A          %22--templateData%22,%0A          %22%7B'jupyter_version':'notebook-6.0.3'%7D%22,%0A          %22extra%22%0A        %7D;%0A%0A    ApplicationArgs jArgs = new ApplicationArgs();%0A    JCommander cmd = JCommander.newBuilder().addObject(jArgs).build();%0A%0A    assertThrows(ParameterException.class, () -%3E cmd.parse(args));%0A  %7D%0A%0A  @Test%0A  public void parse_whenArgsContentMissing_parseFailed() %7B%0A    String%5B%5D args =%0A        new String%5B%5D %7B%22--app%22, %22jupyter%22, %22--configPath%22, %22application%22, %22--templateData%22%7D;%0A%0A    ApplicationArgs jArgs = new ApplicationArgs();%0A    JCommander cmd = JCommander.newBuilder().addObject(jArgs).build();%0A%0A    assertThrows(ParameterException.class, () -%3E cmd.parse(args));%0A  %7D%0A%7D%0A

Add unit tests to ApplicationArgs class (#14)