Test xml keys are unique
This commit is contained in:
@ -36,5 +36,10 @@
|
|||||||
<artifactId>pmd-apex</artifactId>
|
<artifactId>pmd-apex</artifactId>
|
||||||
<version>6.0.0-SNAPSHOT</version>
|
<version>6.0.0-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>junit</groupId>
|
||||||
|
<artifactId>junit</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
@ -44,7 +44,7 @@ import javafx.scene.control.TreeItem;
|
|||||||
import javafx.scene.control.TreeView;
|
import javafx.scene.control.TreeView;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Presenter of the designer window.
|
* Presenter of the designer window. Subscribes to the events of the {@link DesignerWindow} that instantiates it.
|
||||||
*
|
*
|
||||||
* @author Clément Fournier
|
* @author Clément Fournier
|
||||||
* @since 6.0.0
|
* @since 6.0.0
|
||||||
@ -280,7 +280,7 @@ public class DesignerWindowPresenter {
|
|||||||
XMLSettingsSaver saver = XMLSettingsSaver.forFile(SETTINGS_FILE_NAME);
|
XMLSettingsSaver saver = XMLSettingsSaver.forFile(SETTINGS_FILE_NAME);
|
||||||
|
|
||||||
for (DesignerWindowSettings setting : DesignerWindowSettings.values()) {
|
for (DesignerWindowSettings setting : DesignerWindowSettings.values()) {
|
||||||
saver.put(setting.keyName, setting.getValueFrom(this));
|
saver.put(setting.getKeyName(), setting.getValueFrom(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
saver.save();
|
saver.save();
|
||||||
@ -291,7 +291,7 @@ public class DesignerWindowPresenter {
|
|||||||
private void loadSettings() throws IOException {
|
private void loadSettings() throws IOException {
|
||||||
|
|
||||||
Set<String> keyNames = Arrays.stream(DesignerWindowSettings.values())
|
Set<String> keyNames = Arrays.stream(DesignerWindowSettings.values())
|
||||||
.map(e -> e.keyName)
|
.map(DesignerWindowSettings::getKeyName)
|
||||||
.collect(Collectors.toSet());
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
XMLSettingsLoader loader = new XMLSettingsLoader(SETTINGS_FILE_NAME, keyNames);
|
XMLSettingsLoader loader = new XMLSettingsLoader(SETTINGS_FILE_NAME, keyNames);
|
||||||
@ -304,8 +304,6 @@ public class DesignerWindowPresenter {
|
|||||||
|
|
||||||
/********************************/
|
/********************************/
|
||||||
/* SETTINGS LOAD/STORE ROUTINES */
|
/* SETTINGS LOAD/STORE ROUTINES */
|
||||||
|
|
||||||
|
|
||||||
/********************************/
|
/********************************/
|
||||||
|
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ enum DesignerWindowSettings {
|
|||||||
DesignerWindowPresenter::setLeftToolbarDividerPosition);
|
DesignerWindowPresenter::setLeftToolbarDividerPosition);
|
||||||
|
|
||||||
|
|
||||||
public final String keyName;
|
private final String keyName;
|
||||||
private final Function<DesignerWindowPresenter, String> getValueFunction;
|
private final Function<DesignerWindowPresenter, String> getValueFunction;
|
||||||
private final PresenterSettingSetter setValueFunction;
|
private final PresenterSettingSetter setValueFunction;
|
||||||
|
|
||||||
@ -83,6 +83,11 @@ enum DesignerWindowSettings {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public String getKeyName() {
|
||||||
|
return keyName;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/** Get the setting from the name of its key. */
|
/** Get the setting from the name of its key. */
|
||||||
static DesignerWindowSettings ofKeyName(String key) {
|
static DesignerWindowSettings ofKeyName(String key) {
|
||||||
return Arrays.stream(DesignerWindowSettings.values())
|
return Arrays.stream(DesignerWindowSettings.values())
|
||||||
|
@ -20,7 +20,7 @@ import javafx.collections.FXCollections;
|
|||||||
import javafx.collections.ObservableList;
|
import javafx.collections.ObservableList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Main class of the model.
|
* Main class of the model. Manages the compilation unit and evaluation logic.
|
||||||
*
|
*
|
||||||
* @author Clément Fournier
|
* @author Clément Fournier
|
||||||
* @since 6.0.0
|
* @since 6.0.0
|
||||||
@ -61,7 +61,7 @@ public class ASTManager {
|
|||||||
|
|
||||||
|
|
||||||
public String getXPathVersion() {
|
public String getXPathVersion() {
|
||||||
return xpathEvaluator.xpathVersionProperty().get();
|
return xpathEvaluator.getXpathVersion();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -82,11 +82,11 @@ public class ASTManager {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Evaluates an XPath request, returns the matching nodes.
|
* Evaluates an XPath query, returns the matching nodes.
|
||||||
*
|
*
|
||||||
* @param xpathQuery Query to execute
|
* @param xpathQuery Query to execute
|
||||||
*
|
*
|
||||||
* @return The matching nodes, or Optional.empty if the compilation unit is invalid.
|
* @return List of the matching nodes, never null.
|
||||||
*
|
*
|
||||||
* @throws XPathEvaluationException if there was an error during the evaluation. The cause is preserved.
|
* @throws XPathEvaluationException if there was an error during the evaluation. The cause is preserved.
|
||||||
*/
|
*/
|
||||||
@ -97,6 +97,13 @@ public class ASTManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns true if the source must be recompiled.
|
||||||
|
*
|
||||||
|
* @param source Source to test
|
||||||
|
*
|
||||||
|
* @return true if the current AST does not correspond to the parameter source
|
||||||
|
*/
|
||||||
public boolean isRecompilationNeeded(String source) {
|
public boolean isRecompilationNeeded(String source) {
|
||||||
return !StringUtils.equals(source, lastValidSource)
|
return !StringUtils.equals(source, lastValidSource)
|
||||||
|| !languageVersion.get().equals(lastLanguageVersion);
|
|| !languageVersion.get().equals(lastLanguageVersion);
|
||||||
|
@ -33,7 +33,7 @@ class XPathEvaluator {
|
|||||||
private final StringProperty xpathVersion = new SimpleStringProperty();
|
private final StringProperty xpathVersion = new SimpleStringProperty();
|
||||||
|
|
||||||
|
|
||||||
public String getXpathVersion() {
|
String getXpathVersion() {
|
||||||
return xpathVersion.get();
|
return xpathVersion.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,28 @@
|
|||||||
|
package net.sourceforge.pmd.util.fxdesigner;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Clément Fournier
|
||||||
|
* @since 6.0.0
|
||||||
|
*/
|
||||||
|
public class DesignerWindowSettingsTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testKeysNamesAreUnique() {
|
||||||
|
List<String> keyNames = Arrays.stream(DesignerWindowSettings.values())
|
||||||
|
.map(DesignerWindowSettings::getKeyName)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
assertEquals(keyNames.size(), new HashSet<>(keyNames).size());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Reference in New Issue
Block a user