@Test
  public void getDockerComposeVersionNullFactoryReturnsEmptyString() throws Exception {
    DockerComposeVersionGetter dockerComposeVersionGetter =
        new DockerComposeVersionGetter(new ProcessBuilderUtilities());

    assertThat(dockerComposeVersionGetter.getDockerComposeVersion(null), is(""));
  }
  @Test
  public void getDockerComposeVersionInvalidCommandReturnsEmptyString() throws Exception {
    ProcessBuilderFactory factory = mock(ProcessBuilderFactory.class);
    ProcessBuilderUtilities processBuilderUtilitiesMock = spy(ProcessBuilderUtilities.class);

    when(factory.getProcessBuilder(Matchers.<String[]>anyVararg()))
        .thenReturn(new ProcessBuilder("...."));

    DockerComposeVersionGetter dockerComposeVersionGetter =
        new DockerComposeVersionGetter(processBuilderUtilitiesMock);

    assertThat(dockerComposeVersionGetter.getDockerComposeVersion(factory), is(""));
  }
  @Test
  public void getDockerComposeVersionCallsProcessBuilderFactory() throws Exception {
    ProcessBuilderFactory factory = mock(ProcessBuilderFactory.class);
    ProcessBuilderUtilities processBuilderUtilitiesMock = spy(ProcessBuilderUtilities.class);

    when(factory.getProcessBuilder(Matchers.<String[]>anyVararg()))
        .thenReturn(new ProcessBuilder(""));

    DockerComposeVersionGetter dockerComposeVersionGetter =
        new DockerComposeVersionGetter(processBuilderUtilitiesMock);
    dockerComposeVersionGetter.getDockerComposeVersion(factory);

    verify(factory).getProcessBuilder(Matchers.<String[]>anyVararg());
  }
  @Test
  public void getDockerComposeVersionCallsProcessBuilderUtilitiesLinux() throws Exception {
    Assume.assumeTrue(System.getProperty("os.name").toLowerCase().startsWith("lin"));

    ProcessBuilderFactory factoryMock = mock(ProcessBuilderFactory.class);
    ProcessBuilderUtilities processBuilderUtilitiesMock = spy(ProcessBuilderUtilities.class);

    when(factoryMock.getProcessBuilder(Matchers.<String[]>anyVararg()))
        .thenReturn(new ProcessBuilder("ls"));

    DockerComposeVersionGetter dockerComposeVersionGetter =
        new DockerComposeVersionGetter(processBuilderUtilitiesMock);
    dockerComposeVersionGetter.getDockerComposeVersion(factoryMock);

    verify(processBuilderUtilitiesMock)
        .attachStreamsToProcess(
            any(Process.class), any(Writer.class), any(Writer.class), any(Reader.class));
  }