[ 
https://issues.apache.org/jira/browse/GEODE-3413?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16120573#comment-16120573
 ] 

ASF GitHub Bot commented on GEODE-3413:
---------------------------------------

Github user pdxrunner commented on a diff in the pull request:

    https://github.com/apache/geode/pull/699#discussion_r132291477
  
    --- Diff: 
geode-core/src/test/java/org/apache/geode/distributed/AbstractLauncherTest.java 
---
    @@ -14,253 +14,370 @@
      */
     package org.apache.geode.distributed;
     
    +import static java.util.concurrent.TimeUnit.DAYS;
    +import static java.util.concurrent.TimeUnit.HOURS;
    +import static java.util.concurrent.TimeUnit.MILLISECONDS;
    +import static java.util.concurrent.TimeUnit.MINUTES;
    +import static java.util.concurrent.TimeUnit.SECONDS;
    +import static 
org.apache.geode.distributed.AbstractLauncher.ServiceState.toDaysHoursMinutesSeconds;
     import static org.apache.geode.distributed.ConfigurationProperties.NAME;
    -import static org.junit.Assert.assertEquals;
    -import static org.junit.Assert.assertFalse;
    -import static org.junit.Assert.assertNotNull;
    -import static org.junit.Assert.assertNull;
    -import static org.junit.Assert.assertTrue;
    +import static org.assertj.core.api.Assertions.assertThat;
    +import static org.assertj.core.api.Assertions.entry;
     import static org.mockito.Mockito.mock;
     import static org.mockito.Mockito.times;
     import static org.mockito.Mockito.verify;
     
    +import java.net.URL;
    +import java.util.Properties;
    +
     import org.apache.commons.lang.StringUtils;
    -import org.apache.geode.test.junit.categories.UnitTest;
     import org.junit.Test;
     import org.junit.experimental.categories.Category;
     
    -import java.net.MalformedURLException;
    -import java.net.URL;
    -import java.util.Properties;
    -import java.util.concurrent.TimeUnit;
    +import org.apache.geode.test.junit.categories.UnitTest;
     
     /**
    - * The AbstractLauncherTest class is a test suite of unit tests testing 
the contract and
    - * functionality of the AbstractLauncher class.
    - * <p/>
    - * 
    - * @see org.apache.geode.distributed.AbstractLauncher
    - * @see org.junit.Assert
    - * @see org.junit.Test
    + * Unit tests for {@link AbstractLauncher}.
    + *
      * @since GemFire 7.0
      */
     @Category(UnitTest.class)
     public class AbstractLauncherTest {
     
    -  private AbstractLauncher<?> createAbstractLauncher(final String 
memberName,
    -      final String memberId) {
    -    return new FakeServiceLauncher(memberName, memberId);
    -  }
    -
       @Test
    -  public void shouldBeMockable() throws Exception {
    +  public void canBeMocked() throws Exception {
         AbstractLauncher mockAbstractLauncher = mock(AbstractLauncher.class);
         mockAbstractLauncher.setDebug(true);
         verify(mockAbstractLauncher, times(1)).setDebug(true);
       }
     
       @Test
    -  public void testIsSet() {
    -    final Properties properties = new Properties();
    +  public void isSetReturnsFalseIfPropertyDoesNotExist() throws Exception {
    +    assertThat(AbstractLauncher.isSet(new Properties(), NAME)).isFalse();
    +  }
     
    -    assertFalse(properties.containsKey(NAME));
    -    assertFalse(AbstractLauncher.isSet(properties, NAME));
    +  @Test
    +  public void isSetReturnsFalseIfPropertyHasEmptyValue() throws Exception {
    +    Properties properties = new Properties();
     
         properties.setProperty(NAME, "");
     
    -    assertTrue(properties.containsKey(NAME));
    -    assertFalse(AbstractLauncher.isSet(properties, NAME));
    +    assertThat(AbstractLauncher.isSet(properties, NAME)).isFalse();
    +  }
    +
    +  @Test
    +  public void isSetReturnsFalseIfPropertyHasBlankValue() throws Exception {
    +    Properties properties = new Properties();
     
         properties.setProperty(NAME, "  ");
     
    -    assertTrue(properties.containsKey(NAME));
    -    assertFalse(AbstractLauncher.isSet(properties, NAME));
    +    assertThat(AbstractLauncher.isSet(properties, NAME)).isFalse();
    +  }
    +
    +  @Test
    +  public void isSetReturnsFalseIfPropertyHasRealValue() throws Exception {
    +    Properties properties = new Properties();
     
         properties.setProperty(NAME, "memberOne");
     
    -    assertTrue(AbstractLauncher.isSet(properties, NAME));
    -    assertFalse(AbstractLauncher.isSet(properties, "NaMe"));
    +    assertThat(AbstractLauncher.isSet(properties, NAME)).isTrue();
       }
     
       @Test
    -  public void testLoadGemFirePropertiesWithNullURL() {
    -    final Properties properties = 
AbstractLauncher.loadGemFireProperties(null);
    -    assertNotNull(properties);
    -    assertTrue(properties.isEmpty());
    +  public void isSetKeyIsCaseSensitive() throws Exception {
    +    Properties properties = new Properties();
    +
    +    properties.setProperty(NAME, "memberOne");
    +
    +    assertThat(AbstractLauncher.isSet(properties, "NaMe")).isFalse();
       }
     
       @Test
    -  public void testLoadGemFirePropertiesWithNonExistingURL() throws 
MalformedURLException {
    -    final Properties properties = AbstractLauncher
    -        .loadGemFireProperties(new 
URL("file:///path/to/non_existing/gemfire.properties"));
    -    assertNotNull(properties);
    -    assertTrue(properties.isEmpty());
    +  public void loadGemFirePropertiesWithNullURLReturnsEmptyProperties() 
throws Exception {
    +    URL nullUrl = null;
    +
    +    Properties properties = 
AbstractLauncher.loadGemFireProperties(nullUrl);
    +
    +    assertThat(properties).isNotNull().isEmpty();
       }
     
       @Test
    -  public void testGetDistributedSystemProperties() {
    -    AbstractLauncher<?> launcher = createAbstractLauncher("memberOne", 
"1");
    +  public void 
loadGemFirePropertiesWithNonExistingURLReturnsEmptyProperties() throws 
Exception {
    +    URL nonExistingUrl = new 
URL("file:///path/to/non_existing/gemfire.properties");
    +
    +    Properties properties = 
AbstractLauncher.loadGemFireProperties(nonExistingUrl);
     
    -    assertNotNull(launcher);
    -    assertEquals("1", launcher.getMemberId());
    -    assertEquals("memberOne", launcher.getMemberName());
    +    assertThat(properties).isNotNull().isEmpty();
    +  }
     
    -    Properties distributedSystemProperties = 
launcher.getDistributedSystemProperties();
    +  @Test
    +  public void abstractLauncherHasMemberIdAndMemberName() throws Exception {
    --- End diff --
    
    I don't see the need for all the tests that exercise methods that are 
overridden in the embedded test class for AbstractLauncher. Any test that 
calls, for instance, 'launcher.getMemberId()' is only testing the test class, 
not the default implementation in the abstract class.


> Overhaul launcher tests and process tests
> -----------------------------------------
>
>                 Key: GEODE-3413
>                 URL: https://issues.apache.org/jira/browse/GEODE-3413
>             Project: Geode
>          Issue Type: Improvement
>          Components: gfsh
>            Reporter: Kirk Lund
>            Assignee: Kirk Lund
>              Labels: LauncherTest, ProcessTest
>
> The launcher and process tests are closely related and in need of overhauling 
> to improve debugging and remove flakiness.
> In addition, the org.apache.geode.internal.process package is need of 
> improving the test code coverage.
> Launcher tests:
> * 
> geode-assembly/src/test/java/org/apache/geode/distributed/LocatorLauncherAssemblyIntegrationTest.java
> * 
> geode-core/src/test/java/org/apache/geode/distributed/AbstractLauncherIntegrationTest.java
> * 
> geode-core/src/test/java/org/apache/geode/distributed/AbstractLauncherServiceStatusTest.java
> * 
> geode-core/src/test/java/org/apache/geode/distributed/AbstractLauncherTest.java
> * 
> geode-core/src/test/java/org/apache/geode/distributed/LauncherMemberMXBeanIntegrationTest.java
> * 
> geode-core/src/test/java/org/apache/geode/distributed/LocatorLauncherIntegrationTest.java
> * 
> geode-core/src/test/java/org/apache/geode/distributed/LocatorLauncherLocalFileIntegrationTest.java
> * 
> geode-core/src/test/java/org/apache/geode/distributed/LocatorLauncherLocalIntegrationTest.java
> * 
> geode-core/src/test/java/org/apache/geode/distributed/LocatorLauncherRemoteFileIntegrationTest.java
> * 
> geode-core/src/test/java/org/apache/geode/distributed/LocatorLauncherRemoteIntegrationTest.java
> * 
> geode-core/src/test/java/org/apache/geode/distributed/LocatorLauncherRemoteWithCustomLoggingIntegrationTest.java
> * 
> geode-core/src/test/java/org/apache/geode/distributed/LocatorLauncherTest.java
> * geode-core/src/test/java/org/apache/geode/distributed/LocatorStateTest.java
> * 
> geode-core/src/test/java/org/apache/geode/distributed/ServerLauncherIntegrationTest.java
> * 
> geode-core/src/test/java/org/apache/geode/distributed/ServerLauncherLocalFileIntegrationTest.java
> * 
> geode-core/src/test/java/org/apache/geode/distributed/ServerLauncherLocalIntegrationTest.java
> * 
> geode-core/src/test/java/org/apache/geode/distributed/ServerLauncherRemoteFileIntegrationTest.java
> * 
> geode-core/src/test/java/org/apache/geode/distributed/ServerLauncherRemoteIntegrationTest.java
> * 
> geode-core/src/test/java/org/apache/geode/distributed/ServerLauncherRemoteWithCustomLoggingIntegrationTest.java
> * 
> geode-core/src/test/java/org/apache/geode/distributed/ServerLauncherRemoteWithCustomLoggingIntegrationTest.java
> * 
> geode-core/src/test/java/org/apache/geode/distributed/ServerLauncherTest.java
> * 
> geode-core/src/test/java/org/apache/geode/distributed/ServerLauncherWithProviderIntegrationTest.java
> Process tests:
> * 
> geode-core/src/test/java/org/apache/geode/internal/process/BlockingProcessStreamReaderJUnitTest.java
> * 
> geode-core/src/test/java/org/apache/geode/internal/process/FileProcessControllerIntegrationJUnitTest.java
> * 
> geode-core/src/test/java/org/apache/geode/internal/process/LocalProcessControllerJUnitTest.java
> * 
> geode-core/src/test/java/org/apache/geode/internal/process/LocalProcessLauncherDUnitTest.java
> * 
> geode-core/src/test/java/org/apache/geode/internal/process/LocalProcessLauncherJUnitTest.java
> * 
> geode-core/src/test/java/org/apache/geode/internal/process/NonBlockingProcessStreamReaderJUnitTest.java
> * 
> geode-core/src/test/java/org/apache/geode/internal/process/PidFileJUnitTest.java
> * 
> geode-core/src/test/java/org/apache/geode/internal/process/ProcessControllerFactoryJUnitTest.java



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to