/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package org.restcomm.javax.media.mscontrol.networkconnection; import javax.sdp.MediaDescription; import java.util.Vector; import javax.sdp.SdpFactory; import javax.sdp.SdpParseException; import javax.sdp.SessionDescription; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.restcomm.javax.media.mscontrol.networkconnection.SdpProcessor; import static org.junit.Assert.*; /** * * @author kulikov */ public class SdpProcessorTest { private String s = "v=0\n" + "o=- 1815849 0 IN IP4 194.67.15.181\n" + "s=Cisco SDP 0\n" + "c=IN IP4 194.67.15.181\n" + "t=0 0\n" + "m=audio 20062 RTP/AVP 99 18 101 100\n" + "a=rtpmap:99 G.729b/8000\n" + "a=rtpmap:101 telephone-event/8000\n" + "a=fmtp:101 0-15\n" + "a=rtpmap:100 X-NSE/8000\n" + "a=fmtp:100 200-202"; private String s1 = "v=0\n" + "o=- 1815849 0 IN IP4 194.67.15.181\n" + "s=Cisco SDP 0\n" + "c=IN IP4 194.67.15.181\n" + "t=0 0\n" + "m=audio 42412 RTP/AVP 0 8 4 18 97 99 101 100\n" + "c=IN IP4 16.16.93.241\n" + "b=TIAS:64000\n" + "b=AS:80\n" + "a=rtpmap:0 PCMU/8000/1\n" + "a=rtpmap:8 PCMA/8000/1\n" + "a=rtpmap:4 G723/8000/1\n" + "a=fmtp:4 bitrate=5.3,6.3;annexb=yes\n" + "a=rtpmap:18 G729/8000/1\n" + "a=fmtp:18 annexb=yes\n" + "a=rtpmap:97 EVRC0/8000/1\n" + "a=rtpmap:99 AMR/8000/1\n" + "a=fmtp:99 mode-set=7;octet-align=1\n" + "a=rtpmap:101 telephone-event/8000/1\n" + "a=rtpmap:100 AMR-WB/16000/1\n" + "a=fmtp:100 mode-set=8;octet-align=1\n" + "a=sendrecv"; private final static String s2 = "v=0\n" + "o=HP-OCMP 756 2 IN IP4 16.16.93.241\n" + "s=-\n" + "c=IN IP4 16.16.93.241\n" + "t=0 0\n" + "m=audio 42412 RTP/AVP 0"; private SdpProcessor sdpProcessor = new SdpProcessor(); private SdpFactory sdpFactory = SdpFactory.getInstance(); private SessionDescription sdp; public SdpProcessorTest() { } @BeforeClass public static void setUpClass() throws Exception { } @AfterClass public static void tearDownClass() throws Exception { } @Before public void setUp() throws SdpParseException { sdp = sdpFactory.createSessionDescription(s); } @After public void tearDown() { } /** * Test of containsFormat method, of class SdpProcessor. */ @Test public void testContainsFormat() throws Exception { assertTrue("Excepted format G.729b", sdpProcessor.containsFormat("G.729b", sdp)); assertTrue("Excepted format G.729b", sdpProcessor.containsFormat("g.729b", sdp)); } /** * Test of containsMedia method, of class SdpProcessor. */ @Test public void testContainsMedia() throws Exception { assertTrue("Excepted audio descriptor", sdpProcessor.containsMedia("audio", sdp)); assertTrue("Excepted audio descriptor", sdpProcessor.containsMedia("AUDIO", sdp)); } /** * Test of exclude method, of class SdpProcessor. */ @Test public void testExclude() throws Exception { sdpProcessor.exclude("G.729b", sdp); assertFalse("SDP should not contain G.729b", sdpProcessor.containsFormat("G.729b", sdp)); } @Test public void testExclude2() throws Exception { SessionDescription sdp1 = sdpFactory.createSessionDescription(s1); sdpProcessor.exclude("telephone-event", sdp1); System.out.println(sdp1); assertFalse("SDP should not contain telephone-event", sdpProcessor.containsFormat("telephone-event", sdp1)); } @Test public void testExclude3() throws Exception { SessionDescription sdp1 = sdpFactory.createSessionDescription(s2); sdpProcessor.exclude("PCMU", sdp1); System.out.println(sdp1); assertFalse("SDP should not contain pcmu", sdpProcessor.containsFormat("PCMU", sdp1)); Vector<MediaDescription> mds = sdp1.getMediaDescriptions(false); assertTrue("Format definition", mds.get(0).getMedia().getMediaFormats(false) == null); } @Test public void testMinimalOffer() throws Exception { assertTrue("Minimal offer", sdpProcessor.checkForMinimalOffer(sdp)); } }