/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.cxf.transport.http.policy;
import org.apache.cxf.transport.http.policy.impl.ServerPolicyCalculator;
import org.apache.cxf.transports.http.configuration.HTTPServerPolicy;
import org.junit.Assert;
import org.junit.Test;
public class ServerPolicyCalculatorTest extends Assert {
@Test
public void testCompatibleServerPolicies() {
ServerPolicyCalculator spc = new ServerPolicyCalculator();
HTTPServerPolicy p1 = new HTTPServerPolicy();
assertTrue("Policy is not compatible with itself.", spc.compatible(p1, p1));
HTTPServerPolicy p2 = new HTTPServerPolicy();
assertTrue("Policies are not compatible.", spc.compatible(p1, p2));
p1.setServerType("server");
assertTrue("Policies are not compatible.", spc.compatible(p1, p2));
p1.setServerType(null);
p1.setReceiveTimeout(10000);
assertTrue("Policies are not compatible.", spc.compatible(p1, p2));
p1.setSuppressClientSendErrors(false);
assertTrue("Policies are compatible.", spc.compatible(p1, p2));
p1.setSuppressClientSendErrors(true);
assertTrue("Policies are compatible.", !spc.compatible(p1, p2));
p2.setSuppressClientSendErrors(true);
assertTrue("Policies are compatible.", spc.compatible(p1, p2));
}
@Test
public void testIntersectServerPolicies() {
ServerPolicyCalculator spc = new ServerPolicyCalculator();
HTTPServerPolicy p1 = new HTTPServerPolicy();
HTTPServerPolicy p2 = new HTTPServerPolicy();
HTTPServerPolicy p = null;
p1.setServerType("server");
p = spc.intersect(p1, p2);
assertEquals("server", p.getServerType());
p1.setServerType(null);
p1.setReceiveTimeout(10000L);
p = spc.intersect(p1, p2);
assertEquals(10000L, p.getReceiveTimeout());
p1.setSuppressClientSendErrors(true);
p2.setSuppressClientSendErrors(true);
p = spc.intersect(p1, p2);
assertTrue(p.isSuppressClientSendErrors());
}
@Test
public void testEqualServerPolicies() {
ServerPolicyCalculator spc = new ServerPolicyCalculator();
HTTPServerPolicy p1 = new HTTPServerPolicy();
assertTrue(spc.equals(p1, p1));
HTTPServerPolicy p2 = new HTTPServerPolicy();
assertTrue(spc.equals(p1, p2));
p1.setContentEncoding("encoding");
assertTrue(!spc.equals(p1, p2));
p2.setContentEncoding("encoding");
assertTrue(spc.equals(p1, p2));
p1.setSuppressClientSendErrors(true);
assertTrue(!spc.equals(p1, p2));
}
}