blob: af01bd3db3eaaeb2667ff4e028a6a6ab51ff65ec [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2020 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jdt.ui.tests.refactoring.nls;
import static org.junit.Assert.assertEquals;
import java.util.Properties;
import org.junit.Test;
import org.eclipse.jdt.internal.corext.refactoring.nls.NLSSubstitution;
public class NLSSubstitutionTest {
@Test
public void generatedKey() {
NLSSubstitution[] substitutions = {
new NLSSubstitution(NLSSubstitution.EXTERNALIZED, "key.0", "v1", null, null),
new NLSSubstitution(NLSSubstitution.EXTERNALIZED, "key.2", "v2", null, null)
};
setPrefix("key.", substitutions);
NLSSubstitution subs = new NLSSubstitution(NLSSubstitution.IGNORED, "v1", null);
subs.setState(NLSSubstitution.EXTERNALIZED);
subs.setPrefix("key.");
subs.generateKey(substitutions, new Properties());
assertEquals("key.1", subs.getKey());
}
@Test
public void generatedKey2() {
NLSSubstitution[] substitutions = {
new NLSSubstitution(NLSSubstitution.EXTERNALIZED, "key.0", "v1", null, null),
new NLSSubstitution(NLSSubstitution.INTERNALIZED, "v2", null)
};
substitutions[1].setState(NLSSubstitution.EXTERNALIZED);
setPrefix("key.", substitutions);
substitutions[1].generateKey(substitutions, new Properties());
NLSSubstitution subs = new NLSSubstitution(NLSSubstitution.IGNORED, "v1", null);
subs.setState(NLSSubstitution.EXTERNALIZED);
subs.setPrefix("key.");
subs.generateKey(substitutions, new Properties());
assertEquals("key.2", subs.getKey());
}
@Test
public void generatedKeyBug202815() {
NLSSubstitution substitution= new NLSSubstitution(NLSSubstitution.IGNORED, "v1", null);
substitution.setState(NLSSubstitution.EXTERNALIZED);
substitution.setPrefix("key.");
Properties properties= new Properties();
properties.put("key.0", "v0");
substitution.generateKey(new NLSSubstitution[] { substitution }, properties);
assertEquals("key.1", substitution.getKey());
}
@Test
public void getKeyWithoutPrefix() {
NLSSubstitution substitution = new NLSSubstitution(NLSSubstitution.EXTERNALIZED, "key", "value", null, null);
substitution.setPrefix("test.");
assertEquals("key", substitution.getKey());
}
@Test
public void getKeyWithPrefix() {
NLSSubstitution substitution = new NLSSubstitution(NLSSubstitution.INTERNALIZED, "value", null);
substitution.setState(NLSSubstitution.EXTERNALIZED);
substitution.setKey("key");
substitution.setPrefix("test.");
assertEquals("test.key", substitution.getKey());
}
private void setPrefix(String prefix, NLSSubstitution[] subs) {
for (NLSSubstitution sub : subs) {
sub.setPrefix(prefix);
}
}
}