blob: 663a24fb7d5ee34b722cd4a43901d0255571c6ef [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010, 2016 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.ua.tests.help.criteria;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import org.eclipse.help.ICriterionDefinition;
import org.eclipse.help.ICriterionValueDefinition;
import org.eclipse.help.internal.UAElement;
import org.eclipse.help.internal.UAElementFactory;
import org.eclipse.help.internal.criteria.CriterionDefinition;
import org.eclipse.help.internal.criteria.CriterionValueDefinition;
import org.eclipse.ua.tests.help.other.UserCriterionDefinition;
import org.eclipse.ua.tests.help.other.UserCriterionValueDefinition;
import org.junit.Test;
public class CriteriaDefinitionTest {
private static final String VALUEID1 = "valueid1";
private static final String VALUENAME1 = "first value";
private static final String VALUEID2 = "valueid2";
private static final String VALUENAME2 = "second value";
private static final String CRITERIONID1 = "criterionid1";
private static final String CRITERIONNAME1 = "first criterion";
// Criterion Value
@Test
public void testCriterionValueDefinition() {
UserCriterionValueDefinition valueDefinition = new UserCriterionValueDefinition(VALUEID1, VALUENAME1);
assertEquals(VALUEID1, valueDefinition.getId());
assertEquals(VALUENAME1, valueDefinition.getName());
assertEquals(0, valueDefinition.getChildren().length);
}
@Test
public void testCopyCriterionValueDefinition() {
UserCriterionValueDefinition valueDefinition = new UserCriterionValueDefinition(VALUEID1, VALUENAME1);
ICriterionValueDefinition copy = new CriterionValueDefinition(valueDefinition);
assertEquals(VALUEID1, copy.getId());
assertEquals(VALUENAME1, copy.getName());
assertEquals(0, copy.getChildren().length);
}
@Test
public void testFactoryCreateValueDefinition() {
UserCriterionValueDefinition valueDefinition = new UserCriterionValueDefinition(VALUEID1, VALUENAME1);
UAElement element = UAElementFactory.newElement(valueDefinition);
assertNotNull(element);
assertTrue(element instanceof ICriterionValueDefinition);
ICriterionValueDefinition copy = (ICriterionValueDefinition) element;
assertEquals(VALUEID1, copy.getId());
assertEquals(VALUENAME1, copy.getName());
assertEquals(0, copy.getChildren().length);
}
// Criterion - no children
@Test
public void testCriterionDefinition() {
UserCriterionDefinition definition = new UserCriterionDefinition(CRITERIONID1, CRITERIONNAME1);
assertEquals(CRITERIONID1, definition.getId());
assertEquals(CRITERIONNAME1, definition.getName());
assertEquals(0, definition.getChildren().length);
}
@Test
public void testCopyCriterionDefinition() {
UserCriterionDefinition definition = new UserCriterionDefinition(CRITERIONID1, CRITERIONNAME1);
ICriterionDefinition copy = new CriterionDefinition(definition);
assertEquals(CRITERIONID1, copy.getId());
assertEquals(CRITERIONNAME1, copy.getName());
assertEquals(0, copy.getChildren().length);
}
@Test
public void testFactoryCreateDefinition() {
UserCriterionDefinition definition = new UserCriterionDefinition(CRITERIONID1, CRITERIONNAME1);
UAElement element = UAElementFactory.newElement(definition);
assertNotNull(element);
assertTrue(element instanceof ICriterionDefinition);
ICriterionDefinition copy = (ICriterionDefinition) element;
assertEquals(CRITERIONID1, copy.getId());
assertEquals(CRITERIONNAME1, copy.getName());
assertEquals(0, copy.getChildren().length);
}
@Test
public void testCriterionDefinitionWithValues() {
UserCriterionDefinition definition;
definition = createDefinitionWithValues();
checkDefinitionWithValues(definition);
}
@Test
public void testCopyCriterionDefinitionWithValues() {
UserCriterionDefinition definition;
definition = createDefinitionWithValues();
ICriterionDefinition copy = new CriterionDefinition(definition);
checkDefinitionWithValues(copy);
}
@Test
public void testFactoryCreateCriterionDefinitionWithValues() {
UserCriterionDefinition definition;
definition = createDefinitionWithValues();
UAElement element = UAElementFactory.newElement(definition);
assertNotNull(element);
assertTrue(element instanceof ICriterionDefinition);
ICriterionDefinition copy = (ICriterionDefinition) element;
checkDefinitionWithValues(copy);
}
private UserCriterionDefinition createDefinitionWithValues() {
UserCriterionDefinition definition;
definition = new UserCriterionDefinition(CRITERIONID1, CRITERIONNAME1);
UserCriterionValueDefinition valueDefinition1 = new UserCriterionValueDefinition(
VALUEID1, VALUENAME1);
UserCriterionValueDefinition valueDefinition2 = new UserCriterionValueDefinition(
VALUEID2, VALUENAME2);
definition.addValue(valueDefinition1);
definition.addValue(valueDefinition2);
return definition;
}
private void checkDefinitionWithValues(ICriterionDefinition copy) {
assertEquals(CRITERIONID1, copy.getId());
assertEquals(CRITERIONNAME1, copy.getName());
ICriterionValueDefinition[] values = copy.getCriterionValueDefinitions();
assertEquals(2, values.length);
assertEquals(VALUEID1, values[0].getId());
assertEquals(VALUENAME1, values[0].getName());
assertEquals(VALUEID2, values[1].getId());
assertEquals(VALUENAME2, values[1].getName());
}
}