Search in sources :

Example 6 with Policy

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;
}
Also used : Policy(org.apache.neethi.Policy)

Example 7 with Policy

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();
}
Also used : Policy(org.apache.neethi.Policy) PrimitiveAssertion(org.apache.cxf.ws.policy.builder.primitive.PrimitiveAssertion) Assertion(org.apache.neethi.Assertion) Method(java.lang.reflect.Method) Test(org.junit.Test)

Example 8 with Policy

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();
}
Also used : Policy(org.apache.neethi.Policy) BindingFaultInfo(org.apache.cxf.service.model.BindingFaultInfo) Test(org.junit.Test)

Example 9 with Policy

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();
}
Also used : Policy(org.apache.neethi.Policy) BindingMessageInfo(org.apache.cxf.service.model.BindingMessageInfo) Test(org.junit.Test)

Example 10 with Policy

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();
}
Also used : Policy(org.apache.neethi.Policy) InterceptorChain(org.apache.cxf.interceptor.InterceptorChain) Message(org.apache.cxf.message.Message) Assertion(org.apache.neethi.Assertion) ArrayList(java.util.ArrayList) Interceptor(org.apache.cxf.interceptor.Interceptor)

Aggregations

Policy (org.apache.neethi.Policy)122 Test (org.junit.Test)47 Assertion (org.apache.neethi.Assertion)27 QName (javax.xml.namespace.QName)23 ArrayList (java.util.ArrayList)21 All (org.apache.neethi.All)18 ExactlyOne (org.apache.neethi.ExactlyOne)18 Message (org.apache.cxf.message.Message)15 EndpointInfo (org.apache.cxf.service.model.EndpointInfo)14 Element (org.w3c.dom.Element)13 Bus (org.apache.cxf.Bus)12 PrimitiveAssertion (org.apache.cxf.ws.policy.builder.primitive.PrimitiveAssertion)12 List (java.util.List)9 Interceptor (org.apache.cxf.interceptor.Interceptor)9 BindingOperationInfo (org.apache.cxf.service.model.BindingOperationInfo)9 HashMap (java.util.HashMap)7 OMElement (org.apache.axiom.om.OMElement)7 MessageImpl (org.apache.cxf.message.MessageImpl)7 ReferenceResolver (org.apache.cxf.ws.policy.attachment.reference.ReferenceResolver)6 InputStream (java.io.InputStream)5