public void CreateOptionsRequest_ValidProperties() { var factory = new RtspRequestMessageFactory(FakeUri, UserAgent); RtspRequestMessage request = factory.CreateOptionsRequest(); Assert.AreEqual(RtspMethod.OPTIONS, 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 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")); }