use of org.eclipse.che.api.project.server.type.ValueProvider in project che by eclipse.
the class JavaValueProviderFactoryTest method checkFoundJavaButNotInRootFolder.
/**
* In this case we have a folder with a javascript file, but some sub folders contains java files
*/
@Test
public void checkFoundJavaButNotInRootFolder() throws Throwable {
// we return a file entry that is a javascript file
FileEntry fileEntry = mock(FileEntry.class);
when(fileEntry.getName()).thenReturn("helloworld.js");
when(rootProjectFolder.getChildFiles()).thenReturn(Collections.singletonList(fileEntry));
FileEntry javaFileEntry = mock(FileEntry.class);
when(javaFileEntry.getName()).thenReturn("helloworld.java");
FolderEntry subFolder = mock(FolderEntry.class);
when(subFolder.getChildFiles()).thenReturn(Collections.singletonList(javaFileEntry));
when(rootProjectFolder.getChildFolders()).thenReturn(Collections.singletonList(subFolder));
ValueProvider javaPropertiesValueProvider = new JavaValueProviderFactory().newInstance(rootProjectFolder);
List<String> hasJavaFiles = javaPropertiesValueProvider.getValues(CONTAINS_JAVA_FILES);
assertNotNull(hasJavaFiles);
assertEquals(hasJavaFiles, Collections.singletonList("true"));
}
use of org.eclipse.che.api.project.server.type.ValueProvider in project che by eclipse.
the class JavaValueProviderFactoryTest method checkFoundJavaFilesInCurrentFolder.
/**
* In this case we have a folder with a java file, so it should find a java file
*/
@Test
public void checkFoundJavaFilesInCurrentFolder() throws Throwable {
// we return a file entry that is a java file
FileEntry fileEntry = mock(FileEntry.class);
when(fileEntry.getName()).thenReturn("helloworld.java");
when(rootProjectFolder.getChildFiles()).thenReturn(Collections.singletonList(fileEntry));
ValueProvider javaPropertiesValueProvider = new JavaValueProviderFactory().newInstance(rootProjectFolder);
List<String> hasJavaFiles = javaPropertiesValueProvider.getValues(CONTAINS_JAVA_FILES);
assertNotNull(hasJavaFiles);
assertEquals(hasJavaFiles, Collections.singletonList("true"));
}
use of org.eclipse.che.api.project.server.type.ValueProvider in project che by eclipse.
the class JavaValueProviderFactoryTest method checkNotFoundJavaFilesInCurrentFolder.
/**
* In this case we have a folder with a javascript file, so it shouldn't find any java files
*/
@Test
public void checkNotFoundJavaFilesInCurrentFolder() throws Throwable {
// we return a file entry that is a javascript file
FileEntry fileEntry = mock(FileEntry.class);
when(fileEntry.getName()).thenReturn("helloworld.js");
when(rootProjectFolder.getChildFiles()).thenReturn(Collections.singletonList(fileEntry));
ValueProvider javaPropertiesValueProvider = new JavaValueProviderFactory().newInstance(rootProjectFolder);
try {
javaPropertiesValueProvider.getValues(CONTAINS_JAVA_FILES);
} catch (ValueStorageException e) {
assertEquals(e.getMessage(), "There are no Java files inside the project");
}
}
use of org.eclipse.che.api.project.server.type.ValueProvider in project che by eclipse.
the class JavaValueProviderFactoryTest method checkFoundJavaDeepFolder.
/**
* In this case we have java file in a very deep folder
*/
@Test
public void checkFoundJavaDeepFolder() throws Throwable {
// we return a file entry that is a javascript file
FileEntry fileEntry = mock(FileEntry.class);
when(fileEntry.getName()).thenReturn("helloworld.js");
when(rootProjectFolder.getChildFiles()).thenReturn(Collections.singletonList(fileEntry));
FolderEntry subFolder = mock(FolderEntry.class);
when(subFolder.getChildFiles()).thenReturn(Collections.emptyList());
when(rootProjectFolder.getChildFolders()).thenReturn(Collections.singletonList(subFolder));
FileEntry javaFileEntry = mock(FileEntry.class);
when(javaFileEntry.getName()).thenReturn("helloworld.java");
FolderEntry subSubFolder = mock(FolderEntry.class);
when(subSubFolder.getChildFiles()).thenReturn(Collections.singletonList(javaFileEntry));
when(subFolder.getChildFolders()).thenReturn(Collections.singletonList(subSubFolder));
ValueProvider javaPropertiesValueProvider = new JavaValueProviderFactory().newInstance(rootProjectFolder);
List<String> hasJavaFiles = javaPropertiesValueProvider.getValues(CONTAINS_JAVA_FILES);
assertNotNull(hasJavaFiles);
assertEquals(hasJavaFiles, Collections.singletonList("true"));
}
use of org.eclipse.che.api.project.server.type.ValueProvider in project che by eclipse.
the class RegisteredProject method initAttributes.
/**
* Initialize project attributes.
* Note: the problem with {@link Problem#code} = 13 will be added when a value for some attribute is not initialized
*/
private void initAttributes() {
// we take only defined attributes, others ignored
for (Map.Entry<String, Attribute> entry : types.getAttributeDefs().entrySet()) {
final Attribute definition = entry.getValue();
final String name = entry.getKey();
AttributeValue value = new AttributeValue(config.getAttributes().get(name));
if (!definition.isVariable()) {
// constant, value always assumed as stated in definition
attributes.put(name, definition.getValue());
} else {
// variable
final Variable variable = (Variable) definition;
// value provided
if (variable.isValueProvided()) {
final ValueProvider valueProvider = variable.getValueProviderFactory().newInstance(folder);
if (folder != null) {
try {
if (!valueProvider.isSettable() || value.isEmpty()) {
// get provided value
value = new AttributeValue(valueProvider.getValues(name));
} else {
// set provided (not empty) value
valueProvider.setValues(name, value.getList());
}
} catch (ValueStorageException e) {
final Problem problem = new Problem(ATTRIBUTE_NAME_PROBLEM, format("Value for attribute %s is not initialized, caused by: %s", variable.getId(), e.getLocalizedMessage()));
this.problems.add(problem);
}
} else {
continue;
}
}
if (value.isEmpty() && variable.isRequired()) {
final Problem problem = new Problem(ATTRIBUTE_NAME_PROBLEM, "Value for required attribute is not initialized " + variable.getId());
this.problems.add(problem);
//throw new ProjectTypeConstraintException("Value for required attribute is not initialized " + variable.getId());
}
if (!value.isEmpty()) {
this.attributes.put(name, value);
}
}
}
}
Aggregations