use of org.apache.neethi.Policy in project cxf by apache.
the class EndpointPolicyImpl method updatePolicy.
public EndpointPolicy updatePolicy(Policy p, Message msg) {
EndpointPolicyImpl epi = createEndpointPolicy();
if (!PolicyUtils.isEmptyPolicy(p)) {
Policy normalizedPolicy = p.normalize(engine == null ? null : engine.getRegistry(), true);
epi.setPolicy(getPolicy().merge(normalizedPolicy));
} else {
Policy clonedPolicy = new Policy();
clonedPolicy.addPolicyComponents(getPolicy().getPolicyComponents());
epi.setPolicy(clonedPolicy);
}
epi.checkExactlyOnes();
epi.finalizeConfig(msg);
return epi;
}
use of org.apache.neethi.Policy in project cxf by apache.
the class PolicyEngineTest method testGetAssertions.
@Test
public void testGetAssertions() throws NoSuchMethodException {
Method m = PolicyEngineImpl.class.getDeclaredMethod("addAssertions", new Class[] { PolicyComponent.class, boolean.class, Collection.class });
engine = EasyMock.createMockBuilder(PolicyEngineImpl.class).addMockedMethod(m).createMock(control);
PolicyAssertion a = control.createMock(PolicyAssertion.class);
EasyMock.expect(a.getType()).andReturn(Constants.TYPE_ASSERTION);
EasyMock.expect(a.isOptional()).andReturn(true);
control.replay();
assertTrue(engine.getAssertions(a, false).isEmpty());
control.verify();
control.reset();
EasyMock.expect(a.getType()).andReturn(Constants.TYPE_ASSERTION);
// EasyMock.expect(a.isOptional()).andReturn(false);
control.replay();
Collection<Assertion> ca = engine.getAssertions(a, true);
assertEquals(1, ca.size());
assertSame(a, ca.iterator().next());
control.verify();
control.reset();
Policy p = control.createMock(Policy.class);
EasyMock.expect(p.getType()).andReturn(Constants.TYPE_POLICY);
engine.addAssertions(EasyMock.eq(p), EasyMock.eq(false), CastUtils.cast(EasyMock.isA(Collection.class), Assertion.class));
EasyMock.expectLastCall();
control.replay();
assertTrue(engine.getAssertions(p, false).isEmpty());
control.verify();
}
use of org.apache.neethi.Policy in project cxf by apache.
the class PolicyEngineTest method testGetAggregatedFaultPolicy.
@Test
public void testGetAggregatedFaultPolicy() {
engine = new PolicyEngineImpl();
BindingFaultInfo bfi = control.createMock(BindingFaultInfo.class);
control.replay();
Policy p = engine.getAggregatedFaultPolicy(bfi, null);
assertTrue(p.isEmpty());
control.verify();
control.reset();
PolicyProvider provider1 = control.createMock(PolicyProvider.class);
engine.getPolicyProviders().add(provider1);
Policy p1 = control.createMock(Policy.class);
EasyMock.expect(provider1.getEffectivePolicy(bfi, null)).andReturn(p1);
control.replay();
assertSame(p1, engine.getAggregatedFaultPolicy(bfi, null));
control.verify();
control.reset();
PolicyProvider provider2 = control.createMock(PolicyProvider.class);
engine.getPolicyProviders().add(provider2);
Policy p2 = control.createMock(Policy.class);
Policy p3 = control.createMock(Policy.class);
EasyMock.expect(provider1.getEffectivePolicy(bfi, null)).andReturn(p1);
EasyMock.expect(provider2.getEffectivePolicy(bfi, null)).andReturn(p2);
EasyMock.expect(p1.merge(p2)).andReturn(p3);
control.replay();
assertSame(p3, engine.getAggregatedFaultPolicy(bfi, null));
control.verify();
}
use of org.apache.neethi.Policy in project cxf by apache.
the class PolicyEngineTest method testGetAggregatedMessagePolicy.
@Test
public void testGetAggregatedMessagePolicy() {
engine = new PolicyEngineImpl();
BindingMessageInfo bmi = control.createMock(BindingMessageInfo.class);
control.replay();
Policy p = engine.getAggregatedMessagePolicy(bmi, null);
assertTrue(p.isEmpty());
control.verify();
control.reset();
PolicyProvider provider1 = control.createMock(PolicyProvider.class);
engine.getPolicyProviders().add(provider1);
Policy p1 = control.createMock(Policy.class);
EasyMock.expect(provider1.getEffectivePolicy(bmi, null)).andReturn(p1);
control.replay();
assertSame(p1, engine.getAggregatedMessagePolicy(bmi, null));
control.verify();
control.reset();
PolicyProvider provider2 = control.createMock(PolicyProvider.class);
engine.getPolicyProviders().add(provider2);
Policy p2 = control.createMock(Policy.class);
Policy p3 = control.createMock(Policy.class);
EasyMock.expect(provider1.getEffectivePolicy(bmi, null)).andReturn(p1);
EasyMock.expect(provider2.getEffectivePolicy(bmi, null)).andReturn(p2);
EasyMock.expect(p1.merge(p2)).andReturn(p3);
control.replay();
assertSame(p3, engine.getAggregatedMessagePolicy(bmi, null));
control.verify();
}
use of org.apache.neethi.Policy in project cxf by apache.
the class PolicyInterceptorsTest method coachPolicyOverride.
private void coachPolicyOverride(boolean in, boolean fault) {
Assertion assertion = control.createMock(Assertion.class);
EasyMock.expect(assertion.getName()).andReturn(ASSERTION_QNAME);
Collection<Assertion> assertions = new ArrayList<>();
assertions.add(assertion);
Policy policyOverride = control.createMock(Policy.class);
EasyMock.expect(message.getContextualProperty(PolicyConstants.POLICY_OVERRIDE)).andReturn(policyOverride);
AlternativeSelector selector = control.createMock(AlternativeSelector.class);
EasyMock.expect(selector.selectAlternative(policyOverride, pe, null, null, message)).andReturn(assertions);
EasyMock.expect(pe.getAlternativeSelector()).andReturn(selector);
EasyMock.expect(pe.getBus()).andReturn(bus).anyTimes();
PolicyInterceptorProviderRegistry reg = control.createMock(PolicyInterceptorProviderRegistry.class);
EasyMock.expect(bus.getExtension(PolicyInterceptorProviderRegistry.class)).andReturn(reg);
List<Interceptor<? extends Message>> li = createMockInterceptorList();
if (in && fault) {
EasyMock.expect(reg.getInFaultInterceptorsForAssertion(ASSERTION_QNAME)).andReturn(li);
} else if (!in && fault) {
EasyMock.expect(reg.getOutFaultInterceptorsForAssertion(ASSERTION_QNAME)).andReturn(li);
} else if (in && !fault) {
EasyMock.expect(reg.getInInterceptorsForAssertion(ASSERTION_QNAME)).andReturn(li);
} else if (!in && !fault) {
EasyMock.expect(reg.getOutInterceptorsForAssertion(ASSERTION_QNAME)).andReturn(li);
}
InterceptorChain ic = control.createMock(InterceptorChain.class);
EasyMock.expect(message.getInterceptorChain()).andReturn(ic).anyTimes();
ic.add(li.get(0));
EasyMock.expectLastCall();
}
Aggregations