package org.jboss.resteasy.test.request; import org.jboss.resteasy.core.request.QualityValue; import org.jboss.resteasy.core.request.VariantQuality; import org.junit.Test; import java.math.BigDecimal; import static org.junit.Assert.assertEquals; /** * @tpSubChapter Requests * @tpChapter Unit tests * @tpTestCaseDetails Test for VariantQuality class. * @tpSince RESTEasy 3.0.16 */ public class VariantQualityTest { private static final String ERROR_MSG = "Wrong conversion"; /** * @tpTestDetails Check default values. * @tpSince RESTEasy 3.0.16 */ @Test public void defaultQuality() { VariantQuality q = new VariantQuality(); assertEquals(ERROR_MSG, new BigDecimal("1.00000"), q.getOverallQuality()); q.setMediaTypeQualityValue(null); q.setCharacterSetQualityValue(null); q.setEncodingQualityValue(null); q.setLanguageQualityValue(null); assertEquals(ERROR_MSG, new BigDecimal("1.00000"), q.getOverallQuality()); } /** * @tpTestDetails Check quality setters. * @tpSince RESTEasy 3.0.16 */ @Test public void qualitySetters() { VariantQuality q = new VariantQuality(); q.setMediaTypeQualityValue(QualityValue.valueOf("0.1")); assertEquals(ERROR_MSG, new BigDecimal("0.10000"), q.getOverallQuality()); q.setCharacterSetQualityValue(QualityValue.valueOf("0.2")); assertEquals(ERROR_MSG, new BigDecimal("0.02000"), q.getOverallQuality()); q.setEncodingQualityValue(QualityValue.valueOf("0.4")); assertEquals(ERROR_MSG, new BigDecimal("0.00800"), q.getOverallQuality()); q.setLanguageQualityValue(QualityValue.valueOf("0.8")); assertEquals(ERROR_MSG, new BigDecimal("0.00640"), q.getOverallQuality()); } @Test public void round5() { VariantQuality q = new VariantQuality(); q.setMediaTypeQualityValue(QualityValue.valueOf("0.004")); q.setEncodingQualityValue(QualityValue.valueOf("0.008")); assertEquals(ERROR_MSG, new BigDecimal("0.00003"), q.getOverallQuality()); } }