package gov.samhsa.acs.common.cxf;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import org.apache.cxf.binding.soap.SoapMessage;
import org.apache.cxf.phase.Phase;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.runners.MockitoJUnitRunner;
@RunWith(MockitoJUnitRunner.class)
public class ContentTypeRebuildingOutboundSoapInterceptorTest {
private static final String CONTENT_TYPE = "Content-Type";
@InjectMocks
private ContentTypeRebuildingOutboundSoapInterceptor sut;
@Rule
public ExpectedException thrown = ExpectedException.none();
@Test
public void testHandleMessage() {
// Arrange
final String contentType = "\"a=1; b=2\"; c=\"3\"";
final String expectedContentType = "a=\"1\"; b=\"2\"; c=\"3\"";
final SoapMessage message = mock(SoapMessage.class);
when(message.get(CONTENT_TYPE)).thenReturn(contentType);
// Act
sut.handleMessage(message);
// Assert
verify(message, times(1)).put(CONTENT_TYPE, expectedContentType);
}
@Test
public void testHandleMessage_NoChange() {
// Arrange
final String expectedContentType = "a=\"1\"; b=\"2\"; c=\"3\"";
final SoapMessage message = mock(SoapMessage.class);
when(message.get(CONTENT_TYPE)).thenReturn(expectedContentType);
// Act
sut.handleMessage(message);
// Assert
verify(message, times(1)).put(CONTENT_TYPE, expectedContentType);
}
@Test
public void testPhase() {
assertEquals(Phase.WRITE, sut.getPhase());
}
}