Skip to content
This repository has been archived by the owner on Jul 13, 2022. It is now read-only.

Commit

Permalink
Try to fix test fails in CI build...
Browse files Browse the repository at this point in the history
... or at least make failure error have more info.
  • Loading branch information
kdvolder committed Feb 13, 2020
1 parent 4bda987 commit e9f68f9
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 4 deletions.
Expand Up @@ -40,7 +40,9 @@ Require-Bundle: org.junit,
org.eclipse.ui.ide,
org.springsource.ide.eclipse.commons.core,
org.yaml.snakeyaml,
com.google.gson
com.google.gson,
org.springframework.tooling.cloudfoundry.manifest.ls,
org.springframework.tooling.ls.eclipse.commons
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ActivationPolicy: lazy
Import-Package: javax.ws.rs.client,
Expand Down
Expand Up @@ -21,10 +21,14 @@

import java.io.ByteArrayInputStream;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.UUID;
import java.util.stream.Collectors;

import org.eclipse.core.filebuffers.FileBuffers;
import org.eclipse.core.filebuffers.ITextFileBufferManager;
Expand Down Expand Up @@ -77,6 +81,12 @@

import com.google.common.collect.ImmutableList;

import junit.framework.AssertionFailedError;

import org.springframework.tooling.cloudfoundry.manifest.ls.CloudFoundryManifestLanguageServer;
import org.springframework.tooling.ls.eclipse.commons.preferences.LanguageServerConsolePreferenceConstants;


/**
* Tests for {@link DeploymentPropertiesDialogModel}
*
Expand Down Expand Up @@ -197,12 +207,34 @@ private void waitUntilFileDisconnedted(IFile file) throws Exception {

private static void waitUntilFileConnected(IFile file) throws Exception {
waitForJobsToComplete();
for (LanguageServerWrapper wrapper : LanguageServiceAccessor.getLSWrappers(file, cap -> true)) {
ACondition.waitFor(file.toString() + " connected to LS", DISCONNECT_TIMEOUT, () -> assertTrue(wrapper.isConnectedTo(file.getLocation())));
}
Collection<LanguageServerWrapper> wrappers = LanguageServiceAccessor.getLSWrappers(file, cap -> true);
LanguageServerWrapper wrapper = getCfLanguageServer(file, wrappers);
ACondition.waitFor(file.toString() + " connected to LS", DISCONNECT_TIMEOUT, () -> assertTrue(wrapper.isConnectedTo(file.getLocation())));
waitForJobsToComplete();
}

private static LanguageServerWrapper getCfLanguageServer(IFile file, Collection<LanguageServerWrapper> wrappers) throws Exception {
StringBuilder available = new StringBuilder();
List<LanguageServerWrapper> found = new ArrayList<>();
for (LanguageServerWrapper wrapper : wrappers) {
if ("org.eclipse.languageserver.languages.cloudfoundrymanifest".equals(wrapper.serverDefinition.id)) {
found.add(wrapper);
}
available.append(wrapper.serverDefinition.id+" ");
}
if (found.isEmpty()) {
throw new NoSuchElementException("No CF language server wrapper found in: [ "+available+"]");
} else if (found.size()>1) {
throw new AssertionFailedError(
"Found more than one ls: "+
found.stream()
.map(w -> w.serverDefinition.id)
.collect(Collectors.toList())
);
}
return found.get(0);
}

private void createDialogModel(IProject project, CFApplication deployedApp) throws Exception {
model = new DeploymentPropertiesDialogModel(ui, createCloudData(), project, deployedApp);
model.initFileModel();
Expand Down

0 comments on commit e9f68f9

Please sign in to comment.