/*******************************************************************************
* Copyright (c) 2007, 2014 compeople AG and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* compeople AG - initial API and implementation
*******************************************************************************/
package org.eclipse.riena.ui.filter.impl;
import junit.framework.TestCase;
import org.eclipse.riena.core.marker.IMarker;
import org.eclipse.riena.core.test.collect.NonUITestCase;
import org.eclipse.riena.ui.core.marker.DisabledMarker;
import org.eclipse.riena.ui.core.marker.HiddenMarker;
import org.eclipse.riena.ui.core.marker.MandatoryMarker;
import org.eclipse.riena.ui.core.marker.OutputMarker;
import org.eclipse.riena.ui.filter.IUIFilterRuleMarkerNavigation;
import org.eclipse.riena.ui.filter.IUIFilterRuleMarkerRidget;
import org.eclipse.riena.ui.filter.extension.IRuleMapperExtension;
import org.eclipse.riena.ui.filter.extension.IRuleMarkerNavigationMapper;
import org.eclipse.riena.ui.filter.extension.IRuleMarkerRidgetMapper;
import org.eclipse.riena.ui.filter.extension.IRuleValidatorRidgetMapper;
/**
* Tests of the class {@link RulesProvider}.
*/
@NonUITestCase
public class RulesProviderTest extends TestCase {
private RulesProvider provider;
@Override
protected void setUp() throws Exception {
provider = new RulesProvider();
}
@Override
protected void tearDown() throws Exception {
provider = null;
}
/**
* Tests the method {@code getRuleMarkerRidget(String).}
*/
public void testGetRuleMarkerRidget() {
final IRuleMapperExtension[] mappers = new IRuleMapperExtension[] { new Mapper() };
provider.update(mappers);
IUIFilterRuleMarkerRidget rule = provider.getRuleMarkerRidget("disabled");
assertEquals(new DisabledMarker(), rule.getMarker());
rule = provider.getRuleMarkerRidget("hidden");
assertEquals(new HiddenMarker(), rule.getMarker());
rule = provider.getRuleMarkerRidget("mandatory");
assertEquals(new MandatoryMarker(), rule.getMarker());
rule = provider.getRuleMarkerRidget("output");
assertEquals(new OutputMarker(), rule.getMarker());
rule = provider.getRuleMarkerRidget("dummy");
assertNull(rule);
}
/**
* Tests the method {@code getRuleMarkerNavigation(String).}
*/
public void testGetRuleMarkerNavigation() {
final IRuleMapperExtension[] mappers = new IRuleMapperExtension[] { new Mapper() };
provider.update(mappers);
IUIFilterRuleMarkerNavigation rule = provider.getRuleMarkerNavigation("disabled");
assertEquals(new DisabledMarker(), rule.getMarker());
rule = provider.getRuleMarkerNavigation("hidden");
assertEquals(new HiddenMarker(), rule.getMarker());
rule = provider.getRuleMarkerNavigation("mandatory");
assertNull(rule);
rule = provider.getRuleMarkerNavigation("output");
assertNull(rule);
rule = provider.getRuleMarkerNavigation("dummy");
assertNull(rule);
}
/**
* Tests the method {@code getRuleMarkerMenuItem(String).}
*/
public void testGetRuleMarkerMenuItem() {
final IRuleMapperExtension[] mappers = new IRuleMapperExtension[] { new Mapper() };
provider.update(mappers);
IUIFilterRuleMarkerRidget rule = provider.getRuleMarkerMenuItem("disabled");
assertEquals(new DisabledMarker(), rule.getMarker());
rule = provider.getRuleMarkerMenuItem("hidden");
assertEquals(new HiddenMarker(), rule.getMarker());
rule = provider.getRuleMarkerMenuItem("mandatory");
assertNull(rule);
rule = provider.getRuleMarkerMenuItem("output");
assertNull(rule);
rule = provider.getRuleMarkerMenuItem("dummy");
assertNull(rule);
}
private class Mapper implements IRuleMapperExtension {
public IRuleMarkerNavigationMapper getNavigationDisabledMarker() {
return new IRuleMarkerNavigationMapper() {
public IUIFilterRuleMarkerNavigation getRuleClass() {
return new AbstractRuleMarkerNavigation() {
public IMarker getMarker() {
return new DisabledMarker();
}
};
}
};
}
public IRuleMarkerNavigationMapper getNavigationHiddenMarker() {
return new IRuleMarkerNavigationMapper() {
public IUIFilterRuleMarkerNavigation getRuleClass() {
return new AbstractRuleMarkerNavigation() {
public IMarker getMarker() {
return new HiddenMarker();
}
};
}
};
}
public IRuleMarkerRidgetMapper getRidgetDisabledMarker() {
return new IRuleMarkerRidgetMapper() {
public IUIFilterRuleMarkerRidget getRuleClass() {
return new AbstractRuleMarkerRidget() {
public IMarker getMarker() {
return new DisabledMarker();
}
};
}
};
}
public IRuleMarkerRidgetMapper getRidgetHiddenMarker() {
return new IRuleMarkerRidgetMapper() {
public IUIFilterRuleMarkerRidget getRuleClass() {
return new AbstractRuleMarkerRidget() {
public IMarker getMarker() {
return new HiddenMarker();
}
};
}
};
}
public IRuleMarkerRidgetMapper getRidgetMandatoryMarker() {
return new IRuleMarkerRidgetMapper() {
public IUIFilterRuleMarkerRidget getRuleClass() {
return new AbstractRuleMarkerRidget() {
public IMarker getMarker() {
return new MandatoryMarker();
}
};
}
};
}
public IRuleMarkerRidgetMapper getRidgetOutputMarker() {
return new IRuleMarkerRidgetMapper() {
public IUIFilterRuleMarkerRidget getRuleClass() {
return new AbstractRuleMarkerRidget() {
public IMarker getMarker() {
return new OutputMarker();
}
};
}
};
}
public IRuleMarkerRidgetMapper getMenuItemDisabledMarker() {
return new IRuleMarkerRidgetMapper() {
public IUIFilterRuleMarkerRidget getRuleClass() {
return new AbstractRuleMarkerRidget() {
public IMarker getMarker() {
return new DisabledMarker();
}
};
}
};
}
public IRuleMarkerRidgetMapper getMenuItemHiddenMarker() {
return new IRuleMarkerRidgetMapper() {
public IUIFilterRuleMarkerRidget getRuleClass() {
return new AbstractRuleMarkerRidget() {
public IMarker getMarker() {
return new HiddenMarker();
}
};
}
};
}
public IRuleValidatorRidgetMapper getRidgetValidator() {
return null;
}
}
private abstract class AbstractRuleMarkerNavigation implements IUIFilterRuleMarkerNavigation {
public void setNode(final String nodeId) {
}
public void apply(final Object object) {
}
public boolean matches(final Object... object) {
return false;
}
public void remove(final Object object) {
}
}
private abstract class AbstractRuleMarkerRidget implements IUIFilterRuleMarkerRidget {
public void setId(final String id) {
}
public void apply(final Object object) {
}
public boolean matches(final Object... object) {
return false;
}
public void remove(final Object object) {
}
}
}