public void CreatePlayRequest_ValidProperties() { var factory = new RtspRequestMessageFactory(FakeUri, UserAgent); RtspRequestMessage request = factory.CreatePlayRequest(); Assert.AreEqual(RtspMethod.PLAY, request.Method); Assert.AreEqual(FakeUri, request.ConnectionUri); Assert.AreEqual(UserAgent, request.UserAgent); }
public void CreateGetParameterRequest_ValidProperties() { var factory = new RtspRequestMessageFactory(FakeUri, UserAgent); RtspRequestMessage request = factory.CreateGetParameterRequest(); Assert.AreEqual(RtspMethod.GET_PARAMETER, request.Method); Assert.AreEqual(FakeUri, request.ConnectionUri); Assert.AreEqual(UserAgent, request.UserAgent); }
public void EnsureCSeqIncreasesAfterEveryCreatedRequest() { var factory = new RtspRequestMessageFactory(FakeUri, null); RtspRequestMessage request1 = factory.CreateOptionsRequest(); RtspRequestMessage request2 = factory.CreateDescribeRequest(); Assert.AreEqual(1u, request1.CSeq); Assert.AreEqual(2u, request2.CSeq); }
public void CreatePlayRequest_ContentBaseAndSessionAreSet_ValidProperties() { var factory = new RtspRequestMessageFactory(FakeUri, UserAgent) { SessionId = "testSessionId", ContentBase = new Uri("http://127.0.0.1/base") }; RtspRequestMessage request = factory.CreatePlayRequest(); Assert.AreEqual(factory.SessionId, request.Headers.Get("Session")); Assert.AreEqual(factory.ContentBase, request.ConnectionUri); }
public void CreateSetupUdpUnicastRequest_ValidProperties() { const string testTrackName = "testTrack"; var factory = new RtspRequestMessageFactory(FakeUri, UserAgent); RtspRequestMessage request = factory.CreateSetupUdpUnicastRequest(testTrackName, 1, 2); Assert.AreEqual(RtspMethod.SETUP, request.Method); Assert.AreEqual(FakeUri + "testTrack", request.ConnectionUri.ToString()); Assert.AreEqual(UserAgent, request.UserAgent); string transportHeaderValue = request.Headers.Get("Transport"); Assert.IsTrue(transportHeaderValue.Contains("unicast")); Assert.IsTrue(transportHeaderValue.Contains($"{1}-{2}")); }
public async Task EnsureExecuteRequest_TestRequestAndFakeResponse_ReturnsRtspResponseMessage( bool checkAuthorized) { const string optionsResponse = "RTSP/1.0 200 OK\r\n" + "CSeq: 1\r\n" + "Public: DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE\r\n\r\n"; const string unauthResponse = "RTSP/1.0 401 Unauthorized\r\n" + "WWW-AUTHENTICATE: Basic realm=\"testRealm\"\r\n" + "CSeq: 1\r\n\r\n"; var uri = new Uri("rtsp://*****:*****@127.0.0.1"); var conParams = new ConnectionParameters(uri); var factory = new RtspRequestMessageFactory(uri, null); var client = new RtspTransportClientFake(conParams, request => { if (!checkAuthorized) { return(optionsResponse); } if (request.IndexOf("Authorization", StringComparison.InvariantCultureIgnoreCase) == -1) { return(unauthResponse); } return(optionsResponse); }); var optionsRequest = factory.CreateOptionsRequest(); RtspResponseMessage responseMessage = await client.EnsureExecuteRequest(optionsRequest, CancellationToken.None); Assert.AreEqual(RtspStatusCode.Ok, responseMessage.StatusCode); Assert.IsNotNull(responseMessage.Headers.Get("PUBLIC")); }