package org.jboss.resteasy.test.providers;
import org.jboss.resteasy.spi.ResteasyProviderFactory;
import org.jboss.resteasy.test.providers.resource.ContractsData;
import org.jboss.resteasy.test.providers.resource.ContractsDataReaderWriter;
import org.junit.Assert;
import org.junit.Test;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.ext.MessageBodyReader;
import javax.ws.rs.ext.MessageBodyWriter;
import java.util.HashMap;
import java.util.Map;
/**
* @tpSubChapter Providers
* @tpChapter Unit tests
* @tpTestCaseDetails Correct selection of Reader and Writer
* @tpSince RESTEasy 3.0.16
*/
public class ContractsTest {
/**
* @tpTestDetails Basic test
* @tpSince RESTEasy 3.0.16
*/
@Test
public void testLimitedContract() {
ResteasyProviderFactory factory = new ResteasyProviderFactory();
factory.register(ContractsDataReaderWriter.class, MessageBodyReader.class);
MessageBodyReader reader = factory.getMessageBodyReader(ContractsData.class, ContractsData.class, null, MediaType.APPLICATION_ATOM_XML_TYPE);
Assert.assertNotNull("Reader is not assigned", reader);
MessageBodyWriter writer = factory.getMessageBodyWriter(ContractsData.class, ContractsData.class, null, MediaType.APPLICATION_ATOM_XML_TYPE);
Assert.assertNull("Writer is not assigned", writer);
}
/**
* @tpTestDetails Test for map
* @tpSince RESTEasy 3.0.16
*/
@Test
public void testLimitedContractMap() {
ResteasyProviderFactory factory = new ResteasyProviderFactory();
Map<Class<?>, Integer> contract = new HashMap<Class<?>, Integer>();
contract.put(MessageBodyReader.class, 5);
factory.register(ContractsDataReaderWriter.class, contract);
MessageBodyReader reader = factory.getMessageBodyReader(ContractsData.class, ContractsData.class, null, MediaType.APPLICATION_ATOM_XML_TYPE);
Assert.assertNotNull("Reader is not assigned", reader);
MessageBodyWriter writer = factory.getMessageBodyWriter(ContractsData.class, ContractsData.class, null, MediaType.APPLICATION_ATOM_XML_TYPE);
Assert.assertNull("Writer is not assigned", writer);
}
}