ConnectionModeAttributeParser implements SdpParser<ConnectionModeAttribute> { @Override public boolean canParse(String sdp) { if (sdp == null || sdp.isEmpty()) { return false; } return PATTERN.matcher(sdp.trim()).matches(); }  @Override boolean canParse(String sdp); @Override ConnectionModeAttribute parse(String sdp); @Override void parse(ConnectionModeAttribute field, String sdp);  }
@Test public void testCanParse() { String sdp1 = "a=sendonly\n\r"; String sdp2 = "a=recvonly\n\r"; String sdp3 = "a=sendrecv\n\r"; String sdp4 = "a=inactive\n\r"; String sdp5 = "x=inactive\n\r"; String sdp6 = "a=invalid\n\r"; String sdp7 = "a=inactive:123\n\r"; boolean canParseSdp1 = parser.canParse(sdp1); boolean canParseSdp2 = parser.canParse(sdp2); boolean canParseSdp3 = parser.canParse(sdp3); boolean canParseSdp4 = parser.canParse(sdp4); boolean canParseSdp5 = parser.canParse(sdp5); boolean canParseSdp6 = parser.canParse(sdp6); boolean canParseSdp7 = parser.canParse(sdp7); Assert.assertTrue(canParseSdp1); Assert.assertTrue(canParseSdp2); Assert.assertTrue(canParseSdp3); Assert.assertTrue(canParseSdp4); Assert.assertFalse(canParseSdp5); Assert.assertFalse(canParseSdp6); Assert.assertFalse(canParseSdp7); }