Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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"));
        }