/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.openstack.atlas.api.filters.helpers;
import junit.framework.Assert;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
public class AcceptTypeTest {
public AcceptTypeTest() {
}
@Test
public void qParamShouldReturnNullWhenNoQparamisInvalid() {
Assert.assertNull(AcceptType.getQfromString("Nothing here"));
Assert.assertNull(AcceptType.getQfromString("q = this is not a q param"));
Assert.assertNull(AcceptType.getQfromString("q = 3.22 this is also not a q param"));
}
@Test
public void shouldFetchStringIntoAcceptType() {
AcceptType at = AcceptType.newInstance("text/html ; level = 1; q = 0.5 ; tp1 ; tp=2 ");
Assert.assertEquals("type Mismatch","text",at.getMediaType().getType());
Assert.assertEquals("subtype Mismatch","html",at.getMediaType().getSubtype());
Assert.assertEquals("Q mismatch",0.5,at.getQ());
Assert.assertEquals("mediaParametersize mismatch",1,at.getMediaType().getParameters().size());
Assert.assertEquals("etra parameters mismatch","level = 1",at.getMediaType().getParameters().get(0));
Assert.assertEquals("expected 2 extensions",2,at.getAcceptExtensions().size());
Assert.assertEquals("extension1 mismatch","tp1",at.getAcceptExtensions().get(0));
Assert.assertEquals("extension2 mismatch","tp=2",at.getAcceptExtensions().get(1));
}
@Test
public void qParameterShouldDefaultToOneWhenNotSpecified(){
AcceptType at = AcceptType.newInstance("text/html;UTF-8");
Assert.assertEquals("Q should be 1.0",1.0, at.getQ());
}
@Test
public void qParamShouldReturnValidDoublsWhenInputStringIsValid() {
Assert.assertEquals(3.141, AcceptType.getQfromString("q = 3.141"));
Assert.assertEquals(3.141, AcceptType.getQfromString(" q = 3.141 "));
}
}