예제 #1
0
        public void NewAllTypesOfRecords()
        {
            RecordBase rec = new BeginRequestRecord(1);

            Assert.AreEqual(RecordType.FCGIBeginRequest, rec.RecordType);

            rec = new EndRequestRecord(1);
            Assert.AreEqual(RecordType.FCGIEndRequest, rec.RecordType);

            rec = new StdinRecord(1);
            Assert.AreEqual(RecordType.FCGIStdin, rec.RecordType);

            rec = new StdoutRecord(1);
            Assert.AreEqual(RecordType.FCGIStdout, rec.RecordType);

            rec = new StderrRecord(1);
            Assert.AreEqual(RecordType.FCGIStderr, rec.RecordType);

            rec = new ParamsRecord(1);
            Assert.AreEqual(RecordType.FCGIParams, rec.RecordType);

            rec = new BeginRequestRecord(1);
            Assert.AreEqual(RecordType.FCGIBeginRequest, rec.RecordType);

            rec = new DataRecord(1);
            Assert.AreEqual(RecordType.FCGIData, rec.RecordType);
        }
예제 #2
0
        public void SetAndGetNonNegativeApplicationStatus()
        {
            var rec = new EndRequestRecord(1);

            for (int status = 20000000; status < 20000010; ++status)
            {
                rec.AppStatus = status;
                Assert.AreEqual(status, rec.AppStatus);
            }
        }
예제 #3
0
        /// <summary>
        /// After writing to the output Streams, you have to end the request with a Status Code and a protocol status.
        /// Use this method to do that before disposing this object.
        /// </summary>
        /// <param name="appStatus">The Application status. Use 0 for success and anything else for error.</param>
        public void SendEndRequest(int appStatus, ProtocolStatus protocolStatus)
        {
            // Flush stuff before doing this!
            Data.Dispose();
            Params.Dispose();
            Stdin.Dispose();
            Stdout.Dispose();
            Stderr.Dispose();

            var rec = new EndRequestRecord(RequestId);

            rec.AppStatus      = appStatus;
            rec.ProtocolStatus = protocolStatus;

            Send(rec);
        }
예제 #4
0
        public void SetAndGetProtocolStatus()
        {
            var rec = new EndRequestRecord(1);

            ProtocolStatus status = ProtocolStatus.CantMpxConn;

            rec.ProtocolStatus = status;
            Assert.AreEqual(status, rec.ProtocolStatus);

            status             = ProtocolStatus.Overloaded;
            rec.ProtocolStatus = status;
            Assert.AreEqual(status, rec.ProtocolStatus);

            status             = ProtocolStatus.RequestComplete;
            rec.ProtocolStatus = status;
            Assert.AreEqual(status, rec.ProtocolStatus);

            status             = ProtocolStatus.UnknownRole;
            rec.ProtocolStatus = status;
            Assert.AreEqual(status, rec.ProtocolStatus);
        }